一、百度地图初始化及添加基本控件
1.引入地图包
地图包网址的ak属性是你在百度地图开放平台上申请的密钥
<script type="text/javascript" src="http://api./api?v=2.0&ak=/*你的密钥*/"></script>
2.初始化地图
var map = new BMap.Map("allmap"); // 创建Map实例map.centerAndZoom("天津",14); // 初始化地图,设置城市和地图级别。
3.添加控件
//地图事件设置函数:function setMapEvent(){map.enableDragging();//启用地图拖拽事件,默认启用(可不写)map.enableScrollWheelZoom();//启用地图滚轮放大缩小map.enableDoubleClickZoom();//启用鼠标双击放大,默认启用(可不写)map.enableKeyboard();//启用键盘上下左右键移动地图}//地图控件添加函数:function addMapControl(){//向地图中添加缩放控件var ctrl_nav = new BMap.NavigationControl({anchor:BMAP_ANCHOR_TOP_LEFT,type:BMAP_NAVIGATION_CONTROL_LARGE});map.addControl(ctrl_nav);//向地图中添加缩略图控件var ctrl_ove = new BMap.OverviewMapControl({anchor:BMAP_ANCHOR_BOTTOM_RIGHT,isOpen:1});map.addControl(ctrl_ove);//向地图中添加比例尺控件var ctrl_sca = new BMap.ScaleControl({anchor:BMAP_ANCHOR_BOTTOM_LEFT});map.addControl(ctrl_sca);}
二、单击地点后经纬度转换为地址
//监听单击事件map.addEventListener("click",function(e){map.clearOverlays(); // alert(e.point.lng + "," + e.point.lat);point = new BMap.Point(e.point.lng, e.point.lat);var geoc = new BMap.Geocoder(); geoc.getLocation(point,function(rs){ var addComp = rs.addressComponents; // alert(addComp.province + ", " + addComp.city + "," + addComp.district + ", " + addComp.street + ", " + addComp.streetNumber); console.log(addComp);});var marker = new BMap.Marker(point);map.addOverlay(marker);document.getElementById("allmap").value = e.point.lng+ "," + e.point.lat;});
三、完整代码如下
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style type="text/css"> body, html,#allmap {width: 100%;height: 95%;overflow: hidden;margin:0;font-family:"微软雅黑";} </style> <!--引入地图包,地图包网址的ak属性是你在百度地图开放平台上申请的秘钥--> <script type="text/javascript" src="http://api./api?v=2.0&ak=/*你的密钥*/"></script> <!--引入jquery--> <script src="/js/jquery/1.9.1/jquery-1.9.1.min.js"></script> <title>地址解析</title> </head> <body> <!--我们要在这里创建地图实例,这个div容器的id属性会在后面用到--> <div id="allmap"></div> </body> </html> <script type="text/javascript">// 百度地图API功能var map = new BMap.Map("allmap"); // 创建Map实例map.centerAndZoom("天津",14); // 初始化地图,设置城市和地图级别。setMapEvent();addMapControl();//地图事件设置函数:function setMapEvent(){map.enableDragging();//启用地图拖拽事件,默认启用(可不写)map.enableScrollWheelZoom();//启用地图滚轮放大缩小map.enableDoubleClickZoom();//启用鼠标双击放大,默认启用(可不写)map.enableKeyboard();//启用键盘上下左右键移动地图}//地图控件添加函数:function addMapControl(){//向地图中添加缩放控件var ctrl_nav = new BMap.NavigationControl({anchor:BMAP_ANCHOR_TOP_LEFT,type:BMAP_NAVIGATION_CONTROL_LARGE});map.addControl(ctrl_nav);//向地图中添加缩略图控件var ctrl_ove = new BMap.OverviewMapControl({anchor:BMAP_ANCHOR_BOTTOM_RIGHT,isOpen:1});map.addControl(ctrl_ove);//向地图中添加比例尺控件var ctrl_sca = new BMap.ScaleControl({anchor:BMAP_ANCHOR_BOTTOM_LEFT});map.addControl(ctrl_sca);}//监听单击事件map.addEventListener("click",function(e){map.clearOverlays(); // alert(e.point.lng + "," + e.point.lat);point = new BMap.Point(e.point.lng, e.point.lat);var geoc = new BMap.Geocoder(); geoc.getLocation(point,function(rs){var addComp = rs.addressComponents; // alert(addComp.province + ", " + addComp.city + "," + addComp.district + ", " + addComp.street + ", " + addComp.streetNumber); console.log(addComp);});var marker = new BMap.Marker(point);map.addOverlay(marker);document.getElementById("allmap").value = e.point.lng+ "," + e.point.lat;});</script>