JavaScript开发高德地图,地图信息加载很慢,是网络问题或有类似的离线地图吗

JavaScript019

JavaScript开发高德地图,地图信息加载很慢,是网络问题或有类似的离线地图吗,第1张

正常情况下,你的服务器能访问到外网,且带宽正常,加载速度都快的。如果慢可以检查下有没有写了一些异常的JS请求,也可以调用他的其他api检测下是否网速问题,也可以检查下防火墙出入配置等。据我了解JS开发,是不提供离线地图的,只有在线使用。

1. 下载api主文件

api文件的地址请访问http://api.map.baidu.com/api?v=2.0。在线版使用该链接引入百度地图的js,还需要增加一个ak参数,就是应用注册时拿到的应用代码。这个代码是私有的,我就补贴出来了。事实证明无需这个代码能拿到主api文件,并且是完全没有问题的。

从这个地址拿到的是一段代码,里面有一个链接,打开它就能拿到api主文件了。

2. 修改api主文件

2.1 加载模块短路处理

搜索下面的代码:“Pb(e.aG.MP+"&mod="+a.join(","))”,不包括两端的中文引号

替换成为:“Pb("js/getmodules2.0.js")”

2.2 加载瓦片改为离线瓦片

搜索下面的代码:”Uc.getTilesUrl“,不包括两端的中文引号

将其实现改为:Uc.getTilesUrl=function(a,b,c){var x=a.x,y=a.y,e=1,z=breturn "tiles/"+z+"/"+x+"/"+y+".png"}

这时基本上就修改好了,只是还存在一个问题,就是非法调用的问题。

2.3 去掉ak验证

ak验证是通过jsonp来实现的,具体在哪里调用的不清楚,但只要把jsonp工具移除就Ok了。