【问题标题】:Get Mapbox geojson layer bounds from tileset uploaded in Mapbox Studio从 Mapbox Studio 中上传的图块集中获取 Mapbox geojson 图层边界
【发布时间】:2020-04-08 15:45:24
【问题描述】:

我已成功将 geojson 瓦片集上传到 Mapbox Studio,并通过使用 map.addLayer 并在 Mapbox Studio 中引用瓦片集的 URL 端点,在我的 Web 应用程序中渲染了 geojson 中的多边形。

我现在想做的是通过 Mapbox API 或在我的打字稿文件中本地获取已添加图层的边界。

我知道解决方案需要涉及 turf 和 bbox,但实际上我无法获得需要传递给 map.fitBounds(bbox) 以调整地图的绑定值。

提前感谢您的帮助!

【问题讨论】:

    标签: mapbox geospatial mapbox-gl-js


    【解决方案1】:

    您是否希望 GeoJSON 图层的内容在客户端动态更改,或者通过初始 GeoJSON 瓦片集上传添加的多边形是否保持不变?如果多边形不会改变,我建议为你的瓦片集中的多边形计算一个包围框,然后传递给你的 web 应用程序。 geoson.io 工具可让您上传 GeoJSON 以在浏览器中的地图上进行可视化。上传数据后,您可以从右上角的工具栏中选择“标记”工具,并在地图上手动放置标记以指示所有多边形边界框的SouthwestNortheast 坐标。这些已放置标记的相应 GeoJSON 将显示在界面右侧的面板中,您可以从中检索已放置标记的经纬度坐标以传递给 Map#fitBounds,如 this example 所示。

    理想情况下您应该提前而不是在客户端计算边界框的原因是 Mapbox GL JS 最终是一个图形引擎,其知识仅限于当前呈现在屏幕上的地理内容。 Mapbox 确实对当前视口外部的图块集或地图层的组件有任何洞察力,因为它不会渲染这些数据!您可以使用Map#queryRenderedFeaturesMap#querySourceFeatures 来解析正在呈现的底层GeoJSON,但结果仅限于呈现的数据,并且该过程的计算成本可能远远超过所需。

    【讨论】:

      猜你喜欢
      • 2021-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-01
      • 2018-04-20
      • 1970-01-01
      相关资源
      最近更新 更多