- 开发百度地图离线版需要:
1.百度地图api离线版本
2.地图显示的区域的瓦片
- 知识点的解析
1.首先百度地图是由一张一张的图片(瓦片)按照一定的规律拼接起来的;
2.api中瓦片的拼接规则 ,放大几倍之下的经度,纬度
url = this.NO[Math.abs(c + e) % this.NO.length] + this.map.Ub + '/' + this.map.Rw + '/3/lv' + (21 - b) + '/' + c + ',' + e + '.png'
3.下载瓦片推荐使用全能电子地图下载器,但是一定要下载3.0版之上,我在网上下载的1.9.5百度地图的电子图全是黑点,没有办法使用,下载之后直接放到tiles/文件夹之下即可。
demo.html
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Hello, World</title>
<style type="text/css">
html{height:100%}
body{height:100%;margin:0px;padding:0px}
#container{height:100%}
</style>
<script type="text/javascript" src="map_load.js"></script>//离线的百度地图api
</head>
<body>
<div id="container"></div>
<script type="text/javascript">
var outputPath = 'tiles/'; //地图瓦片所在的文件夹
var fromat = ".png"; //格式
var map = new BMap.Map("container")
var point = new BMap.Point(110.2048317258, 20.0497739066); // 创建点坐标
map.centerAndZoom(point, 10); // 初始化地图,设置中心点坐标和地图级别
// map.enableScrollWheelZoom(); // 启用滚轮放大缩小。
// map.enableKeyboard(); // 启用键盘操作。
// map.enableContinuousZoom(); //启用连续缩放效果
//添加地图类型控件
map.addControl(new BMap.MapTypeControl({
mapTypes:[
BMAP_NORMAL_MAP,
BMAP_HYBRID_MAP
]}));
map.setCurrentCity("海口"); // 设置地图显示的城市 此项是必须设置的
map.enableScrollWheelZoom(true); //开启鼠标滚轮缩放
marker.addEventListener("click", function () {
map.openInfoWindow(infoWindow, point); //开启信息窗口
});
//单击获取点击的经纬度
map.addEventListener("click",function(e){
alert(e.point.lng + "," + e.point.lat);
});
</script>
</body>
</html>
只需要下载瓦片替换掉tiles里面的图片即可,注意需要修改地图的定位,不然地图无法显示在页面上。
![](https://img.haomeiwen.com/i2154922/2d08c0f48c2fdfe5.png)
网友评论