Im пытается получить текущую позицию пользователя в переменной объекта, но при этом сохраняет исходную информацию.привязка геолокации к текущему местоположению
var UserCoords = { lat: '', lng: '' };
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
} else {
alert("Geolocation is not supported by this browser.");
}
}
function showPosition(position) {
UserCoords.lat = position.coords.latitude;
UserCoords.lng = position.coords.longitude;
console.log(UserCoords);//Works
}
function getUserCoords() {
getLocation();
console.log(UserCoords);//Returns lat and lng empty
OtherFunction(UserCoords.lat, UserCoords.lng);
}
Я также попытался:
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function (position) {
UserCoords.lat = position.coords.latitude;
UserCoords.lng = position.coords.longitude;
console.log(UserCoords);//Works
});
}
Но ни работы.
Я хочу сделать это, потому что мне нужно использовать позицию пользователя в некоторых других функциях, и я бы не хотел, чтобы каждый раз вызывал геолокацию.
UPDATE:
jsfiddle: http://jsfiddle.net/9fvcqcvz
Вставьте его в скрипку, пожалуйста ... –
Возможный дубликат [неспособный справиться с асинхронным характером навигатора.geolocation] (http://stackoverflow.com/questions/2707191/unable-to-cope-with-the -асинхронный-природа-навигатор-геолокация) – Andreas
@eugensunic - Добавлена ссылка jsfiddle. –