之前做百度地图定位时写的调用方法,在这里记录下。
PS:此处引入的是v1.2版本的API,非最新版本。
一、获取地理位置方法
var getLocation = function() {
var options = {
enableHighAccuracy: true,
maximumAge: 1000
}
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(onSuccess, onError, options);
} else {
alert("您的浏览器不支持定位");
}
}
二、成功回调方法
function onSuccess(position) {
var longitude = position.coords.longitude; // 经度
var latitude = position.coords.latitude; // 纬度
// 生成坐标点
var point = new BMap.Point(longitude, latitude);
new BMap.Geocoder().getLocation(point, function(rs) {
var addComp = rs.addressComponents;
alert('定位成功:' + addComp.city);
})
}
三、失败回调方法
function onError(error) {
switch (error.code) {
case 1:
case 2:
case 3:
case 4:
alert('定位失败');
break;
}
}
顺便封装一下:
var baiduGetLocation = {
init: function() {
var options = {
enableHighAccuracy: true,
maximumAge: 1000
},
_this = this;
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(_this.onSuccess, _this.onError, options);
} else {
alert("您的浏览器不支持定位");
}
},
onSuccess: function() {
var longitude = position.coords.longitude; // 经度
var latitude = position.coords.latitude; // 纬度
// 生成坐标点
var point = new BMap.Point(longitude, latitude);
new BMap.Geocoder().getLocation(point, function(rs) {
var addComp = rs.addressComponents;
alert('定位成功:' + addComp.city);
});
},
onError: function() {
switch (error.code) {
case 1:
case 2:
case 3:
case 4:
alert('定位失败');
break;
}
}
}