调用百度地图 API 移动地图时 maker 始终在地图中间 并根据maker 经纬度 返回地址
Posted Terre
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了调用百度地图 API 移动地图时 maker 始终在地图中间 并根据maker 经纬度 返回地址相关的知识,希望对你有一定的参考价值。
1.项目要求如题目
2.废话不说-----代码如下:
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <style type="text/css"> body, html,#allmap {width: 100%;height: 500px;overflow: hidden;margin:0;font-family:"微软雅黑";} </style> <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=DD279b2a90afdf0ae7a3796787a0742e"></script> <title>浏览器定位</title> </head> <body> <div id="allmap"></div> <div style="width:auto;height:55px;‘"> <input type="text" id="locate" style="background-color:pink;" placeholder="地址"/ > <input type="button" value="确定" style="background-color:blue;"/> </div> </body> </html> <script type="text/javascript"> // 百度地图API功能 var map = new BMap.Map("allmap"); var point = new BMap.Point(116.331398,39.897445); map.centerAndZoom(point,12); // 将标注添加到地图中 var geolocation = new BMap.Geolocation(); geolocation.getCurrentPosition(function(r){ var mk = new BMap.Marker(r.point); if(this.getStatus() == BMAP_STATUS_SUCCESS){ map.addOverlay(mk); map.panTo(r.point); map.addEventListener(‘ondragging‘, function(){ mk.setPosition(map.getCenter()); }); // 地图停止移动后获取mk经纬度 map.addEventListener(‘moveend‘,function(){ var pos = mk.getPosition(); console.log(pos); // 创建地址解析对象 var geoc = new BMap.Geocoder(); geoc.getLocation(pos, function(rs){ var addComp = rs.addressComponents; alert(addComp.province + ", " + addComp.city + ", " + addComp.district + ", " + addComp.street + ", " + addComp.streetNumber); }); }) //console.log(pos); alert(‘您的位置:‘+r.point.lng+‘,‘+r.point.lat); } else { alert(‘failed‘+this.getStatus()); } },{enableHighAccuracy: true}) //关于状态码 //BMAP_STATUS_SUCCESS 检索成功。对应数值“0”。 //BMAP_STATUS_CITY_LIST 城市列表。对应数值“1”。 //BMAP_STATUS_UNKNOWN_LOCATION 位置结果未知。对应数值“2”。 //BMAP_STATUS_UNKNOWN_ROUTE 导航结果未知。对应数值“3”。 //BMAP_STATUS_INVALID_KEY 非法密钥。对应数值“4”。 //BMAP_STATUS_INVALID_REQUEST 非法请求。对应数值“5”。 //BMAP_STATUS_PERMISSION_DENIED 没有权限。对应数值“6”。(自 1.1 新增) //BMAP_STATUS_SERVICE_UNAVAILABLE 服务不可用。对应数值“7”。(自 1.1 新增) //BMAP_STATUS_TIMEOUT 超时。对应数值“8”。(自 1.1 新增) </script>
3. 如果觉得本文有用,欢迎大赏---
以上是关于调用百度地图 API 移动地图时 maker 始终在地图中间 并根据maker 经纬度 返回地址的主要内容,如果未能解决你的问题,请参考以下文章