2013-11-13 5 views
3

У меня есть представление, отображающее текущее местоположение пользователя, используя карты Google и маршрут к его разлуке.ios google maps precision

проблема: пользовательское местоположение больше не работает, я не могу поместить приложение в Appstore, он будет получать плохие отзывы.

Я проверил google sdk для IOS, есть ли свойство для точности!? like: self.googleMap.accuracy = bestForNavigation

Есть ли какие-либо настройки или свойства, которые можно установить, чтобы повысить точность определения местоположения пользователя?

Как отображать приложения в Appstore, отображая местоположение пользователя с такой высокой точностью, как приложение Google? enter image description here

ответ

4

В CoreLocationManager вы можете установить desiredAccuracy на номер kCLLocationAccuracyBestForNavigation. Тем не менее, GPS по-прежнему никогда не совершенен, вы можете получить от GPS-сигнала от 5 до 100 м в зависимости от качества сигнала, вида неба (каньонов, городов) и т. Д.

Еще один источник ошибок, ваши данные GPS находятся в одной и той же системе координат (например, WGS-84) в качестве карты и данных дорожной сети. Различные базы данных могут добавлять небольшие (или большие) ошибки.

Чтобы компенсировать присущую GPS и ошибку при сопоставлении, большинство приложений навигации по очереди используют то, что мы называем «привязкой к дороге». Мы подсчитываем, к каким дорогам находится пользователь, и если местоположение GPS находится в пределах 30 м (см. Примечание 1) дороги. И курс (или заголовок, примечание2) находится в пределах +/- 25 градусов дорожного направления, ТОГДА мы «привязываемся» к дорога. Это означает, что мы меняем местоположение и заголовок отображаемой точки местоположения так, чтобы он показывал, что пользователь находится точно в дороге (вычислите ближайшую точку на дороге от точки GPS) и направляйтесь вдоль дорожного пути (выберите заголовок дороги, который ближе всего). Для этого требуются подробные данные о геометрии дороги, включая кривые и некоторые веские расчеты, но она работает очень хорошо, как только вы ее получите.

Если они находятся дальше от дороги или не совпадают с дорожным заголовком, тогда мы показываем их фактическое местоположение GPS. Это работает очень хорошо, но для этого требуется, чтобы у вас была геометрия дорожной сети (или, по крайней мере, ее маршрут к геометрии назначения), чтобы вы могли выполнить эти проверки.

Примечание1: мы выбираем допуски, основанные на сообщенном horizontalAccuracy, из CLLocation, который мы получаем.

Примечание2: мы смешиваем заголовок (курс исправления) и курс (из GPS), чтобы определить фактический заголовок пользователя. Ниже примерно 8 км/ч мы преимущественно используем заголовок компаса, выше которого мы в основном используем курс GPS (его более точный). Мы также курс GPS, чтобы определить ошибку компаса, чтобы исправить это.Это позволяет нам показывать точные заголовки, даже когда они останавливаются на свету или на очень медленных скоростях парковки.

+0

теперь я использую карты Google Maps SDK для ios .... с его доступным api я не могу реализовать привязку к функциональности дороги ... что бы вы посоветовали мне ... я должен использовать openstreetsmap, карту apple, mapquset ! ?? где я должен начать – homam

1

Есть пределы точности GPS.
Если приложение имеет доступ к базовым данным карты, и есть предположение, что местоположение должно быть на дороге, тогда оно может вытеснить местоположение пользователя. Но что, если я припаркован возле дороги или нет в транспортном средстве.

Fro: gps.gov: Сигнал GPS в космосе обеспечит точность псевдодальности «наихудшего случая» 7,8 м при 95% -ном уровне достоверности.

Но приемники могут делать лучше, чем это, особенно если они неподвижны. В стационарном случае усреднение местоположения может существенно помочь, но факт, что он является стационарным, должен быть известен устройству. Также приемники могут делать гораздо хуже. Таким образом, от 10 до 20 метров, вероятно, является безопасным предположением.