Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.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
mapbox queryRenderedFeatures的几何图形错误_Mapbox_Geojson_Mapbox Gl Js - Fatal编程技术网

mapbox 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

我正在尝试获取具有queryRenderedFeatures的多边形的几何体 在缩放级别12是可以的,但在15我得到了错误的输入。 这是我的代码,我每次鼠标悬停在上面都会得到不同的坐标。 此处-将鼠标从顶部悬停在多边形上,从底部悬停。红色多边形是queryRenderedFeatures返回的几何体,它总是不同的

 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]
,则该多边形的所有不同部分都将正确显示

参见示例