調用百度地圖 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.  如果覺得本文有用,歡迎大賞---


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM