mapbox queryRenderedFeatures的几何图形错误
我正在尝试获取具有queryRenderedFeatures的多边形的几何体 在缩放级别12是可以的,但在15我得到了错误的输入。 这是我的代码,我每次鼠标悬停在上面都会得到不同的坐标。 此处-将鼠标从顶部悬停在多边形上,从底部悬停。红色多边形是queryRenderedFeatures返回的几何体,它总是不同的mapbox queryRenderedFeatures的几何图形错误,mapbox,geojson,mapbox-gl-js,Mapbox,Geojson,Mapbox Gl Js,我正在尝试获取具有queryRenderedFeatures的多边形的几何体 在缩放级别12是可以的,但在15我得到了错误的输入。 这是我的代码,我每次鼠标悬停在上面都会得到不同的坐标。 此处-将鼠标从顶部悬停在多边形上,从底部悬停。红色多边形是queryRenderedFeatures返回的几何体,它总是不同的 map.on("mousemove", "seatRowsFill", function(e) { map.getCanvas().style.cursor = 'poin
map.on("mousemove", "seatRowsFill", function(e) {
map.getCanvas().style.cursor = 'pointer';
map.setFilter("seatRowsFill-hover", ["==", "rowNumber", e.features[0].properties.rowNumber]);
var relatedFeatures = map.queryRenderedFeatures(e.point, { layers: ['seatRowsFill'],"filter": ["==", "rowNumber", e.features[0].properties.rowNumber] } )
console.log(relatedFeatures["0"].geometry.coordinates["0"][2])
在缩放15时,几何体穿过平铺边界。通过添加
map.showTileBoundaries=true
,可以看到这一点:
从queryRenderedFeatures()
的文档中:
由于要素来自平铺向量数据或内部转换为平铺的GeoJSON数据,因此要素几何图形可能会跨平铺边界分割或复制,因此,要素可能会在查询结果中多次出现。例如,假设有一条高速公路穿过查询的边界矩形。查询的结果将是位于覆盖边界矩形的地图分幅内的公路部分,即使公路延伸到其他分幅,每个地图分幅内的公路部分将作为单独的特征返回。类似地,由于磁贴缓冲,磁贴边界附近的点特征可能出现在多个磁贴中
与其检索几何体然后显示几何体,通常最好有一个单独的层,仅用于高亮显示,然后更新该层上的过滤器以匹配某些属性
因此,如果将高光层的过滤器更新为['=',id,500]
,则该多边形的所有不同部分都将正确显示
参见示例