f/通讯与导航 2014-02-28 01:11

向epic致敬,oruxmaps地图制作新途径

看了epic帖子,在GM14中可以输出mbtiles格式直接用于oruxmaps,根据epic提示尝试制作成功,谢谢epic。
在你的指导下,佳明分层填色等高矢量地图可以很好地用于oruxmaps,不过与mbtiles格式制作相比太过繁琐。
mbtiles虽然不能矢量,但是分级也足够了。且等高线高度标注可以随着放大而逐级显示。

epic能讲解一下mbtiles格式吗,顺问太乐地图下载器是否用过。谢谢

缩放4级,显示为14—17层;如果5级则13—16层

ymyhz · 2014-03-01 11:03

谢谢epic,
分层mbtiles,是不是可以理解为地图14/15级的显示20M等高距等高线,16级显示10M等高距等高线。类似于garmin for oruxmaps中分层显示,这样,在不同层级显示中,等高线显示比较协调。
可以用SQL指令,难道mbtiles也是一种数据库不成?,说一下什么指令,要在怎样的环境中运行,谢谢。

太乐是商业软件,开源的mobac足矣

ymyhz · 2014-03-05 23:54

谢谢epic详细讲解,准备开练,不清楚的地方再请教

已归档
点赞 18
20 评论
共 20 条评论
帖子已归档
Avatar
神舟0号 2014-02-28 06:18

跟着又学一招,谢谢!

Avatar
netcrystal 2014-02-28 14:42

怎样的新途径?

Avatar
epic 2014-02-28 17:10

看了epic帖子,在GM14中可以输出mbtiles格式直接用于oruxmaps,根据epic提示尝试制作成功,谢谢epic。
在你的指导下,佳明分层填色等高矢量地图可以很好地用于oruxmaps,不过与mbtiles格式制作相比太过繁琐。
mbtiles虽然不能矢量,但是分级也足够了。且等高线高度标注可以随着放大而逐级显示。

epic能讲解一下mbtiles格式吗,顺问太乐地图下载器是否用过。谢谢

mbtiles 跟 RMap sqlitedb 格式差不多. 都是用 SQLite DB 为载体的瓦片地图格式.
每个瓦片大小为 256x256, 从瓦片的 X, Y, Z (行, 列,层级) 就可计出瓦片的经纬坐标.
投影均为 web mercator.

RMap 的瓦片编排与 Google Map, MS Virtual Earth, OSM 相同, 以 180W 90N 为原点 (0,0).
mbtiles 以 180W 0 (赤道) 为原点.

GM输出地图时, 我喜欢14/15级用20M等高距的等高线. 16级用10M等高距.
GM输出 mbtiles 时只可选择一种等高线距. 可以用不同等高距的等高线输出两个mbtiles:
再用简单的 SQL 指令把两个mbtiles 合成一个分层mbtiles.

没有用过太乐地图下载器. 现有的 mobac (标准/工兵版) 及Map369 已经够用了.

Avatar
ymyhz OP 2014-03-01 11:03 置顶
此内容已收录到正文,评论区保留摘要,方便承接下方 1 条回复 · 查看正文位置

谢谢epic, 分层mbtiles,是不是可以理解为地图14/15级的显示20M等高距等高线,16级显示10M等高距等高线。类似于garmin for oruxmaps中分层显示,这样,在不同层级显示中,等高线显示比较协调。 可以用SQL指…

Avatar
epic ymyhz 2014-03-05 15:25

mbtiles 也是 SQLite3 DB. SQLite 有 command-line shell 可以在 Windows cmd.exe 运行. 要合拼两个 mbiltes:

1. 下载 sqlite-shell-win32-x86-3080301.zip. 把其中的 sqlite3.exe 放在 search path 内 (例如 c:\Windows)

http://www.sqlite.org/download.html

