1. 程式人生 > 實用技巧 >百度地圖API 模糊搜尋、預設定位、雙擊獲取經緯度

百度地圖API 模糊搜尋、預設定位、雙擊獲取經緯度

<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=k1t5GeQivZwSE4vMgPZSxE9UuB2c1b1o&s=1"></script>
<!--<script src="https://api.map.baidu.com/api?v=2.0&ak=WdWbcurWMKb1uFGfhOjj4dfDGKwBvgk9&s=1"></script>-->

<!-- 如果需要拖拽滑鼠進行操作,可引入以下js檔案 -->
<script type="
text/javascript" src="http://api.map.baidu.com/library/RectangleZoom/1.2/src/RectangleZoom_min.js"></script> <div id="allmap" style="width: 800px;height: 400px;"></div> <div id="r-result">請輸入:<input type="text" id="suggestId" size="30" value="慶雲縣" style="width:300px;" /></div> <div id="
searchResultPanel" style="border:1px solid #C0C0C0;width:150px;height:auto; display:none;"></div> <script type="text/javascript"> var shop_lon_and_ait = "{{$data.lon_and_lat}}" //後端傳過來的經緯度 var map = new BMap.Map("allmap"); var default_quyu = "山東省德州市慶雲縣"; //預設區域地址 var default_level = 15
; //預設放大級別 if (shop_lon_and_ait != "") { lon_and_ait_arr = shop_lon_and_ait.split(","); //字元分割 lon = lon_and_ait_arr[0] ait = lon_and_ait_arr[1] default_quyu = new BMap.Point(lon,ait); default_level = 25 map.centerAndZoom(default_quyu,default_level); map.enableScrollWheelZoom(true); map.clearOverlays(); var new_point = new BMap.Point(lon,ait); var marker = new BMap.Marker(new_point); // 建立標註 map.addOverlay(marker); // 將標註新增到地圖中 map.panTo(new_point); } function G(id) { return document.getElementById(id); } map.enableScrollWheelZoom(); //啟用滾輪放大縮小,預設禁用 map.enableContinuousZoom(); //啟用地圖慣性拖拽,預設禁用 // var myDrag = new BMapLib.RectangleZoom(map, { // followText: "拖拽滑鼠進行操作" // }); // myDrag.open(); //開啟拉框放大 // myDrag.close(); //關閉拉框放大 map.centerAndZoom(default_quyu,default_level); // 初始化地圖,設定城市和地圖級別。 var ac = new BMap.Autocomplete( //建立一個自動完成的物件 {"input" : "suggestId" ,"location" : map }); map.addEventListener("click",function(e){ // map.clearOverlays(); $('#lon_and_lat').val(e.point.lng + ',' + e.point.lat); }); ac.addEventListener("onhighlight", function(e) { //滑鼠放在下拉列表上的事件 var str = ""; var _value = e.fromitem.value; var value = ""; if (e.fromitem.index > -1) { value = _value.province + _value.city + _value.district + _value.street + _value.business; } str = "FromItem<br />index = " + e.fromitem.index + "<br />value = " + value; value = ""; if (e.toitem.index > -1) { _value = e.toitem.value; value = _value.province + _value.city + _value.district + _value.street + _value.business; } str += "<br />ToItem<br />index = " + e.toitem.index + "<br />value = " + value; G("searchResultPanel").innerHTML = str; }); var myValue; ac.addEventListener("onconfirm", function(e) { //滑鼠點選下拉列表後的事件 var _value = e.item.value; myValue = _value.province + _value.city + _value.district + _value.street + _value.business; G("searchResultPanel").innerHTML ="onconfirm<br />index = " + e.item.index + "<br />myValue = " + myValue; setPlace(); }); function setPlace(){ map.clearOverlays(); //清除地圖上所有覆蓋物 function myFun(){ var pp = local.getResults().getPoi(0).point; //獲取第一個智慧搜尋的結果 // console.log('經度:'+pp.lng, '緯度:'+pp.lat); $('#lon_and_lat').val(pp.lng + ',' + pp.lat); map.centerAndZoom(pp, 18); map.addOverlay(new BMap.Marker(pp)); //新增標註 } var local = new BMap.LocalSearch(map, { //智慧搜尋 onSearchComplete: myFun }); local.search(myValue); } </script>