Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何正确过滤yandex地图上的数据?_Javascript_Yandex_Yandex Maps - Fatal编程技术网

Javascript 如何正确过滤yandex地图上的数据?

Javascript 如何正确过滤yandex地图上的数据?,javascript,yandex,yandex-maps,Javascript,Yandex,Yandex Maps,我正在尝试过滤yandex地图上的数据。 如果基站有多个频带(2G、3G和4G),则如果至少有一个频带在滤波器中,则应将其包含在结果中 如何正确过滤yandex地图上的数据? 我有listBoxControl和listBoxItems=['2G','3G','4G'] 我的筛选函数如下所示: function getFilterFunction(categories){ return function(obj){ let bsBands = obj.has_bands; /

我正在尝试过滤yandex地图上的数据。

如果基站有多个频带(2G、3G和4G),则如果至少有一个频带在滤波器中,则应将其包含在结果中

如何正确过滤yandex地图上的数据?

我有listBoxControl和listBoxItems=['2G','3G','4G']

我的筛选函数如下所示:

function getFilterFunction(categories){
  return function(obj){
    let bsBands = obj.has_bands;
    /* How correct filter data? */
    return categories['2G'] && categories['3G'] && categories['4G'];
  }
}
{
"count": 4,
"next": null,
"previous": null,
"type": "FeatureCollection",
"features": [
    {
        "id": 1,
        "region_prefix": "97",
        "cell_site_number": 1,
        "description": "",
        "address": "",
        "commissioning": "",
        "bs_id": "",
        "height_asl": 0,
        "bands": [
            {
                "name": "2G",
                "frequency": "900"
            },
            {
                "name": "2G",
                "frequency": "1800"
            },
            {
                "name": "3G",
                "frequency": "2100"
            },
            {
                "name": "4G",
                "frequency": "1800"
            },
            {
                "name": "4G TDD",
                "frequency": "2600"
            }
        ],
        "status": true,
        "type": "Feature",
        "geometry": {
            "type": "Point",
            "coordinates": [55.755815, 37.613]
        },
        "properties": {
            "balloonContentHeader": "balloonContentHeader",
            "balloonContentBody": "balloonContentBody",
            "balloonContentFooter": "balloonContentFooter",
            "clusterCaption": "clusterCaption",
            "hintContent": "hintContent",
            "iconCaption": "2G 3G 4G"
        },
        "has_bands": [
            "3G",
            "2G",
            "4G"
        ]
    },
    {
        "id": 2,
        "region_prefix": "97",
        "cell_site_number": 2,
        "description": "",
        "address": "",
        "commissioning": "",
        "bs_id": "",
        "height_asl": 0,
        "bands": [
            {
                "name": "2G",
                "frequency": "900"
            },
            {
                "name": "2G",
                "frequency": "1800"
            },
            {
                "name": "3G",
                "frequency": "2100"
            },
            {
                "name": "4G",
                "frequency": "1800"
            },
            {
                "name": "4G TDD",
                "frequency": "2600"
            }
        ],
        "status": true,
        "type": "Feature",
        "geometry": {
            "type": "Point",
            "coordinates": [55.759, 37.613]
        },
        "properties": {
            "balloonContentHeader": "balloonContentHeader",
            "balloonContentBody": "balloonContentBody",
            "balloonContentFooter": "balloonContentFooter",
            "clusterCaption": "clusterCaption",
            "hintContent": "hintContent",
            "iconCaption": "2G 3G 4G"
        },
        "has_bands": [
            "3G",
            "2G",
            "4G"
        ]
    },
    {
        "id": 3,
        "region_prefix": "97",
        "cell_site_number": 3,
        "description": "",
        "address": "",
        "commissioning": "",
        "bs_id": "",
        "height_asl": 0,
        "bands": [
            {
                "name": "3G",
                "frequency": "2100"
            }
        ],
        "status": true,
        "type": "Feature",
        "geometry": {
            "type": "Point",
            "coordinates": [55.7204, 37.6167]
        },
        "properties": {
            "balloonContentHeader": "balloonContentHeader",
            "balloonContentBody": "balloonContentBody",
            "balloonContentFooter": "balloonContentFooter",
            "clusterCaption": "clusterCaption",
            "hintContent": "hintContent",
            "iconCaption": "3G"
        },
        "has_bands": [
            "3G",
        ]
    },
    {
        "id": 4,
        "region_prefix": "97",
        "cell_site_number": 4,
        "description": "",
        "address": "",
        "commissioning": "",
        "bs_id": "",
        "height_asl": 0,
        "bands": [
            {
                "name": "4G",
                "frequency": "1800"
            },
            {
                "name": "4G TDD",
                "frequency": "2600"
            }
        ],
        "status": true,
        "type": "Feature",
        "geometry": {
            "type": "Point",
            "coordinates": [55.7704, 37.6119]
        },
        "properties": {
            "balloonContentHeader": "balloonContentHeader",
            "balloonContentBody": "balloonContentBody",
            "balloonContentFooter": "balloonContentFooter",
            "clusterCaption": "clusterCaption",
            "hintContent": "hintContent",
            "iconCaption": "4G"
        },
        "has_bands": [
            "4G"
        ]
    }]}
GeoJSON如下所示:

function getFilterFunction(categories){
  return function(obj){
    let bsBands = obj.has_bands;
    /* How correct filter data? */
    return categories['2G'] && categories['3G'] && categories['4G'];
  }
}
{
"count": 4,
"next": null,
"previous": null,
"type": "FeatureCollection",
"features": [
    {
        "id": 1,
        "region_prefix": "97",
        "cell_site_number": 1,
        "description": "",
        "address": "",
        "commissioning": "",
        "bs_id": "",
        "height_asl": 0,
        "bands": [
            {
                "name": "2G",
                "frequency": "900"
            },
            {
                "name": "2G",
                "frequency": "1800"
            },
            {
                "name": "3G",
                "frequency": "2100"
            },
            {
                "name": "4G",
                "frequency": "1800"
            },
            {
                "name": "4G TDD",
                "frequency": "2600"
            }
        ],
        "status": true,
        "type": "Feature",
        "geometry": {
            "type": "Point",
            "coordinates": [55.755815, 37.613]
        },
        "properties": {
            "balloonContentHeader": "balloonContentHeader",
            "balloonContentBody": "balloonContentBody",
            "balloonContentFooter": "balloonContentFooter",
            "clusterCaption": "clusterCaption",
            "hintContent": "hintContent",
            "iconCaption": "2G 3G 4G"
        },
        "has_bands": [
            "3G",
            "2G",
            "4G"
        ]
    },
    {
        "id": 2,
        "region_prefix": "97",
        "cell_site_number": 2,
        "description": "",
        "address": "",
        "commissioning": "",
        "bs_id": "",
        "height_asl": 0,
        "bands": [
            {
                "name": "2G",
                "frequency": "900"
            },
            {
                "name": "2G",
                "frequency": "1800"
            },
            {
                "name": "3G",
                "frequency": "2100"
            },
            {
                "name": "4G",
                "frequency": "1800"
            },
            {
                "name": "4G TDD",
                "frequency": "2600"
            }
        ],
        "status": true,
        "type": "Feature",
        "geometry": {
            "type": "Point",
            "coordinates": [55.759, 37.613]
        },
        "properties": {
            "balloonContentHeader": "balloonContentHeader",
            "balloonContentBody": "balloonContentBody",
            "balloonContentFooter": "balloonContentFooter",
            "clusterCaption": "clusterCaption",
            "hintContent": "hintContent",
            "iconCaption": "2G 3G 4G"
        },
        "has_bands": [
            "3G",
            "2G",
            "4G"
        ]
    },
    {
        "id": 3,
        "region_prefix": "97",
        "cell_site_number": 3,
        "description": "",
        "address": "",
        "commissioning": "",
        "bs_id": "",
        "height_asl": 0,
        "bands": [
            {
                "name": "3G",
                "frequency": "2100"
            }
        ],
        "status": true,
        "type": "Feature",
        "geometry": {
            "type": "Point",
            "coordinates": [55.7204, 37.6167]
        },
        "properties": {
            "balloonContentHeader": "balloonContentHeader",
            "balloonContentBody": "balloonContentBody",
            "balloonContentFooter": "balloonContentFooter",
            "clusterCaption": "clusterCaption",
            "hintContent": "hintContent",
            "iconCaption": "3G"
        },
        "has_bands": [
            "3G",
        ]
    },
    {
        "id": 4,
        "region_prefix": "97",
        "cell_site_number": 4,
        "description": "",
        "address": "",
        "commissioning": "",
        "bs_id": "",
        "height_asl": 0,
        "bands": [
            {
                "name": "4G",
                "frequency": "1800"
            },
            {
                "name": "4G TDD",
                "frequency": "2600"
            }
        ],
        "status": true,
        "type": "Feature",
        "geometry": {
            "type": "Point",
            "coordinates": [55.7704, 37.6119]
        },
        "properties": {
            "balloonContentHeader": "balloonContentHeader",
            "balloonContentBody": "balloonContentBody",
            "balloonContentFooter": "balloonContentFooter",
            "clusterCaption": "clusterCaption",
            "hintContent": "hintContent",
            "iconCaption": "4G"
        },
        "has_bands": [
            "4G"
        ]
    }]}

我自己解决了这个问题。


预期的输出是什么?@molamk,根据文档过滤功能。获取添加到ObjectManager的单个对象。如果函数返回true,将处理该对象。如果为false,则对象将被排除在进一步处理之外。字符串也可以作为筛选器传递。对于筛选器,可以指定返回true或false的表达式。