【发布时间】:2021-01-05 16:47:33
【问题描述】:
美好的一天,
我有一个 geojson(类似于下面),我遇到了一个在没有提升的情况下使用时效果很好的表达式的问题。
JSFiddle:
https://jsfiddle.net/dollysingh3192/w6bzsx84/7/
GeoJson
{
'type': 'FeatureCollection',
'features': [
{
"geometry": {
"type": "Point",
"coordinates": [
8.612079620361328,
-2.932969060251523
]
},
"type": "Feature",
"properties": {
"id": "GMYTEORRGI5DQ",
"sid": "s_133",
"n": "15",
"r": "13",
"s": "312",
"sz": 5.5,
"m": "n",
"ri": 13,
"si": 7
},
"id": 11578
}
]
}
工作
下面的表达式工作正常并从地图中提取一个特征(不使用 promoteId)
mapInstance.queryRenderedFeatures({ layers: ['seat'], filter: ["any", ["==", ["id"], 21762]] });
不工作
但是在 geojson 源中使用 promoteId 时,表达式根本不起作用。
mapInstance.queryRenderedFeatures({ layers: ['seat'], filter: ["any", ["==", ["id"], "GMYTEORRGI5DQ"]] });
但是,我注意到 setFilter 和 setFeatureState 可以在相同的表达式中正常工作。
mapInstance.setFilter('seat', ["match", ["id"], "GMYTEORRGI5DQ", true, false]); //Works fine
带有 setFilter 的 GIF:(不知道为什么会这样)。 LINK
请指导。我在这里做错了吗?
【问题讨论】:
标签: javascript mapbox mapbox-gl-js