Карты Google - DistanceTo против оповещения о близости против Geofence

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

1) использовать функции DistanceTo и DistanceBetween для расчета расстояния между местоположением пользователя и каждым маркером местоположения
2) использовать оповещения о приближении, связанные с каждым местоположением маркера
3) использовать геозоны, связанные с каждым местоположением маркера, в соответствии с Создание и мониторинг геозон

Какой подход лучше всего использовать с учетом (а) простоты реализации, (б) расхода заряда батареи и (в) точности GPS/местоположения? Учитывая, что я проектирую преимущественно для мобильных устройств, я предполагаю, что Wi-Fi не всегда будет доступен.


person ConfusedByTheMetricSystem    schedule 05.05.2014    source источник


Ответы (1)


Важное замечание по Google Play GeoFencing API. Я обнаружил, что GeoFencing никогда интеллектуально не извлекает местоположение из оборудования GPS. GeoFence API будет отслеживать наиболее точное местоположение, доступное из ОС, или, если последнее чтение местоположения недоступно, это приведет к расчету местоположения из Wi-Fi / Cellular. (что отстой, потому что сотовая связь крайне неточна, а Wi-Fi часто недоступен)

Таким образом, чтобы получить какие-либо отзывчивые или точные результаты из API геозон, вы должны настроить свои геозоны, а затем опросить аппаратное обеспечение GPS с интервалом, даже ничего не делая с полученным результатом, так что под поверхностью вы предоставляете полезные данные. к ОС.

Я не могу конкретно говорить о поведении LocationManager.addProximityAlert, но я сомневаюсь, что он ведет себя по-другому. Вы действительно можете использовать любой из них, и результаты и производительность, вероятно, будут идентичными, потому что тяжелая работа выполняется путем ручного пробуждения GPS.

Что касается того, как реализовать ваше текущее расстояние до ваших заборов, ни один из API близости не имеет интерфейса, чтобы определить это для вас. В ситуации, которую я описал выше, когда происходит опрос GPS, вместо того, чтобы ничего не делать с результатом, я бы использовал его с DistanceBetween для обновления расстояния между мной и точками, в которых я установил свои геозоны.

person stealthwang    schedule 08.05.2014
comment
Большое спасибо за ответ, Stealthwang, кажется, много работы, чтобы заставить геозону работать должным образом. Считаете ли вы, что опрос GPS через регулярные промежутки времени, как вы описали, приведет к значительному расходу заряда батареи? - person ConfusedByTheMetricSystem; 09.05.2014
comment
Нет, я не обнаружил, что это было в моем тестировании, хотя энергопотребление не было широко профилировано в тестировании, поскольку целевое устройство моих приложений обычно устанавливается в автомобиле. - person stealthwang; 31.05.2014