Mapbox GL JS:大图像覆盖问题

问题描述 投票:2回答:1

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

enter image description here

这将产生所需的结果:

enter image description here

顺便说一下,当使用6个堆叠的图像叠加层(每个高度为2度,非常宽以覆盖状态的宽度)时,云的放置精确地完美,零问题。这是完美的,除了必须制作6个图像叠加层完全不理想,而且会增加处理限制。

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

这里是一个覆盖不当的结果,而不是垂直分割:

enter image description here

有什么想法可能导致这种情况,以及解决方案吗?我完全迷路了。

javascript mapbox geospatial mapbox-gl-js
1个回答
0
投票

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

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

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

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


-1
投票

我现在也遇到这个问题,但仍然没有解决。由于Mapbox图像投影和其他框架投影(例如Leaflet和QGIS)之间的差异,最多可观察到250米的误差。我正在投影一张几乎有4公里长的图像,并且可以清楚地看到变化。您解决了这个问题了吗?请在这里检查我的问题Mapbox GL JS Image Overlay Coordinates Precision Issue

© www.soinside.com 2019 - 2024. All rights reserved.