凨-百度地圖API之地圖標注(JS版),地理位置信息,根據地址獲取經度緯度
使用的時候記得更改百度地圖的開發者KEY
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>凨-百度地圖API之地圖標注(JS版),地理位置信息,根據地址獲取經度緯度</title> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <script type="text/javascript" src="https://api.map.baidu.com/api?v=2.0&ak=8277432c34c6f58ba75d3a541ed2559e"></script> </head> <body> <div> <p>搜索: <input type="text" size="50"/> <input type="button" value="搜索" /> </p> <p> 緯度:<input name="lng" type="text" value="120.570464"/> 經度:<input name="lat" type="text" value="31.300216"/> 標注點所在區域:<input name="address" type="text" /> </p> </div> <div > </div> <div > <input type="button" value="標注" /> </div> <script type="text/javascript"> var map = new BMap.Map("container"); //創建地址解析的實例 var myGeo = new BMap.Geocoder(); var lng = $('#lng').val(), lat = $('#lat').val(); //默認根據IP讀取當前城市 var LocalCity = true; //默認北京市,或經度緯度不正確情況下 if (!lng || !lat) { lng = 116.331398; lat = 39.897445; } else { LocalCity = false; } //設置地圖中心坐標 map.centerAndZoom(new BMap.Point(lng, lat), 12); //添加默認縮放平移控件 map.addControl(new BMap.NavigationControl()); //開啟縮小放大 map.enableScrollWheelZoom(); //當前城市 if (LocalCity) { var myCity = new BMap.LocalCity(); myCity.get(setCenter); }else{ //設置覆蓋物 var point = new BMap.Point(lng, lat); setPoint(point); } //搜索 $('#Search').bind('click', function () { //清空覆蓋物 map.clearOverlays(); var searchTxt = $("#keyword").val(); myGeo.getPoint(searchTxt, function (point) { setPoint(point); }, "全國"); }); //搜索 $('#biao').bind('click', function () { //清空覆蓋物 map.clearOverlays(); var center = map.getCenter(); var point = new BMap.Point(center.lng, center.lat); setPoint(point); }); /** * 回調函數 */ function setCenter(result) { var cityName = result.name; //把地圖設置當前城市 map.setCenter(cityName); } /** * 設置覆蓋物,獲取坐標 * @param point */ function setPoint(point) { if (point) { //坐標賦值 $('#lng').val(point.lng); $('#lat').val(point.lat); Geocoder(point); map.centerAndZoom(point, 12); var marker = new BMap.Marker(point); map.addOverlay(marker); marker.enableDragging();//可以拖動 //創建信息窗口 var infoWindow = new BMap.InfoWindow("這就是您公司的位置。<br/>如果不正確,請拖動紅色圖標"); //顯示窗口 marker.openInfoWindow(infoWindow); //點擊監聽 marker.addEventListener("click", function () { this.openInfoWindow(infoWindow); }); //拖動監聽 marker.addEventListener("dragend", function (e) { //坐標賦值 $('#lng').val(e.point.lng); $('#lat').val(e.point.lat); Geocoder(e.point); }); } } /** * 根據坐標獲取地址 * @param point * @constructor */ function Geocoder(point) { var gc = new BMap.Geocoder(); gc.getLocation(point, function (rs) { var addComp = rs.addressComponents; $('#address').val(addComp.province + ", " + addComp.city + ", " + addComp.district + ", " + addComp.street + ", " + addComp.streetNumber); }); } </script> </body> </html>

最後更新:2017-04-03 12:56:33