离线地图制作
1.下载API
api.min.js:
http://api.map.baidu.com/getscript?v=1.3&ak=&services=&t=20150527115231
bmap.css
http://api.map.baidu.com/res/13/bmap.css
2.搜索变量:“imgPath”,直到找到一段代码
var x=m?"https://sapi.map.baidu.com/":"http://api.map.baidu.com/"; var cd={imgPath:x+"images/",cityNames:{"\u5317\u4eac":"bj",
把imgPath:x+"images/"中的x去掉即可,这样就变成了跟网络地址无关的相对位置了。这里指出的images文件夹,是与将来的html文件夹平行的目录里面的。
3.搜索变量:“_baseUrl”,直到找到这样的一段代码
preLoaded:{},Config:{_baseUrl:x+"getmodules?v=1.3",_timeout:5000},
同样,要去掉x,这个x也是前面这段代码中的x。同时,不仅要去掉x,更要把地址指向js目录。
4.继续搜索下一个“_baseUrl”,得到下面的代码:
window.setTimeout(function(){var cP=cN.Config._baseUrl+"&mod="+cN.Module._arrMdls.join(",");cy.request(cP);cN.Module._arrMdls.length=0;cN.delayFlag=false},1)
直接修改cP变量,注意:这里把加载地址直接写死
var cP=cN.Config._baseUrl+"modules";cy.request(cP);
这样,我们把动态加载编程手动加载了。我们访问这个地址“http://api.map.baidu.com/getmodules?v=1.3&mod=map,oppc,tile,control,marker,poly”就可以拿到一个js文件了。把它重命名为上面指定的“modules”,丢在js文件夹里面即可。后面会详细说明加载模块这个问题。
注意:如果需要更多的功能,我是通过重新加载以上的地址,其它的教程写说不需要自动加载,通过另外配置参数获取相关的功能就好,我没亲自配置过,有配置过的小伙伴可以讲讲配置过程。
5、关键的一步:搜索“getTilesUrl”直到找到这样的一段(参照物也可以另选,比如“BMAP_NORMAL_MAP”):
1 aU.getTilesUrl = function(cN, cQ) { 2 var cR = cN.x; 3 var cO = cN.y; 4 var T = "20150518"; 5 var cP = "pl"; 6 if (this.map.highResolutionEnabled()) { 7 cP = "ph" 8 } 9 var cM = j[Math.abs(cR + cO) % j.length] + "?qt=tile&x=" 10 + (cR + "").replace(/-/gi, "M") + "&y=" 11 + (cO + "").replace(/-/gi, "M") + "&z=" + cQ + "&styles=" + cP 12 + (a9.browser.ie == 6 ? "&color_dep=32&colors=50" : "") 13 + "&udt=" + T; 14 return cM.replace(/-(\d+)/gi, "M$1") 15 }; 16 window.BMAP_NORMAL_MAP = new cv("\u5730\u56fe", aU, { 17 tips : "\u663e\u793a\u666e\u901a\u5730\u56fe" 18 });
getTilesUrl”这个方法,这里就是返回瓦片未知的关键方法。两个参数中,第一个参数是{x,y},第二个参数就是z,这样xyz就都有了。
直接把它计算出来的cM的结果重新计算一下,改成:
1 //这个地方废弃了上面的计算结果,直接采用本地图片 2 cM = "tiles/" + cQ + "/" + cR + "/" + cO + ".jpg";
开始建立第四个文件夹,tiles。这个文件夹里面的内容和后面的资源文件请在附件中下载。至于如何下载瓦片,问百度。至此,该文件的处理结束。
第三步:下载资源文件。(终于到资源文件的详细介绍了,前期工作中提到)
1、图片文件:可以通过前期工作的第二张图的方式获取素材的下载地址,也可从Demo文件/images路径下获取,还有一种方式,引用前辈教程中的话:
查找bmap.css里面所有的图片文件,下载下来放在指定的文件夹里面就好了。里面总共不超过两三个文件,下载下来放在 images文件夹里面就行了。另外,刚才的这个js里面也有一些资源文件,也下载下来放在images文件夹里面。这个通过搜索imgPath就能找 到,有png,有gif,有点文件可能需要通过https的地址才能下载的到。
6.依赖模块API文件(very very important!)
如果缺少某个依赖模块,则无法使用相应的API。以下为引用前辈教程的原话:
这个请求文件的原理是根据你在自己页面中使用的API来向官网请求相应的依赖模块API,参数的字符串格式是根据所使用依赖模块的顺序生成“模块名”以“,”分隔。
在运行前期工作中的在线地图时,就可发现,依赖的库参数是什么。例如:以下的代码运行,所请求的依赖库参数是http://api.map.baidu.com/getmodules?v=1.3&mod=map,oppc,tile,control
<script type="text/javascript"> var map = new BMap.Map("container",{mapType:BMAP_NORMAL_MAP}); var point = new BMap.Point(116.404, 39.915); // 创建点坐标 map.centerAndZoom(point,5); // 初始化地图,设置中心点坐标和地图级别。 //map.addControl(new BMap.MapTypeControl()); map.addControl(new BMap.NavigationControl()); map.enableScrollWheelZoom(); // 启用滚轮放大缩小。 map.enableKeyboard(); // 启用键盘操作。 //map.setCurrentCity("北京"); // 设置地图显示的城市 此项是必须设置的 </script>
我在自己操作过程中的依赖库命名为modules(可修改,但与前面修改的JS文件要匹配),在Demo文件/js路径下,里面已有map,oppc,tile,control,menu,marker,infowindow这些模块,如第二步的第3小步所述,后期可根据需要重新下载,或重新配置,我是直接重新下载。
再强调一次,地址为:http://api.map.baidu.com/getmodules?v=1.3&mod=模块名,根据自己需要,将内容添加到modules文件中,或重新下载,也可以全部下载下来放入modules文件中。
7、下载瓦片地图文件(tile)
这里提供一个下载瓦片地图的软件——全能电子地图下载器1.9.5.zip ,里面包含有注册机,安装过程就不描述了。
- 离线地图制作工具
- Google Maps API V3 更新程序 离线地图开发包制作工具
- ( arcgis for android )用离线地图*.tpk(当.tpk不能用时)制作可用的离线地图的可用方法
- Arcmap 10.2 将mxd文档制作成tpk离线地图
- 手机离线地图——基于OruxMaps离线高清卫星地图制作发布
- 离线地图制作工具:Mobile Atlas Creator
- BIGEMAP手机离线地图——基于OruxMaps离线高清卫星地图制作发布
- 如何制作离线地图?这里介绍一个轻松制作离线地图的利器!
- oruxmaps离线地图下载(制作离线地图包)(全国任意地方的离线地图制作)
- 带有全国600万地名数据的手机离线地图的制作
- iPhone4离线地图制作
- 使用NetMap制作离线地图标注软件
- 手把手教你制作手机离线地图
- Google Maps API V3 更新程序 离线地图开发包制作工具
- google离线地图制作
- gMapMakerHCP_v0.2制作brut google maps离线地图
- 离线地图制作工具
- 制作 IPhone/ITouch 可以用的 Google Map 离线地图
- 手机离线地图制作工具
- 如何使用万能地图下载器制作Oruxmaps离线地图