百度地圖接口 根據輸入位置 查詢經緯度


原文轉載自:http://www.cnblogs.com/jianglan/archive/2013/05/31/3108646.html

 http://api.map.baidu.com/lbsapi/getpoint/index.html   大神實現的效果跟這個幾乎一樣,如果需要,可以接着往下看。

  這幾天比較空閑,就接觸了下百度地圖的API(開發者中心鏈接地址:http://developer.baidu.com),發現調用還是挺方便的。只要簡單幾步注冊下,就可以獲得一個Key,就能直接調用(PS:好像1.3版本前的無需注冊獲取key,就能直接調用api)。
  想着能結合到自己的項目中去,那也挺不錯的。看了園子中的幾篇文章,感覺甚好,想自己也動手試試。
在調用百度地圖API的時候,經緯度的獲取必然是關鍵,那么怎么樣獲取到經緯度的值呢?這是一個最首要解決的問題。
通過查詢資料,看了幾個例子,得知了調用的方法(感謝與時俱進的實例,給予很大的幫助)。站着巨人的肩膀上,就能比較快的實現功能。
  閑話不多,下面就直接給大家介紹下,具體要怎么調用百度地圖API。
  

全文內容較多,我就不全復制了,有需要的話可以去原作者那兒看 。

下面是全部代碼

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>根據地址查詢經緯度</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <script type="text/javascript" src="http://api.map.baidu.com/api?v=1.3"></script>
</head>
<body style="background:#CBE1FF">
    <div style="width:730px;margin:auto;">   
        要查詢的地址:<input id="text_" type="text" value="寧波天一廣場" style="margin-right:100px;"/>
        查詢結果(經緯度):<input id="result_" type="text" />
        <input type="button" value="查詢" onclick="searchByStationName();"/>
        <div id="container" 
            style="position: absolute;
                margin-top:30px; 
                width: 730px; 
                height: 590px; 
                top: 50; 
                border: 1px solid gray;
                overflow:hidden;">
        </div>
    </div>
</body>
<script type="text/javascript">
    var map = new BMap.Map("container");
    map.centerAndZoom("寧波", 12);//這里是初始地圖所顯示的城市
    map.enableScrollWheelZoom();    //啟用滾輪放大縮小,默認禁用
    map.enableContinuousZoom();    //啟用地圖慣性拖拽,默認禁用

    map.addControl(new BMap.NavigationControl());  //添加默認縮放平移控件
    map.addControl(new BMap.OverviewMapControl()); //添加默認縮略地圖控件
    map.addControl(new BMap.OverviewMapControl({ isOpen: true, anchor: BMAP_ANCHOR_BOTTOM_RIGHT }));   //右下角,打開

    var localSearch = new BMap.LocalSearch(map);
    localSearch.enableAutoViewport(); //允許自動調節窗體大小
function searchByStationName() {
    map.clearOverlays();//清空原來的標注
    var keyword = document.getElementById("text_").value;
    localSearch.setSearchCompleteCallback(function (searchResult) {
        var poi = searchResult.getPoi(0);
        document.getElementById("result_").value = poi.point.lng + "," + poi.point.lat;//這里是追加到對應的input文本框里,可以根據自己的需要來修改
        map.centerAndZoom(poi.point, 13);
        var marker = new BMap.Marker(new BMap.Point(poi.point.lng, poi.point.lat));  // 創建標注,為要查詢的地方對應的經緯度
        map.addOverlay(marker);
        var content = document.getElementById("text_").value + "<br/><br/>經度:" + poi.point.lng + "<br/>緯度:" + poi.point.lat;
        var infoWindow = new BMap.InfoWindow("<p style='font-size:14px;'>" + content + "</p>");
        marker.addEventListener("click", function () { this.openInfoWindow(infoWindow); });
        // marker.setAnimation(BMAP_ANIMATION_BOUNCE); //跳動的動畫
    });
    localSearch.search(keyword);
} 
</script>
</html>

 大神寫的很好用,親測可用。

這是大神實現好的效果圖:

 

引入接口的script  里面的版本1.5以上的就要加上自己的key了, 可以去百度申請,不花錢的,我用的是2.0的  (→_→)

最好是用新的,因為服務器端和瀏覽器端好像分開了,我不知道怎么說,大家創建應用的時候就知道了。

<script type="text/javascript" src="http://api.map.baidu.com/api?v=1.5&ak=您的密鑰"></script>

 

上面原碼里標紅的可以自己根據情況修改,

比如說,可以加上一個按鈕,根據點擊事件來打開或者關閉地圖,因為打開頁面以后,地圖出來了很大,加個按鈕可以讓它隱藏,這樣體驗更好一些,可以在頁面初始情況下就設置id為container的div 為隱藏狀態,通過按鈕來控制它出來或者隱藏。

最后,感謝無私奉獻的大神:然嗄     站在巨人的肩膀上,做東西就是快  (→_→)

 


免責聲明!

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



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