2

例如,我有一个来自 NOAA 的 BSB 文件,它是一张导航地图。该地图具有 WGS84 的 SRS 和墨卡托投影。

我最初使用以下命令将文件从 BSB 格式转换为 GTiff 格式:

 gdal_translate -of GTiff 18554_1.kap noaa.tif

我可以使用 Paint Shop Pro 很好地查看这个 GTiff 文件。然后我使用以下命令将文件从 GTiff 格式转换为 VRT 格式:

 gdal_translate -of vrt –expand rgba noaa.tif noaa.vrt

然后我尝试使用以下命令生成一个平铺矩阵集:

 gdal2tiles.py noaa.vrt tiles_folder

地图瓦片位于瓦片文件夹中的位置。如果我尝试打开 openmaps.html 或 google.html,地图放大和缩小看起来不错。但是,在像 MBTiles 这样的图块生成器上,我看到了图块交换。见下图。我正在拉扯头发以使瓷砖对齐。我猜这是投影错误。我不理解那些投影类型。如果有人能在发现错误的同时解释它,那就太好了。我打算在这样的平铺地图/图表应用程序上使用。顺便说一句,在 GDAL 上,我如何指定与 KAP(数据)文件关联的 BSB(参考)文件?我见过多个 KAP 文件只引用一个 BSB 文件的情况。

Gdal2tiles 交换了瓷砖

4

1 回答 1

4

地图投影没有问题,但是按照 GDAL2Tiles 中的 TMS 表示法(左下角有 tile [0,0])切割瓦片。一些工具需要 Google XYZ 表示法(在左上角带有平铺 [0,0])。瓷砖在其他方面是相等的,它们只是翻转了文件名中的 Y 坐标。

看看这个:

Google XYZ vs TMS - 地图图块中翻转的 Y 坐标

我准备了一个网站,可以直观地显示差异并解释问题。看一下:

http://www.maptiler.org/google-maps-coordinates-tile-bounds-projection/

还有一个关于如何计算图块和所有坐标的源代码。它是您上面提到的 GDAL2Tiles 的一部分 - 这是我几年前创建的代码。

您的第二个问题是关于 MBTiles。mbutil 实用程序有一个参数“--scheme tms”,它允许从使用 gdal2tiles.py 渲染的图块创建 MBTiles 文件。

GDAL 只读取 KAP 文件,其中每个文件代表工作表中的一个地图(如果有插图)。

BTW 你知道有http://www.maptiler.com/直接解决了上面提到的问题吗?您可以直接将 KAP 文件拖放到 GUI 中或在命令行中传递原样,然后选择是要在目录中还是 MBTiles 中的切片,它将直接呈现输出。切片也直接进行了优化,支持将多个输入文件渲染到单个层中,并且渲染速度比 GDAL2Tiles 快得多。

于 2014-02-05T08:35:44.877 回答