javascript - Positionnement géographique h5 getCurrentPosition, une fois le positionnement autorisé, la fonction ne sera pas utilisée après succès, les experts peuvent donner des conseils !
淡淡烟草味
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();
Cela a quelque chose à voir avec le navigateur que vous avez utilisé pour les tests. L'année dernière, le projet a dû être étudié pendant un certain temps, mais d'après ce que j'ai compris, certains navigateurs utilisent les services de localisation de Google, et Les services Google sont bloqués en Chine. Donc soit le positionnement est très très lent et très imprécis, soit il est tout simplement impossible à positionner. . . Vous pouvez essayer différents navigateurs et vous connaîtrez la différence. . . Il est recommandé d'utiliser des services de positionnement JS tiers tels qu'AutoNavi. Ceux qui ont subi un traitement spécial seront bien meilleurs.