由于客户方只有内网部署,要求使用离线地图,所以这里使用百度离线地图,整体效果如下:
跟线上地图区别不大,可以精确到街道地址,完全符合客户需求,详解操作步骤:
获取百度 JavaScript API 并使用
用浏览器打开 http://api.map.baidu.com/api?v=1.3 如下图所示
其中 http://api.map.baidu.com/getscript?v=1.3&key=&services=&t=20121108061854 这个链接就是我们要找的API文件,如下图
全选复制,并保存为js文件(如:amap.min.js),离线地图demo展示如下
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>百度离线地图演示</title>
<script type="text/javascript" src="js/amap.min.js"></script>
<!-- <script type="text/javascript" src="http://api.map.baidu.com/api?v=1.3"></script>-->
</head>
<body>
<div style="left:0;top:0;width:100%;height:100%;position:absolute;" id="container"></div>
</body>
</html>
<script type="text/javascript">
var tileLayer = new BMap.TileLayer({
isTransparentPng: true
});
tileLayer.getTilesUrl = function (tileCoord, zoom) {
var x = tileCoord.x;
var y = tileCoord.y;
return 'maptile/' + zoom + '/' + x + '/' + y + '.png';
}
var map = new BMap.Map('container');
var point = new BMap.Point(116.404, 39.915)
map.centerAndZoom(point, 15);
var marker = new BMap.Marker(point); // 创建标注
map.addOverlay(marker);
map.addTileLayer(tileLayer);
map.addControl(new BMap.NavigationControl());
map.centerAndZoom(new BMap.Point(100.675, 39.007978), 5);
map.enableScrollWheelZoom(); //启用滚轮放大缩小
map.enableKeyboard(); //启用键盘操作,默认禁用。键盘的上、下、左、右键可连续移动地图。
map.enableContinuousZoom();//启用连续缩放效果
var copyCtrl = new BMap.CopyrightControl({
anchor: BMAP_ANCHOR_BOTTOM_RIGHT
})
map.addControl(copyCtrl);
</script>
瓦片下载地址:http://www.wmksj.com/map.html 需注册(免费)