Я думаю, что W3C Geolocation API - хорошее место для начала: он получает все большее признание на мобильных телефонах, является открытым стандартом и абстрагируется от всех API для конкретных устройств.
Это правда, что точность может быть не идеальной, но это потому, что сам телефон не всегда точно знает, где он находится.API дает вам несколько способов обойти это: если вам нужна высокая точность, вы можете намекнуть устройству, что вы хотите получить точный результат, даже ценой энергии / времени, с флагом enableHighAccuracy
и установить длинный * 1006.* параметр, позволяющий устройству использовать GPS для поиска местоположения.Кроме того, все позиции возвращаются со значением точности для 95% достоверности - если ошибка слишком высока (часто телефоны возвращают высокую ошибку при первом запросе), вы можете запросить местоположение еще раз, указав, что вы не хотитекэшированное местоположение.