百度地图目前我用过的有2个版本,分别为1.1和2.0版本。
1.1版本不需要密匙也能运行,但是显示模糊且需要修改API
2.0版本显示效果好,但是需要申请密匙,为了效果我这里还是推荐2.0的版本。
百度地图生成器1.1版本
http://api.map.baidu.com/lbsapi/creatmap/index.html
效果图
百度地图生成器2.0版本
效果图
- 如果要使用2.0的API,需要注册成为百度开发者,然后再申请密匙,下面是密匙地址:
http://lbsyun.baidu.com/apiconsole/key/create
- 百度地图生成器2.0版本地址
http://api.map.baidu.com/lbsapi/createmap/
地图标注图标无法显示的解决方法
查找代码中的icon地址并改为
http://api.map.baidu.com/lbsapi/creatmap/images/us_mk_icon.png
浏览器地图加载不出来解决办法
需要修改JS链接,将
<script type="text/javascript" src="http://api.map.baidu.com/api?key=&v=1.1&services=true"></script>
改为
<script type="text/javascript" src="http://api.map.baidu.com/getscript?key=&v=1.1&services=true"></script>
地图标注显示乱码
在1.1版本中会出现这样的情况,需要将编码从gb2312改为utf-8,搜索charset修改即可。
生成好的2.0版本代码示例
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="http://api.map.baidu.com/getscript?v=2.0&ak=这里填你的密匙"></script>
</head>
<body>
<div style="width:1080px;height:550px;border:#ccc solid 1px;font-size:12px" id="map"></div>
</body>
<script type="text/javascript">
//创建和初始化地图函数:
function initMap(){
createMap();//创建地图
setMapEvent();//设置地图事件
addMapControl();//向地图添加控件
addMapOverlay();//向地图添加覆盖物
}
function createMap(){
map = new BMap.Map("map");
map.centerAndZoom(new BMap.Point(116.315273,40.042901),19);
}
function setMapEvent(){
map.enableScrollWheelZoom();
map.enableKeyboard();
map.enableDragging();
map.enableDoubleClickZoom()
}
function addClickHandler(target,window){
target.addEventListener("click",function(){
target.openInfoWindow(window);
});
}
function addMapOverlay(){
var markers = [
{content:"北京市海淀区上地三街金隅嘉华大厦",title:"北京XX科技有限公司",imageOffset: {width:0,height:3},position:{lat:40.042797,lng:116.314878}},
];
for(var index = 0; index < markers.length; index++ ){
var point = new BMap.Point(markers[index].position.lng,markers[index].position.lat);
var marker = new BMap.Marker(point,{icon:new BMap.Icon("http://api.map.baidu.com/lbsapi/createmap/images/icon.png",new BMap.Size(20,25),{
imageOffset: new BMap.Size(markers[index].imageOffset.width,markers[index].imageOffset.height)
})});
var label = new BMap.Label(markers[index].title,{offset: new BMap.Size(25,5)});
var opts = {
width: 200,
title: markers[index].title,
enableMessage: false
};
var infoWindow = new BMap.InfoWindow(markers[index].content,opts);
marker.setLabel(label);
addClickHandler(marker,infoWindow);
map.addOverlay(marker);
};
}
//向地图添加控件
function addMapControl(){
var scaleControl = new BMap.ScaleControl({anchor:BMAP_ANCHOR_BOTTOM_LEFT});
scaleControl.setUnit(BMAP_UNIT_IMPERIAL);
map.addControl(scaleControl);
var navControl = new BMap.NavigationControl({anchor:BMAP_ANCHOR_TOP_LEFT,type:0});
map.addControl(navControl);
var overviewControl = new BMap.OverviewMapControl({anchor:BMAP_ANCHOR_BOTTOM_RIGHT,isOpen:true});
map.addControl(overviewControl);
}
var map;
initMap();
</script>
</html>