var alt, lat, long;
function onSuccess(position) {
lat = position.coords.latitude;
long = position.coords.longitude;
alt = position.coords.altitude;
}
function onError(error) {
myApp.alert('code: ' + error.code + '\n' + 'message: ' + error.message + '\n', main_title);
}
navigator.geolocation.getCurrentPosition(onSuccess, onError, { enableHighAccuracy: true });
alert(long + ' ' + lat);
привет, я новичок в java-скрипте. пожалуйста, помогите мне выйти из методов выше. предупреждение просто не определено.
Проблема заключается в размещении вашего предупреждения. Предупреждение необходимо включить в методе обратного вызова onSuccess. Здесь, как JavaScript интерпретирует ваш код.
См. Проблему? Предупреждение происходит сразу, а геолокация происходит асинхронно. Может показаться, что геолокация происходит мгновенно, но в том, что касается потока кода, это происходит совсем немного в будущем после того, как остальная часть нашего кода завершит работу.
Вместо этого попробуйте использовать этот код:
var alt, lat, long;
function onSuccess(position) {
lat = position.coords.latitude;
long = position.coords.longitude;
alt = position.coords.altitude;
allert(long + ', ' + lat);
}
function onError(error) {
myApp.alert('code: ' + error.code + '\n' + 'message: ' + error.message + '\n', main_title);
}
navigator.geolocation.getCurrentPosition(onSuccess, onError, { enableHighAccuracy: true });
Вы должны определить функцию OnSuccess
и получить latitude
и longitude
;
function onSuccess(pos) {
var crd = pos.coords;
console.log('Your current position is:');
console.log('Latitude : ${crd.latitude}');
console.log('Longitude: ${crd.longitude}');
}
navigator.geolocation.getCurrentPosition(onSuccess, onError, { enableHighAccuracy: true });