原文轉載自: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 為隱藏狀態,通過按鈕來控制它出來或者隱藏。
最后,感謝無私奉獻的大神:然嗄 站在巨人的肩膀上,做東西就是快 (→_→)