【教程】使用Mobile Atlas Creator MP 中文增强版制作全球离线地图

地图加加的使用经验、技巧以及问题处置等,和其它喜欢地图加加的朋友一起说说地图加加的酸甜苦辣咸。

Re: 【教程】使用Mobile Atlas Creator MP 中文增强版制作全球离线地图

Postby wjh » 2015-12-31 4:24

我有参照你的文章 但是卡在"分析下载规则" 我有得到瓦片的下载网址 如下所示 但是看不出那个是/{$z}/{$x}/{$y} 你可否帮我看一下?

http://ak.dynamic.t0.tiles.virtualearth ... og=112&n=z
User avatar
wjh
★★
 
Posts: 9
Joined: 2015-12-31 2:25

Re: 【教程】使用Mobile Atlas Creator MP 中文增强版制作全球离线地图

Postby Zax » 2015-12-31 5:37

wjh wrote:我有参照你的文章 但是卡在"分析下载规则" 我有得到瓦片的下载网址 如下所示 但是看不出那个是/{$z}/{$x}/{$y} 你可否帮我看一下?

http://ak.dynamic.t0.tiles.virtualearth ... og=112&n=z


Bing 使用的不是X,Y,Z,而是QuadKey,即13212312211300,不过规则和XYZ是一一对应的,您只需要将13212312211300换成{$q},就能在MOBAC或者地图加加中使用,即:

