Вы достаточно долго ждете, пока GPS-навигатор iPhone определит ваше местоположение? Эта первоначальная активация служб определения местоположения может занять некоторое время, чтобы получить точное местоположение для возврата к API, что объясняет, почему последующая загрузка работает как задумано.
Возможно, стоит добавить некоторый код, указывающий на то, что функция геолокации HTML5 работает (возможно, после вызова getCurrentPosition отображается сообщение «Загрузка ...»).
Был бы также целесообразен обратный вызов ошибок, чтобы отлавливать и корректно обрабатывать ошибок , возникающих во время getCurrentPosition. Определенно, вы можете столкнуться со случаями, когда navigator.geolocation имеет значение true, но не вызовет функцию успеха, которую вы определили.