Я использую API-интерфейс navigator.geolocation.getCurrentPosition (function) в firefox 3.6. Когда я пытаюсь вызвать этот метод несколько раз, я вижу, что иногда он работает, а иногда нет. Я понял, что проблема заключается в асинхронном обратном вызове. Я вижу, что в некоторый момент вызывается функция обратного вызова, но моя внешняя функция уже завершается, поэтому я не могу поймать значения координат позиции.
Я довольно новичок в javascript, поэтому я предполагаю, что другие кодировщики javascript, возможно, уже выяснили, как с этим бороться. Пожалуйста, помогите.
Редактировать: вот пример кода, который я использую
<script type="text/javascript">
function getCurrentLocation() {
var currLocation;
if(navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
currLocation = new google.maps.LatLng(position.coords.latitude,position.coords.longitude);
});
}
return currLocation; // this returns undefined sometimes. I need help here
}
</script>
Редактировать 2:
Спасибо всем за ответы, я хотел бы выбрать все ответы как «принятые», но не могу этого сделать.
Теперь я столкнулся с другой проблемой. Я вызываю navigator.geolocation.getCurrentPosition каждые 3 секунды, но ответы прекращаются после 10 - 15 ответов. У кого-нибудь есть идеи?
еще раз спасибо