最近发现,Google的混合图老是出现黑块,不管通过啥途径,都会有黑块出现。所以想换成SOSO地图,可是地图加加出了一个bsh,是道路图,内容如下:
//Soso Map
String getTileUrl( int zoom, int x, int y ) {
y = (1<<zoom) -1 - y;
int q = (y) % 4; //same result but different logic vs JS
int dx = Math.floor(x/16);
int dy = Math.floor(y/16);
return "http://p"+q+".map.soso.com/maptilesv2/"+zoom+"/"+dx+"/"+dy+"/"+x+"_"+y+".png";
}
tileType = "png"; // required - image format "png" "jpg" or "gif"
name = "SOSO道路图";
tileSize = 256; // optional
minZoom = 1; // optional
maxZoom = 18; // optional
tileUpdate = TileUpdate.None; // TileUpdate.IfNoneMatch, TileUpdate.ETag, TileUpdate.IfModifiedSince, TileUpdate.LastModified, TileUpdate.None
//backgroundColor = "#E5E3DF"; // optional - supported since MOBAC 1.9.1
我就结合上述地图源和map.soso.com自己摸索,寻找SOSO混合图的方法。
经过对比,首先我找到了卫星图的地图源,这个比较简单,只要把上面红色的字体分别改成sateTiles和jpg,就可以在MOABC里面看到SOSO地图的卫星图了。但这个是纯卫星图,不带道路和地名的。
我用浏览器反复观看map.soso.com,在地图和卫星两种模式下,分别查看网络请求,发现在地图模式下,不光有maptilesv2,还有sateTranTiles,而且直接看http://p3.map.soso.com/sateTranTiles/14/843/636/13489_10177.png,出来的是没有底图的道路和地名,而http://p3.map.soso.com/maptilesv2/14/843/636/13489_10177.png是有底图的。所以,我把上面红色的字分别改成sateTranTiles和png,这时候发现在MOABC里面出现了只有道路和地名,没有底图的图。太好了。
感谢上帝,MOABC提供了多图层的模式customMultiLayerMapSource。。。于是,SOSO地图的混合图出现了。
总结一下:首先需要建立两个bsh源,就是卫星图和道路图,然后用customMultiLayerMapSource来混合,
<?xml version="1.0" encoding="UTF-8"?>
<customMultiLayerMapSource>
<name>SOSO混合图</name>
<layers>
<mapSource>
<name>SOSO卫星图</name>
</mapSource>
<mapSource>
<name>SOSO道路图</name>
</mapSource>
</layers>
</customMultiLayerMapSource>
就这么简单。。。不过,这个混合图太大了。。。同样是3930 4000 11600 11630 区域,16级模式,不压缩图片的情况下,生成Rmaps sqlitedb地图文件,卫星图是140M~150M,道路图是30~40M,而混合图是1,400M!!!不过这些事情好办,再想法子减小呗。重要的是找到途径了。
恭喜楼主终于找到切入混合地图的窍门!
但那DOS命令确实太高深了,看来看去都看不明白,若能搞一份完成好的bsh地图源,与上面介绍的单个地图源加以对照,就最好了!
你得自己琢磨,会发现很多有趣的东西。比如google卫星图,google.com和google.cn出来的不一样,然后后面带的参数不同,也有不同效果。我这几天一直再弄这个数据源,因为google卫星图15、16级会出现黑块,但有些源却正常。SOSO卫星图15级就有些地方是空白。
我已经搞出好多有趣的组合来了,比如说SOSO卫星+MapABC;SOSO道路图+google卫星图。。。。哈哈,很有意思的。
不过有些google卫星图源有偏移,有些则没有。如果你用无偏移的源和其他的道路图混合,就没法用了。所以我总结,只能是有偏移的和有偏移的混合,无偏移的和无偏移的组合。
我做出来的地图,有SOSO卫星图+道路图混合的,也有Google卫星+google道路图混合的,还有这几个交叉的,乱了乱了。。。
想要mapabc的地标图源
我也是用这种方法尝试过很久,希望将天地图的路网和地名叠加,可惜一直未成功,不知道问题出在那里,单独的天地图路网.bsh与天地图的地名.bsh可以在mobac中成功显示,但一旦加上类似以下的XML,mobac就提示错误。
<?xml version="1.0" encoding="UTF-8"?>
<customMultiLayerMapSource>
<name>SOSO混合图</name>
<layers>
<mapSource>
<name>SOSO卫星图</name>
</mapSource>
<mapSource>
<name>SOSO道路图</name>
</mapSource>
</layers>
</customMultiLayerMapSource>
有没哪位大能,将天地图的路网,地名,地形图成功叠加过的,请说一下方法,谢谢。
body {background: #020603 !important;}div {background-color: #020603 !important;}header,nav,table,th,tr,td,dl,ul,li,ol,fieldset,form,h1,h2,h3,h4,h5,h6,pre {background: transparent !important;}* {color: #CECECE !important;}a:link,a:link *,a:link:hover,a:link:hover *,a:link:active,a:link:active * {color: #F77B00 !important;}a:visited,a:visited *,a:visited:hover,a:visited:hover *,a:visited:active,a:visited:active * {color: #D9C077 !important;}
谢谢!!!!!!!!
怎么没搞成功呢
好晕