在現代社會中,經緯度已經成為了許多業務領域的必備項,而在WebGIS開發中,實現經緯度的獲取更是必不可少。
百度地圖作為開發中常用的底圖服務之一,提供了多種經緯度獲取方式。下面將對百度地圖的經緯度獲取做出詳細介紹。
一、通過地圖點擊獲取經緯度
在百度地圖中,我們可以通過地圖點擊的方式獲取經緯度信息。
var map = new BMap.Map("map-container");
map.centerAndZoom(new BMap.Point(116.404, 39.915), 11);
map.addEventListener("click", function(e){
alert(e.point.lng + ", " + e.point.lat);
});
上述代碼中,通過Map實例化對象的addEventListener()方法對地圖元素綁定單擊事件,這樣我們就可以獲取到滑鼠單擊的坐標,通過e.point.lng和e.point.lat獲取經緯度信息。
二、通過IP地址獲取經緯度
如果用戶不允許或者無法獲取其位置信息時,我們可以通過IP地址獲取其所在位置的經緯度信息。這需要引入第三方庫,比如ip定位API提供商如新浪、搜狐、百度等。
//引入ip定位庫
//獲取IP地址定位
var myCity = new BMap.LocalCity();
myCity.get(function(result){
var cityName = result.name;
var myGeo = new BMap.Geocoder();
myGeo.getPoint(cityName, function(point){
alert(point.lng + ", " + point.lat);
});
});
上述代碼中,我們使用BMap.LocalCity()方法獲取所在城市的名稱,然後通過BMap.Geocoder()方法獲取該城市的坐標位置,從而獲取經緯度信息。
三、通過地址獲取經緯度
在某些情況下,我們已經了解用戶的地址信息,需要通過這些地址信息獲取對應的經緯度信息。這時我們可以通過百度地圖提供的地址解析功能來實現。
//引入地址解析庫
//獲取地址經緯度
var myGeo = new BMap.Geocoder();
myGeo.getPoint("北京市海淀區上地10街", function(point){
alert(point.lng + ", " + point.lat);
});
上述代碼中,我們使用BMap.Geocoder()方法獲取地址的經緯度信息。
四、通過GPS獲取經緯度
在移動端開發中,我們可以通過GPS獲取用戶的經緯度信息。
//引入GPS定位庫
//定位
var geolocation = new BMap.Geolocation();
geolocation.getCurrentPosition(function(r){
if(this.getStatus() == BMAP_STATUS_SUCCESS){
alert('您的位置:'+r.point.lng+','+r.point.lat);
}
else {
alert('failed'+this.getStatus());
}
});
上述代碼中,我們使用BMap.Geolocation()方法獲取GPS的定位信息,通過getCurrentPosition()方法獲取坐標信息。
總結
本文詳細介紹了百度地圖獲取經緯度的各種方法。無論是通過地圖點擊、IP地址、地址或者GPS信息,我們都可以方便地獲取到對應的坐標信息。同時,在開發WebGIS時,我們也可以根據業務需要,選擇其中的某一種方式獲取對應的坐標,以實現定位等功能。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/309914.html