使用GDAL2Tiles从BSB / KAP文件生成MapTiles

时间:2013-06-06 17:09:46

标签: map gdal maptiler

作为一个例子,我有一个来自NOAA的BSB文件,这是一个导航地图。地图的SRS为WGS84,墨卡托投影。

我最初使用以下命令将文件从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
然后我尝试使用以下命令生成一个tile矩阵集:

 gdal2tiles.py noaa.vrt tiles_folder

地图图块位于tiles_folder中。如果我尝试打开openmaps.html或google.html,则地图放大和缩小看起来不错。但是,在像MBTiles这样的瓷砖生成器上,我看到瓷砖互换。见下图。我脱掉头发让瓷砖排成一列。我猜这是投影错误。我不理解那些投影类型。找到错误时,有人可以解释它。我计划在这样的tiling maps/charts app上使用。顺便说一句,在GDAL上如何指定与KAP(数据)文件关联的BSB(引用)文件?我见过多个KAP文件只引用一个BSB文件的情况。

Gdal2tiles swapped tiles

1 个答案:

答案 0 :(得分:4)

有与地图投影没有问题,但瓦片根据在GDAL2Tiles的TMS符号(与瓦片[0,0]中的左下方)切割。 有些工具需要使用Google XYZ表示法(左上角使用tile [0,0])。 其他方面相同,它们只是在文件名中翻转了Y坐标。

看看这个:

Google XYZ vs TMS - the flipped Y coordinates in map tiles

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

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/可以直接解决上面提到的问题吗?您可以只需将&放大器;拖放到GUI或命令行传递的KAP文件,因为它是和选择是否要在目录或MBTiles砖,它会直接呈现的输出。这些图块也是直接优化的,支持将多个输入文件渲染到单个图层中,渲染速度比使用GDAL2Tiles快得多。

相关问题