【问题标题】:Mapbox GL JS : Large Image Overlay IssuesMapbox GL JS:大图像叠加问题
【发布时间】:2018-08-19 11:31:57
【问题描述】:

我正在使用 Mapbox GL JS 覆盖德克萨斯州上空的卫星数据图像。图像大到足以覆盖德克萨斯州,但即使使用 100% 正确的地理坐标,图像也不在正确的位置。我必须将图像拆分为 6 个长(西-东)图像,然后将它们垂直堆叠在单独的图像叠加层中:

这会产生预期的结果:

当使用 6 个堆叠的图像叠加层(顺便说一下,每个叠加层高 2 度且非常宽以覆盖该州的宽度)时,云的位置完全完美,零问题。它是完美的,除了必须制作 6 个图像叠加层来构建它根本不理想并且它增加了处理限制。

如果我将所有图像合并为一张大图并使用 same 坐标覆盖它 - 效果是错误的。即使图像完全相同。我已经突出显示了海岸线,因此您可以看到,当为整个州使用一张大图像叠加时,它变得不准确。对于风暴追逐者(我的目标受众)来说,这不是不可接受的。我曾尝试手动调整图像,但这并不好,我浪费了几天的时间来跟踪这个问题,这绝对是 Mapbox。我已经排除了其他可能性,例如用于获取数据的软件中的错误。

这是一个覆盖而不是垂直分割的糟糕结果:

对于可能导致此问题的原因是否有任何想法以及解决方案?我完全迷路了。

【问题讨论】:

  • 至于是什么原因造成的:也许图像没有环绕地球,而是投影在平面上?拥有 6 张较小的图像也会有这个问题,但失真要小得多,因为当放大到足够大时,地球会近似于一个平面。
  • 好吧,我可以拥有非常长的图像(-110 和 -90,但只有 2 度高)而且效果很好。这是我发布的第一张图像。但我在南北(25 到 37,西到东只有 2 度)尝试了相同的测试,问题就出现了。很奇怪。
  • 这和stackoverflow.com/questions/51907688/…是同一个问题吗?我们可以关闭其中一个吗?
  • 您可以关闭另一个(如果可以的话),因为这是一个一般性问题 - 与 Mapbox 无关。这个问题当时是未知的(但在这一点上只是缩小了)这个问题似乎与与 Mapbox 相关的叠加层有关。对于没有看到这个问题的人来说,这可能是没有帮助的。这个问题应该保留,另一个问题应该关闭。

标签: javascript mapbox geospatial mapbox-gl-js


【解决方案1】:

我很久以前就解决了这个问题,但由于其他人也有同样的问题,所以这里值得回答。问题与投影有关。图像可以通过坐标精确地切片和切块,但它们必须与它们所覆盖的地图的投影相匹配。对于 Mapbox,它使用 web 墨卡托,并且图像必须重新投影到 EPSG:3857。

GDAL (https://gdal.org/) 是一种将图像(例如 geoTIF)转换为这种投影的实用程序。使用 GDAL 工具转换图像的命令类似于:

gdalwarp -t_srs EPSG:3857 input.tif input-projected.tif

希望这可以解决问题。这些问题是GIS社区的基础知识。如果你想使用这样的数据,我可以说我建议做我所做的事情:学习基本的 GIS 工具及其工作原理。它会拯救你。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-24
    • 1970-01-01
    • 2020-03-21
    • 1970-01-01
    相关资源
    最近更新 更多