首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用GDAL2Tiles从BSB/KAP文件生成MapTiles

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

Stack Overflow用户
提问于 2013-06-07 01:09:46
回答 1查看 1.7K关注 0票数 2

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

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

代码语言:javascript
复制
 gdal_translate -of GTiff 18554_1.kap noaa.tif

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

代码语言:javascript
复制
 gdal_translate -of vrt –expand rgba noaa.tif noaa.vrt

然后,我尝试使用以下命令生成一个瓦片矩阵集:

代码语言:javascript
复制
 gdal2tiles.py noaa.vrt tiles_folder

地图瓦片在tiles_folder中的位置。如果我尝试打开openmaps.html或google.html,地图的放大和缩小效果都很好。然而,在像MBTiles这样的tiles生成器上,我看到了tiles交换。请参见下图。我要把头发扯下来,让瓷砖排成一排。我猜是投影错误。我不理解这些投影类型。如果有人能在找出错误的同时解释它,那就太好了。我计划在这样的tiling maps/charts app上使用。顺便问一下,在GDAL上,我如何指定与KAP (数据)文件关联的BSB (引用)文件?我见过多个KAP文件只引用一个BSB文件的情况。

Gdal2tiles swapped tiles

EN

回答 1

Stack Overflow用户

发布于 2014-02-05 16:35:45

地图投影没有问题,但在GDAL2Tiles中根据TMS符号(在左下角为0,0 )剪切了瓦片。一些工具需要Google XYZ符号(在左上角有块0,0 )。平铺在其他方面是相等的,它们只是翻转了文件名中的Y坐标。

看看这个:

我准备了一个网站,它在视觉上显示了不同之处,并解释了问题。看一看:

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

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

你的第二个问题是关于MBTiles的。mbutil实用程序有一个参数"--scheme“,它允许从使用gdal2tiles.py呈现的分片创建MBTiles文件。

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

顺便说一下,你知道有http://www.maptiler.com/可以直接解决上面提到的问题吗?你可以直接拖放到图形用户界面中,或者在命令行中传递KAP文件,然后选择你想要的是目录中的tiles还是MBTiles,它将直接呈现输出。磁贴也是直接优化的,支持将多个输入文件渲染到一个图层中,渲染速度比GDAL2Tiles快很多。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16968121

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档