百度地圖API 顯示區域邊界及地名定位


百度地圖API 顯示區域邊界及地名定位

這個定位一共用了兩個方法組成

一個是定位繪制區域邊界線,另一個是地名定位

原理:

  當用戶輸入省、市、縣、區這種大地名時,我們要定位用戶輸入的這個位置,並顯示輪廓,即調用getBoundary方法;

  當用戶輸入鄉,街道,某個學校這樣的小地名時,這是由於區域太小,不需要對這片區域描邊時,我們再調用dw方法

<div id="l-map"></div>
    <div class="layout">
        <input id="value" value="青山湖區長春村" type="text">
     <input type="submit" onclick="pd()" value="定位"> </div>
//初始化地圖
    var value='';var map = new BMap.Map("l-map");
    map.centerAndZoom('北京市',10);
    map.enableScrollWheelZoom();
//定位區域,小地名,使用本地檢索方法
    var dw=function(){
        //value=document.getElementById('value').value;
        var local = new BMap.LocalSearch(map, {
            renderOptions:{map: map}
        });
        
        local.setMarkersSetCallback(function(pois){
            map.clearOverlays();//清除所有覆蓋物后,在疊加第一個點
            var marker = new BMap.Marker(pois[0].point);
            map.addOverlay(marker);
       })
        
        local.search(value);
        map.clearOverlays();
        
    }
//獲取邊界
    function getBoundary(){//獲取邊界       
    var bdary = new BMap.Boundary();
    bdary.get(value, function(rs){       //獲取行政區域
        map.clearOverlays();        //清除地圖覆蓋物       
        var count = rs.boundaries.length; //行政區域的點有多少個
        for(var i = 0; i < count; i++){
            var ply = new BMap.Polygon(rs.boundaries[i], {
                strokeWeight: 1,
                strokeColor: "#ff0000"
            }); //建立多邊形覆蓋物
            map.addOverlay(ply);  //添加覆蓋物
            map.setViewport(ply.getPath());    //調整視野         
            }                
        });   
    }   
//正則表達式,滿足條件后調用
    var patter=/['省'|'市'|'區'|'縣']$/;
    var pd=function(){
        value=document.getElementById('value').value;
        if(patter.test(value)==true){//關鍵字結尾是省市縣區就調用下面方法
            getBoundary();
            if(/社區|小區$/.test(value)==true){//因為區后面結尾,會有小區和社區,即做了一個字方法
                dw();
            }
        }else{//關鍵字結尾沒有省市縣區結尾就調用此方法
            dw();
        }
    }

 


免責聲明!

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



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