先看效果:
實現步驟:
1、到百度aip示例學習獲取代碼
http://api.map.baidu.com/lbsapi/creatmap/index.html
2、代碼注釋很詳細,其中創建地圖時是通過經緯度定位的。修改一下,我們通過傳參的方式。
//創建地圖函數: function createMap(x, y) { var map = new BMap.Map("dituContent");//在百度地圖容器中創建一個地圖 var point = new BMap.Point(x, y);//定義一個中心點坐標 map.centerAndZoom(point, 12);//設定地圖的中心點和坐標並將地圖顯示在地圖容器中 window.map = map;//將map變量存儲在全局 }
3、添加文本框、按鈕,點擊按鈕的時候把文本框的內容傳給javascript。
<div>
<input type="text" id="input" />
<input type="button" onclick="searchMap();" value="搜索地圖" />
</div>
4、javascript將地區轉化為經緯度,重新創建地圖。
function searchMap() { var area = document.getElementById("input").value; //得到地區 var ls = new BMap.LocalSearch(map); ls.setSearchCompleteCallback(function(rs) { if (ls.getStatus() == BMAP_STATUS_SUCCESS) { var poi = rs.getPoi(0); if (poi) { createMap(poi.point.lng, poi.point.lat);//創建地圖(經度poi.point.lng,緯度poi.point.lat) setMapEvent();//設置地圖事件 addMapControl();//向地圖添加控件 } } }); ls.search(area); }
完整代碼:
<!--引用百度地圖API--> <style type="text/css"> .iw_poi_title { color: #CC5522; font-size: 14px; font-weight: bold; overflow: hidden; padding-right: 13px; white-space: nowrap } .iw_poi_content { font: 12px arial, sans-serif; overflow: visible; padding-top: 4px; white-space: -moz-pre-wrap; word-wrap: break-word } </style> <script type="text/javascript" src="http://api.map.baidu.com/api?key=&v=1.1&services=true"> </script> <!--百度地圖容器--> <div style="width: 600px; height: 450px; border: #ccc solid 1px; margin-bottom: 20px;" id="dituContent"></div> <div> <input type="text" id="input" /> <input type="button" onclick="searchMap();" value="搜索地圖" /> </div> <script type="text/javascript"> //創建和初始化地圖函數: function initMap() { createMap(114.025974, 22.546054);//創建地圖 setMapEvent();//設置地圖事件 addMapControl();//向地圖添加控件 } //地圖搜索 function searchMap() { var area = document.getElementById("input").value; //得到地區 var ls = new BMap.LocalSearch(map); ls.setSearchCompleteCallback(function(rs) { if (ls.getStatus() == BMAP_STATUS_SUCCESS) { var poi = rs.getPoi(0); if (poi) { createMap(poi.point.lng, poi.point.lat);//創建地圖(經度poi.point.lng,緯度poi.point.lat) setMapEvent();//設置地圖事件 addMapControl();//向地圖添加控件 } } }); ls.search(area); } //創建地圖函數: function createMap(x, y) { var map = new BMap.Map("dituContent");//在百度地圖容器中創建一個地圖 var point = new BMap.Point(x, y);//定義一個中心點坐標 map.centerAndZoom(point, 12);//設定地圖的中心點和坐標並將地圖顯示在地圖容器中 window.map = map;//將map變量存儲在全局 } //地圖事件設置函數: function setMapEvent() { map.enableDragging();//啟用地圖拖拽事件,默認啟用(可不寫) map.enableScrollWheelZoom();//啟用地圖滾輪放大縮小 map.enableDoubleClickZoom();//啟用鼠標雙擊放大,默認啟用(可不寫) map.enableKeyboard();//啟用鍵盤上下左右鍵移動地圖 } //地圖控件添加函數: function addMapControl() { //向地圖中添加縮放控件 var ctrl_nav = new BMap.NavigationControl( { anchor : BMAP_ANCHOR_TOP_LEFT, type : BMAP_NAVIGATION_CONTROL_LARGE }); map.addControl(ctrl_nav); //向地圖中添加縮略圖控件 var ctrl_ove = new BMap.OverviewMapControl( { anchor : BMAP_ANCHOR_BOTTOM_RIGHT, isOpen : 1 }); map.addControl(ctrl_ove); //向地圖中添加比例尺控件 var ctrl_sca = new BMap.ScaleControl( { anchor : BMAP_ANCHOR_BOTTOM_LEFT }); map.addControl(ctrl_sca); } initMap();//創建和初始化地圖 </script>