2. 打开 cmd.exe, 假设有两个 mbites (L14-15.mbtiles  及L16-17.mbitles) 要合拼. 放在 c:\temp 内. 合拼出来的地图是 L14-17.mbitles

c:\temp> copy L16-17.mbitles L14-17.mbtiles

3. 用 sqlite3.exe 打开 L14-17.mbiltes (database: master), 再在 sqlite 内打开 L14-15.mbitles (database: a)

c:\temp> sqlite3 L14-17.mbtiles

sqite> attach "L14-15.mbtiles" as a;

sqlite> .database

4. 看看地图内有什么

sqlite> SELECT zoom_level, COUNT(*) FROM tiles GROUP BY zoom_level;

sqlite> select zoom_level, count(*) from a.tiles group by zoom_level;

5. 把 a.tiles 汇入 tiles 内, 看看结果

sqlite> INSERT INTO tiles SELECT * FROM a.tiles;

sqlite> select zoom_level, count(*) from tiles group by zoom_level;

6. 整理 master database, 结束, 看看地图的大小

sqlite> vacuum;

sqlite> .quit

c:\temp> dir *.mbtiles

Avatar
神舟0号 2014-03-29 11:05

求教:输出mbtiles格式时,怎样设置才能显示出UTM坐标的方格?

Avatar
过客在深圳 2014-07-29 05:06

奇怪,我的也是GM14啊,怎么死活找不到这个输出选项?

呃...
在这个帖子4楼找到了答案 http://www.doyouhike.net/forum/comm_nav/1040495,0,0,0.html

Avatar
过客在深圳 2014-07-29 16:36

确实存在楼上所述不包含UTM坐标格的问题。
看来还是只能通过先生成包含UTM坐标格的图片,再用图片来生成mbtiles格式的地图。
这样的话就跟直接用OruxMapsDesktop生成地图文件没什么区别了,无非是使用的工具换了一个。

Avatar
过客在深圳 2014-08-05 17:51

由MOBAC直接创建的OruxMaps地图包也是SQLite3 DB格式,也可以用epic说的这个方法。

但我发现,如果两个地图包的投影不同(譬如一个是MOBAC创建的,使用的是墨卡托投影;另一个是我自己做png生成的,使用UTM投影),则虽然两个地图包能够合并并且被OruxMaps打开,但是好像地图上的点不能完全对应上,存在偏移。
事实上SQLite3 DB配套的xml中会指明地图的投影,估计被OruxMaps忽略了,认为两个地图的投影一样,所以应该是bug。

P.S. :
sqite> attach "L14-15.mbtiles" as a; 一句中,引号是关键。否则sqlite会认为L14-15是数据库,而mbtiles是表的名字,所以报错。

Avatar
lx2100965 过客在深圳 2014-08-06 08:56

兄台可否给个合并由MOBAC直接创建的OruxMaps地图包的详细点的教程啊,一直都没合并成功

Avatar
epic 过客在深圳 2014-08-13 14:55

我以前制作地图都是 UTM投影下Aster GDEM V2生成等高线图 加入 工兵修改的MOBAC 1.9.3版 广东天地图(事实上我以前没太关注它的投影方式,因为看到地图被倾斜放置了,所以我认为GM会自动做好各种投影方式的转换)。如此看来,我长久以来的地图制作方法是错误的?但是在实际中这样做出来的地图,广东天地图上的小路基本都吻合得很好啊。[/quote]
mobac(标准/工兵版) 输出的 oziexplorer .png + .map 地图投影设置均是正确的.
不用担心.

Avatar
lhj1218 2015-05-21 09:36

高深 完全不懂。支持了。

能详细说说oruxmaps生成多级地图  分级操作方法呢?

Avatar
hqse 2015-07-16 05:59

安卓系统OruxMaps导航软件用的离线卫星地图数据包。看看这个帖子《福利来了,免费的全国3-10层OruxMaps离线卫星地图数据包,带地名》:
http://www.doyouhike.net/forum/974557,0,0,0.html