Это на самом деле не решает корень вашей проблемы, но моя стратегия для решения этой проблемы - установка точки местоположения по умолчанию, которую я использую сразу (не дожидаясь ответа на вопрос о геолокации).
Если я получаю местоположение от пользователя, я просто меняю его на новое местоположение. Если я получу отказ или вообще не отвечу, я просто останусь в месте по умолчанию.
По моему опыту, для настольного клиента (в моем случае Firefox на стационарном компьютере с Windows) требуется намного больше, чем для мобильного клиента (в моем случае Safari на iPhone). Я был вынужден установить тайм-аут на 10 секунд (10000), чтобы дать настольному клиенту достаточно времени для ответа. Поэтому, если у вас есть карта, ее инициализация и непосредственное центрирование на местоположении по умолчанию предоставят пользователю карту на экране намного быстрее, чем если бы вам пришлось ждать ответа.
Удачи в вашем проекте позиционирования!