Библиотека Google Geolocation API

Пример, данный в вопросе, достаточно тривиален для работы с простым переключателем. Проблема возникает, когда если-elses вкладываются глубже и глубже. Они больше не "ясны или легки читать", (как кто-то еще обсужденный) и добавление нового кода или исправление ошибок в них становится все более трудным и более твердым быть уверенным в том, потому что Вы не могли бы закончить, где Вы ожидали, сложна ли логика.

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

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

6
задан Igor Zevaka 8 October 2009 в 21:36
поделиться

2 ответа

Пожалуйста, взгляните на Sony PlaceEngine, он покажет вам местоположение на основе сигналов WiFi, к которым он может получить доступ. Обратной стороной является то, что пользователям необходимо установить PE-клиент. Положительным моментом является то, что к нему можно получить доступ с веб-сайтов и / или локальных приложений. Существует онлайн-серверная БД, которую вы можете запросить для получения подробной информации, и опция локальной БД, которую вы можете запросить для оценки местоположения, когда нет Интернета. Это используется для множества навигационных программ, в том числе в качестве резервной копии GPS в устройствах Sony Nav-U. Кроме того, вы можете обновить данные placeEngine самостоятельно (т.е. добавить новые точки доступа).

Вариант 2 - это Apple CoreLocation, которая в настоящее время использует службу, известную как SkyHook. Я уверен, что вы можете использовать SkyHook на платформах, отличных от Apple, если хотите.

Служба Google Latitude каким-то образом использует Gears, и она должна использовать Wi-Fi, потому что он слишком точен, чтобы основываться только на IP-адресе. Вероятно, они сами используют базы данных PlaceEngine или Skyhook на сервере ...

3
ответ дан 17 December 2019 в 18:17
поделиться
0
ответ дан 17 December 2019 в 18:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: