www.teandq.com
晓安科普

百度手机地图离线包_百度手机地图

2024-05-11Aix XinLe

首先,百度地图JavaScript API 3.0版本与2.0版本相比增加了几个小功能,整体没有大的改动,具体可以在官网上查阅。于是就照着先前大

百度手机地图离线包_百度手机地图

 

首先,百度地图JavaScript API 3.0版本与2.0版本相比增加了几个小功能,整体没有大的改动,具体可以在官网上查阅于是就照着先前大佬们分享的2.0离线版本进行3.0版本的制作,附上大佬链接:最新百度地图API V2.0 离线版本 感谢大佬的分享。

下面开始百度地图离线版V3.0的制作:资源下载地址:https://download.csdn.net/download/wml00000/10692583百度云链接:https://pan.baidu.com/s/1IM-pcrhbXi--O964L7RJBg 密码:v5dv

1.JS API文件下载访问这个地址http://api.map.baidu.com/api?v=3.0 ,这个是引入在线js文件时的地址,打开之后是一段代码,在代码中找到 src = "http://api.map.baidu.com/getscript?v=3.0&ak=&services=&t=20180823175819" ,打开这个地址,就可以看到压缩后的js代码,把这些代码粘下来,保存到本地上,就先保存在

bmap_offline_api_v3.0_min.js文件里在粘代码之前可以先格式化一下,以便下面查看与修改,利用谷歌浏览器自带的pretty print(就是下面那个红圈里的大括号工具)就可以,将格式化好的代码粘下来保存。

2.修改保存到本地的js文件2.1屏蔽ak验证function oa(a, b) {if (/^http/.test(a)) return;//修改 屏蔽ak验证,若调用外部资源直接返回if (b) {

var c = (1E5 * Math.random()).toFixed(0);B._rd["_cbk" + c] = function(a) {b && b(a);delete B._rd["_cbk" + c]

};a += "&callback=BMap._rd._cbk" + c}var e = L("script", {type: "text/javascript"});e.charset = "utf-8";

e.src = a;e.addEventListener ? e.addEventListener("load", function(a) {a = a.target;a.parentNode.removeChild(a)

}, t) : e.attachEvent && e.attachEvent("onreadystatechange", function() {var a = window.event.srcElement;

a && ("loaded" == a.readyState || "complete" == a.readyState) && a.parentNode.removeChild(a)});setTimeout(function() {

document.getElementsByTagName("head")[0].appendChild(e);e = s}, 1)}

定位到上面代码,将带注释那行加上,千万别定位错了2.2引用本地工具资源百度地图提供的各种图层类,标记类,控件类等等都可以看作是modules,当你在地图中用到这些模块时,它会自动加载,因此我们需要先把这些模块的js文件下载下来,保存到本地。

定位到下面代码,没数错的话,一共是44个模块var Ub = { //修改,这里是所有的模块,用到时自动加载(在线),离线的话要先下载下来放到本地,如 //http://api0.map.bdimg.com/getmodules?v=3.0&mod=模块1,模块2

//模块命名格式是map_dbwcej,直接拼接起来map: "dbwcej", common: "wkrfcz", style: "fkofpc", tile:

"ok3b3m", vectordrawlib: "4pdipq", newvectordrawlib: "wbnuee", groundoverlay:

"ekozhc", pointcollection: "feabuc", marker: "00uyqy", symbol: "cq3a5n", canvablepath:

"dia5aw", vmlcontext: "phwtog", markeranimation: "rfnmxu", poly: "r52vuo", draw:

"jb4osz", drawbysvg: "vxyn51", drawbyvml: "whxmqq", drawbycanvas: "ufwkvb", infowindow:

"wtflsn", oppc: "10riq5", opmb: "2c1ejz", menu: "152mop", control: "hlzh1t"

, navictrl: "h32mnb", geoctrl: "xprajs", copyrightctrl: "gmc2ps", citylistcontrol:

"ms3ahy", scommon: "oadc3d", local: "k0pcpi", route: "v4yyam", othersearch:

"pwg4ey", mapclick: "e40viw", buslinesearch: "vxmb31", hotspot: "vuwxs4", autocomplete:

"punr3o", coordtrans: "lmf5kv", coordtransutils: "d33qf1", convertor: "d0ze2w"

, clayer: "0hwrfx", pservice: "j5tlrp", pcommon: "yqek4k", panorama:

"jbqj24", panoramaflash: "dm4xq2", vector: "2hrruc" };

  为了便于修改主文件里的一些内容,先创建一个map_load.js文件,加入下面代码:

var bmapcfg = { imgext : .jpg, //瓦片图的后缀 根据需要修改,一般是 .png .jpgtiles_dir : , //普通瓦片图的地址,为空默认在tiles/ 目录

}; var scripts = document.getElementsByTagName("script"); var JS__FILE__ = scripts[scripts.length -

1].getAttribute("src"); //获得当前js文件路径 bmapcfg.home = JS__FILE__.substr(0, JS__FILE__.lastIndexOf("/")+

1); //地图API主目录 (function(){ window.BMap_loadScriptTime = (newDate).getTime(); //加载地图API主文件document

.write(); })();

在bmap_offline_api_v3.0_min.js文件中定位到 B.url.domain.main_domain_cdn.baidu[0] ,将其所在行注释掉,加上这行B.ka = bmapcfg.home; //修改,本地工具资源引用(离线路径),如图:

然后再通过 &mod 进行定位,注释掉其所在行,做如下修改:

f.Rd.Hn.length = 0; //0 == a.length ? f.kL() : oa(f.wG.tQ + "&mod=" + a.join(","))

// 修改 加载本地模块文件,在 modules 目录下console.log(a); //打印所需模块 if( a.length > 0 ){

for(i=0; i

console.log(加载模块文件:+mf); //IE error } } else { f.kL() }

//就到这 }, 1));

这时候就可以创建modules文件夹,添加所需模块的js文件,注意命名格式,js代码可以这么获取:http://api0.map.bdimg.com/getmodules?v=3.0&mod=map_dbwcej

保存js文件时文件名也是这样如map_dbwcej.js2.3加载瓦片改为本地离线瓦片定位到如下代码,做相应修改:

md.getTilesUrl = function(a, b, c) { var e = a.x , a = a.y , f = Sb("normal"

) , g = 1 , c = ld[c]; //this.map.Sx() && (g = 2); //修改 //e = this

.map.Va.Lw(e, b).hs; //return (kd[Math.abs(e + a) % kd.length] + "?qt=tile&x=" + (e + "").replace(

/-/gi, "M") + "&y=" + (a + "").replace(/-/gi, "M") + "&z=" + b + "&styles=" + c + "&scaler=" + g + (6

== z.ca.ia ? "&color_dep=32&colors=50" : "") + "&udt=" + f).replace(/-(\d+)/gi, "M$1") tdir = bmapcfg.tiles_dir.length>

0?bmapcfg.tiles_dir:bmapcfg.home + "tiles"; return tdir + "/" + b + "/" + e + "/" + a + bmapcfg.imgext;

// 使用本地的瓦片 }

3.Demo测试建一个demo.html

="Content-Type"content="text/html; charset=utf-8" />Hello, World

html{height:100%} body{height:100%;margin:0px;padding:0px} #container{height:100%

}

>var map = new BMap.Map("container") var point = new BMap.Point(

116.404, 39.915); // 创建点坐标 map.centerAndZoom(point, 6); // 初始化地图,设置中心点坐标和地图级别

运行前一定要准备好相关文件,如modules文件夹里的js文件,tiles文件夹里的切片,还有一些图标文件,文件大概如下:

免责声明:本站所有信息均搜集自互联网,并不代表本站观点,本站不对其真实合法性负责。如有信息侵犯了您的权益,请告知,本站将立刻处理。联系QQ:1640731186

知识百度手机地图离线包_百度手机地图

2024-05-11Aix XinLe73

百度手机地图离线包_百度手机地图首先,百度地图JavaScript API 3.0版本与2.0版本相比增加了几个小功能,整体没有大的改动,具体可以在官网上查阅。于是就照着先前大…

历史9月12_9月12日是什么日子?

2024-05-11Aix XinLe137

9月12_9月12日是什么日子?九月十二日大清早创建于2020-09-12九月十二日大清早狼哥面塘编新闻小狗四望阅清晨喇叭涵露未必好便纸未带羞傻人秋凉透衣感寒意马褂护背汗缠心行…

知识赤犬死了吗_赤犬死在哪一集

2024-05-11Aix XinLe86

赤犬死了吗_赤犬死在哪一集在《海贼王》中,海军元帅赤犬可以说是口碑最差的角色之一,他秉承“绝对的正义”,对海贼和黑恶势力绝不手软,宁可杀错也不愿放过。也因为这样,赤犬在上…

知识机器人s6天赋_机器人天赋s11

2024-05-11Aix XinLe142

机器人s6天赋_机器人天赋s11CFPL S11赛季的赛程已经进行到紧张的季后赛阶段,而回顾已经过去的常规赛,国际战队的强势入驻似乎一下子激发了战斗欲,各个战队在常规赛期间都有…

历史五花土_五花土图片

2024-05-11Aix XinLe145

五花土_五花土图片特点是,结构紧密,稍有光泽,颜色均匀,质地纯净。灰土:文化遗存中除含有房址,灶坑等建筑遗迹及大量文化遗物外,还含有大量灰烬,动植物腐败物质,使文…