Вы хотите, чтобы ваш код работал так:
navigator.geolocation.getCurrentPosition(success, error);
alert("Your position is " + lat + ", " + long + ".");
// do some more stuff with lat and long
Но, success()
еще не был вызван, поэтому lat
все еще не определено. Вот для чего нужен ваш обработчик успеха. Весь код, который должен быть выполнен после того, как вы получили местоположение, попадает в обработчик успеха.Это будет работать:
navigator.geolocation.getCurrentPosition(function (position) {
success(position);
alert("Your position is " + lat + ", " + long + ".");
// do some more stuff with lat and long
}, error);