projection - 是否有一个 javascript 库来重新投影 geojson,以便 mapbox gl 将其呈现为“Plate-Carrée”?
问题描述
我正在使用 Angular 和 mapbox-gl-js 作为地图库构建一个 Web 应用程序。地图切片使用 EPSG:4326 Plate-Carrée 投影,数据集为 GeoJson (WGS84)。由于 mapbox 仅支持 web 墨卡托投影,因此数据不会显示在地图上的正确位置。有什么建议如何重新投影数据集,以便 mapbox 能够在正确的位置显示数据?谢谢。
解决方案
如果我正确理解您的问题,您有一些在 EPSG:4326 中“投影”(嗯,不是真的)的光栅图块,并且您想在 Mapbox-GL-JS 中显示它们。你还有另一个数据集,在 GeoJSON 中,也在 EPSG:4326 中提供,你想覆盖它。
如您所见,Mapbox-GL-JS 仅支持 EPSG:3857 (Web Mercator) 投影。它将数据集(但不是光栅图块)从 EPSG:4326 投影到 EPSG:3857 以显示它们。
您的好选择是:
- 在 Web Mercator 中查找不同的底图
- 找到一个网络服务,它可以即时重新投影您拥有的瓷砖
也许有某种方法可以让 Mapbox-GL-JS 认为它在 EPSG:3857 中显示你的图块,然后以某种方式调整覆盖数据集的坐标,以便当它们从 EPSG:4326 重新投影到 EPSG:3857 时,它们最终会在正确的位置。但我想不出如何实现这一目标。
您可以尝试在 gis.stackexchange.com 上询问。
推荐阅读
- reactjs - hd 参数在解码 id_token 时不可用 - Google auth
- javascript - 为什么 ES6 类的定义方法中没有“原型”属性
- outlook - 如果群组活动被删除,如何通知所有与会者?
- node.js - Sails 发生错误请求/400 错误时如何重定向页面?
- php - 当使用 laravel 工厂创建三个包时,如何将一个包的列值设置为 true?
- django - 为什么 django 不接受除“cut”之外的任何名称的自定义过滤器?
- postgresql - Postgres Recursive - 获取每个孩子的根 ID(并忽略不良数据)
- scala - 从常规类创建 Spark 数据帧
- kotlin - Kotlin 用于实现带注释的功能接口的简写
- fpga - 在 Xilinx Vivado 中映射大小大于 4MB 的 PCIe BAR 区域