利用百度地圖實現搜索定位功能


1.html部分

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>搜索定位</title>
    <link rel="stylesheet" type="text/css" href="style.css">
    <style type="text/css">

        #map {
            width: 800px;
            height: 800px;
         }
    </style>
    <script src="jquery.js"></script>
    <script type="text/javascript" src="//api.map.baidu.com/api?v=2.0&ak=你申請的ak碼"></script>
</head>
<body>
    <div id="map">

    </div>
    <input type="text" id="address">
    <button id="btn">搜索</button>
</body>
</html>

2.js部分

代碼都有注釋,就不多說了

// 百度地圖API功能
var map = new BMap.Map("map");
map.centerAndZoom("杭州", 11);
var top_left_control = new BMap.ScaleControl({anchor: BMAP_ANCHOR_TOP_LEFT});// 左上角,添加比例尺
var top_left_navigation = new BMap.NavigationControl();  //左上角,添加默認縮放平移控件

// 標尺控件
map.addControl(top_left_control);
map.addControl(top_left_navigation);

//定位
function setPlace(value) {
    var local, point, marker = null;
    local = new BMap.LocalSearch(map, { //智能搜索
        onSearchComplete: fn
    });

    local.search(value);

    function fn() {
        //如果搜索的有結果
        if(local.getResults() != undefined) {
            map.clearOverlays(); //清除地圖上所有覆蓋物
            if(local.getResults().getPoi(0)) {
                point = local.getResults().getPoi(0).point; //獲取第一個智能搜索的結果
                map.centerAndZoom(point, 18);
                marker = new BMap.Marker(point); // 創建標注
                map.addOverlay(marker); // 將標注添加到地圖中
                marker.enableDragging(); // 可拖拽
                alert("當前定位經度:"+point.lng+"緯度:"+point.lat);
            } else {
                alert("未匹配到地點!可拖動地圖上的紅色圖標到精確位置");
            }
        } else {
            alert("未找到搜索結果")
        }
    }
}
// 按鈕事件
$("#btn").click(function(){
    setPlace($("#address").val());
});

3.效果  

 


免責聲明!

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



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