带有定位当前位置的百度地图前端web api实例代码
废话不多说,直接给大家贴代码了,具体代码如下所示,
关键代码如下:
<!DOCTYPEhtml>
<htmllang="zh-cn">
<head>
<metaname="viewport"content="initial-scale=1.0,user-scalable=no"/>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>
<title></title>
<styletype="text/css">
html{
height:100%;
}
body{
height:100%;
margin:0px;
padding:0px;
}
#container{
height:50%;
}
</style>
<scriptsrc="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<scriptsrc="http://api.map.baidu.com/api?v=1.4"type="text/javascript"></script>
<scripttype="text/javascript"src="http://developer.baidu.com/map/jsdemo/demo/convertor.js"></script>
<script>
$(function(){
navigator.geolocation.getCurrentPosition(translatePoint);//定位
});
functiontranslatePoint(position){
varcurrentLat=position.coords.latitude;//经度
varcurrentLon=position.coords.longitude;//纬度
vargpsPoint=newBMap.Point(currentLon,currentLat);
BMap.Convertor.translate(gpsPoint,0,initMap);//转换坐标
}
functioninitMap(point){
//初始化地图
map=newBMap.Map("container");//实例化容器
map.addControl(newBMap.NavigationControl());//平移缩放控件
map.addControl(newBMap.ScaleControl());//比例尺控件
map.addControl(newBMap.OverviewMapControl());//缩略地图控件
map.centerAndZoom(point,15);//地图初始化,参数地图坐标和级别
map.addOverlay(newBMap.Marker(point));//当前位置加标记
varmyZoomCtrl=newZoomControl();
map.addControl(myZoomCtrl);
functionZoomControl(){
this.defaultAnchor=BMAP_ANCHOR_TOP_LEFT;//调整控件的位置
this.defaultOffset=newBMap.Size(10,10);//通过像素调整位置
}
//自定义控件,点击两下实现放大
ZoomControl.prototype=newBMap.Control();
ZoomControl.prototype.initialize=function(map){
vardiv=document.createElement("div");
div.appendChild(document.createTextNode("放大2级"));
div.style.cursor="pointer";
div.style.border="1pxsolidgray";
div.style.backgroundColor="white";
div.onclick=function(e){
map.zoomTo(map.getZoom()+2);
}
map.getContainer().appendChild(div);
returndiv;
}
}
</script>
</head>
<body>
<divid="container"></div>
</body>
</html>