javascript - h5 geografische Standortpositionierung getCurrentPosition, nachdem die Positionierung zulässig ist, wird die Funktion nach Erfolg nicht mehr verwendet, Experten können Ratschläge geben!
淡淡烟草味
2017-06-05 11:12:51
// 出发城市
let $cityname;
let $config = {
getPoint: function() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition($config.showPosition, $config.handleLocationError, {
enableHighAccuracy: true,
timeout: 1000,
maximumAge: 0
});
}
},
initCity: function() {
// api.setLocalStorage('uzmdepartureCityName', '北京');
$cityname = '北京';
alert('失败');
},
handleLocationError: function(error) {
$config.initCity();
},
showPosition: function(position) {
let latitude = position.coords.latitude,
longitude = position.coords.longitude;
console.log(latitude, longitude);
let point = new window.BMap.Point(longitude, latitude),
gc = new window.BMap.Geocoder;
gc.getLocation(point, function(rs) {
try {
let locationCity = rs.addressComponents.province;
$cityname = locationCity;
// alert('您现在的城市是:' + $cityname);
$doc.getElementById('mobile').value = $cityname;
} catch (e) {
$config.initCity();
}
});
}
};
$config.getPoint();
这跟你测试所用的浏览器有关系,去年项目需要研究过一段时间,并没有满意的结果,就我个人理解,部分浏览器使用的谷歌的定位服务,而谷歌服务在中国被墙了,所以要么定位非常非常慢,也非常非常不准,要么直接无法定位。。。你换些浏览器试试就知道区别了。。。推荐引用高德等第三方 JS 定位服务,经过特殊处理的,相对会好很多。