1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 百度地图点击地点显示经纬度并且转换为百度地址及添加控件

百度地图点击地点显示经纬度并且转换为百度地址及添加控件

时间:2019-07-03 12:45:26

相关推荐

百度地图点击地点显示经纬度并且转换为百度地址及添加控件

一、百度地图初始化及添加基本控件

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>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。