Code: [Select all]
<?xml version="1.0" encoding="UTF-8"?>
<customMapSource>
    <name>My Bing Map TW</name>
    <minZoom>0</minZoom>
    <maxZoom>20</maxZoom>
    <tileType>PNG</tileType>
    <url><![CDATA[http://ak.dynamic.t0.tiles.virtualearth.net/comp/ch/{$q}?mkt=zh-tw&it=G,VE,BX,L,LA&shading=hill&og=112&n=z]]></url>
</customMapSource>
Map Source XML
Zax Zeng
Duwei Technology
User avatar
Zax
★★★★★
 
Posts: 1172
Joined: 2011-07-27 0:54

Re: 【教程】使用Mobile Atlas Creator MP 中文增强版制作全球离线地图

Postby wjh » 2015-12-31 6:00

谢谢你的指导 我有使用你们的版本及2.0 Beta1版本 下载之区域 不能太大 如果用1.8 下载之区域 可大了许多 请问可否将上述之bing.xml 提供给1.8版使用吗? 或是如何修改1.8版 将Bing Map TW 加入地图源中 谢谢你.
User avatar
wjh
★★
 
Posts: 9
Joined: 2015-12-31 2:25

Re: 【教程】使用Mobile Atlas Creator MP 中文增强版制作全球离线地图

Postby Zax » 2015-12-31 6:45

wjh wrote:谢谢你的指导 我有使用你们的版本及2.0 Beta1版本 下载之区域 不能太大 如果用1.8 下载之区域 可大了许多 请问可否将上述之bing.xml 提供给1.8版使用吗? 或是如何修改1.8版 将Bing Map TW 加入地图源中 谢谢你.


对1.8不熟悉,不知道能否自定义地图源,如果支持的话,将XML复制到mapsources子目录下既可。详情您可以去MOBAC的官方论坛问问看。

关于您说的区域不能太大,不大理解? 如果是最大瓦片(Tile)数量限制,您可以分成多个区域下载。对于地图加加来说,可以同时加载多个离线地图的。

或者,不要下载太大的缩放级别,例如只下载到17级,或者18级既可。
Zax Zeng
Duwei Technology
User avatar
Zax
★★★★★
 
Posts: 1172
Joined: 2011-07-27 0:54

Re: 【教程】使用Mobile Atlas Creator MP 中文增强版制作全球离线地图

Postby wjh » 2016-01-04 7:19

请问一下 我执行你们制作的Mobile Atlas Creator 1.9.11.7 MP多语言版
当地图源选择 “OpenstreetMap Mapnik” 在mobac 地图并没有出现 只出现大叉叉的符号 请问为什么?

我想自定义一个XML 我有参照你的文章 我有得到瓦片的下载网址
https://b.tile.openstreetmap.org/13/6861/3508.png

我写一个XML 如下
<?xml version="1.0" encoding="UTF-8"?>
<customMapSource>
<name>My Mannik</name>
<minZoom>0</minZoom>
<maxZoom>18</maxZoom>
<tileType>PNG</tileType>
<url><![CDATA[https://{$serverpart}.tile.openstreetmap.org/{$z}/{$y}/{$x}.png]]></url>
<serverParts>a b c</serverParts>
</customMapSource>

结果在mobac 地图还是看不到 不知以上语法是否有问题 可否请你看一下 谢谢!
User avatar
wjh
★★
 
Posts: 9
Joined: 2015-12-31 2:25

Re: 【教程】使用Mobile Atlas Creator MP 中文增强版制作全球离线地图

Postby Zax » 2016-01-08 2:45

wjh wrote:请问一下 我执行你们制作的Mobile Atlas Creator 1.9.11.7 MP多语言版
当地图源选择 “OpenstreetMap Mapnik” 在mobac 地图并没有出现 只出现大叉叉的符号 请问为什么?

........
结果在mobac 地图还是看不到 不知以上语法是否有问题 可否请你看一下 谢谢!


"大叉叉" 表示服务器没有返回内容。这个主要是因为您所使用的服务器对MOBAC进行了限制,阻止了它下载该服务器的地图内容。所以您在浏览器中是可以访问,但是用MOBAC无法下载。

一般地,即使OSM这样的开源服务也是不允许批量下载的,或者批量下载是需要付费的!!请下载前认证阅读官方声明,确保不要违反相关知识产权保护。

当然,如果您愿意承担侵权风险,也可以用MOBAC支持的BSH脚本来配置这样地图源,伪装自己是从浏览器进行的访问,实际也是可以下载,将如下内容保存为扩展名.bsh的文本文件,放入mapsources,既可:

Code: [Select all]
String getTileUrl( int z, int x, int y ) {
   return "http://a.tile.openstreetmap.org/" + z+ "/" + x + "/" + y + ".png";    
}

void addHeaders( java.net.HttpURLConnection conn) {
  conn.addRequestProperty("Referer","http://www.openstreetmap.org");
  conn.addRequestProperty("User-Agent","Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36");
}

name = "My Mapnik2";
tileType = "png";
minZoom = 0;
maxZoom = 18;
 
Java
Zax Zeng
Duwei Technology
User avatar
Zax
★★★★★
 
Posts: 1172
Joined: 2011-07-27 0:54

Re: 【教程】使用Mobile Atlas Creator MP 中文增强版制作全球离线地图

Postby wjh » 2016-01-13 2:57

请教Zax: 我目前使用Mobile Atlas Creator 1.9.11.7 MP多语言版的版本 使用上 有个小问题 想请教一下 Mobac在制做离线地图 下载的地图会先储存在 PC 的数据库 (会在\tilestore\db-地图源之目录下放一份BerkelyDB) 我是否可在PC 脱机的状态下 启动Mobac 使用BerkelyDB 脱机来看地图 我目前使用之情况 是启动Mobac后 缓存之地图 可出现 但出现后 不到一秒钟 就被大叉叉取代 看不到缓存之地图 我如果放大 或缩小 画面又可出现缓存之地图 但出现后 不到一秒钟就又大叉叉所取代 这个大叉叉 我想是因为PC离线所产生的 请问Zax Mobac是否有设定 可让Mobac启动时 仅使用缓存之地图( BerkelyDB) 或是可否让地图源xml之URL 指向缓存之地图 Thanks.
User avatar
wjh
★★
 
Posts: 9
Joined: 2015-12-31 2:25

Re: 【教程】使用Mobile Atlas Creator MP 中文增强版制作全球离线地图

Postby Zax » 2016-01-13 3:34

wjh wrote:请教Zax: 我目前使用Mobile Atlas Creator 1.9.11.7 MP多语言版的版本 ..... 请问Zax Mobac是否有设定 可让Mobac启动时 仅使用缓存之地图( BerkelyDB) 或是可否让地图源xml之URL 指向缓存之地图 Thanks.


根据我们的了解,MOBAC本身只是下载工具,不是离线地图查看工具,要使用它查看离线地图文件,需要将这个地图文件(不一定是MOBAC下载)配置为一个地图源,将配置文件(XML)放入MOBAC的mapsources目录,之后在地图源中选择它既可单独查看这个本地文件。

不过,目前本地地图源只支持有限的格式,不是所有MOBAC保存的格式都支持的,本地文件主要支持3类:
1、<localTileFiles>: 本地瓦片图片目录,必须按照zoom/x/y.png 或者zoom/y/x.png,或者 quadkey.png命名规范和目录存储
2、<localTileZip>: Zip打包后的本地瓦片图片目录,内部目录结构的要求和<localTileFiles>一样。
3、<localTileSQLite>: 本地Sqlite离线地图文件,目前支持RMaps, MBTiles, BigPlanetTracks, NaviComputer 和 OSMAND。

例如:假设一个MBTiles格式的离线地图文件,位于D:\MOBAC\tilestore\db\mymap.sqlitedb,则下面XML配置文件可以添加针对这个文件的地图源:
Code: [Select all]
<?xml version="1.0" encoding="UTF-8"?>
<localTileSQLite>
   <name>Local SQLite Map</name>
   <sourceFile>D:\MOBAC\tilestore\db\mymap.sqlitedb</sourceFile>
   <atlasType>MBTiles</atlasType>
   <backgroundColor>#000000</backgroundColor>
   <tileImageType>PNG</tileImageType>
</localTileSQLite>
Map Source XML


更多详情请查看官方wiki

对于您说的离线还能查看,应该是MOBAC的缓存造成的。
首先,MOBAC可以开启或关闭缓存,在MOBAC设置中有专门的开关控制,并且每个地图的缓存大小和清空操作都可以在设置中看到。
不过,缓存主要用于下载时减少访问在线资源的流量设计的,并不是为离线查看设计,所以可能出现您说的变成叉叉的情况,也就是即使有缓存的情况下,MOBAC仍然会尝试访问在线服务器,并且在服务器出错时显示叉叉。您可以试试在对应地图配置文件中加上<tileUpdate>None</tileUpdate>,以尽可能地避免对服务器的访问,从而避免叉叉出现,不过,这个对不同服务器可能有不同效果,并且缓存本身也随时有过期的可能,到时候仍然会触发新的访问,从而导致叉叉出现。
Zax Zeng
Duwei Technology
User avatar
Zax
★★★★★
 
Posts: 1172
Joined: 2011-07-27 0:54

Re: 【教程】使用Mobile Atlas Creator MP 中文增强版制作全球离线地图

Postby wjh » 2016-01-14 1:58

感谢Zax的指导 我用过蛮多不同的Mobac版本 就以你们的版本最为稳定 其中有个版本 下载速度很快 但是不稳定 不过那个版本有个优点 就是放宽最大瓦片(Tile)数量限制(放宽一倍) 请问你们开发Mobile Atlas Creator 1.9.11.7 MP多语言版 有没有考虑放最大瓦片(Tile)数量限制吗?(目前的瓦片(Tile)数量限制 在某些情况 还是不够用 )我知道可以以分成多个区域下载 但是使用上 还是有点不方便? 谢谢!
User avatar
wjh
★★
 
Posts: 9
Joined: 2015-12-31 2:25

Re: 【教程】使用Mobile Atlas Creator MP 中文增强版制作全球离线地图

Postby Zax » 2016-01-14 3:43

wjh wrote:感谢Zax的指导 我用过蛮多不同的Mobac版本 就以你们的版本最为稳定 其中有个版本 下载速度很快 但是不稳定 不过那个版本有个优点 就是放宽最大瓦片(Tile)数量限制(放宽一倍) 请问你们开发Mobile Atlas Creator 1.9.11.7 MP多语言版 有没有考虑放最大瓦片(Tile)数量限制吗?(目前的瓦片(Tile)数量限制 在某些情况 还是不够用 )我知道可以以分成多个区域下载 但是使用上 还是有点不方便? 谢谢!


呵呵,我们的所有修改最终都已经无偿提交给了MOBAC官方,所以理论上,最新MOBAC的官方版本应该包含了我们所有的修改(只是程序标题上可能没有地图加加之类的字样)。稳定性应该区别不大,除非MOBAX新版本中引入的新修改降低了稳定性。

关于下载速度,您可以尝试修改网络设置中关于下载的并发连接数量的设置,来试试能否提高。

关于最大瓦片数量,我们当时修改MOBAC的初衷是为了更好为我们的iOS app:“地图加加”制作离线地图,不过目前我们的app已经具备地图下载能力,所以我们短期可能没有精力去对MOBAC进行再次修改了,不过以后有空闲的时间时,我们会尝试发布一个移除这一限制的新版本的。或者您可以看看MOBAC官方最新版本是否已经移除了这一限制。
Zax Zeng
Duwei Technology
User avatar
Zax
★★★★★
 
Posts: 1172
Joined: 2011-07-27 0:54

PreviousNext

Return to 地图加加 - 官方论坛

cron