Ответ 1
GeoClue, по-видимому, удовлетворяет хотя бы некоторым вашим требованиям.
Чтобы преобразовать координаты в удобочитаемый адрес, можно использовать API OSN Nominatim.
Это один из тех, "безусловно, есть какая-то универсальная утилита, которая лучше, чем быстрая и грязная вещь, с которой я столкнулся ". Как и в России, я знаю, как сделать это несколькими специальными способами, но хотел бы используйте стандарт.
КРАТКИЙ ОБЗОР: Я ищу разумно стандартные и вездесущие инструменты для определить мое нынешнее географическое положение. Вызывается из Linux/UNIX командной строки, Perl, Emacs и т.д.
ДЕТАЛЬ:
Тривиальная ситуация внушает этот вопрос (но, несомненно, более важные приложения): я использую emacs org-mode, часто для записи журнал или дневник. Я вообще не использую официальный дневник в режиме org-mode - в основном, я удаляю временные метки в обычном журнале режима org, метаданные, которые выглядят как ссылка.
[[metadata: timestamp="<2014-01-04 15:02:35 EST, Saturday, January 4, WW01>" <location location="??" timestamp="??"/>][03:02 PM]]
Как вы можете видеть, я давно добавил способность записывать мои место нахождения. Но до сих пор мне приходилось устанавливать его вручную. Я ленив, и часто пренебрегают установкой местоположения вручную. (Незначительное примечание: я записал в последний раз, когда я вручную устанавливаю местоположение, полезно при перемещении и пренебречь вручную изменить свое местоположение.
Я бы предпочел иметь код, который автоматически меняет место нахождения. В частности, поскольку я довольно много путешествовал по в прошлом месяце, но, вероятно, более полезно для полудюжины или около того местами я перемещаюсь между деньгами: дом, работа, океан, стандартные рестораны Я ем рабочий обед или завтрак.
Я могу определить свое местоположение с помощью любого из нескольких инструментов, таких как
Где я - см. текущее местоположение на Картах Google - ctrlq.org/maps/where/
Perl CPAN-пакеты, такие как IP:: Location - для сопоставления IP-адреса в местоположении
и эвристики, такие как просмотр SSID WiFi и т.д.
Я уже что-то закодировал.
Но... там больше глубины, чем я закодировал.
Ни один из вышеприведенные методы являются совершенными. У меня может не быть net.connectivity, и т.д. Некоторые из них специфичны для ОС.
Если уже есть средство с открытым исходным кодом, я должен использовать это.
Поэтому мой вопрос: есть ли разумно вездесущая служба геолокации?
Мой список пожеланий
Работает с ОС OS
Утилита командной строки
Может подключаться к широко доступным стандартным службам геолокации
Работает даже тогда, когда не удается подключиться к стандартным службам геолокации или интернету
Настраиваемый
Узнал
Обучение
эвристика
Кэширование
GeoClue, по-видимому, удовлетворяет хотя бы некоторым вашим требованиям.
Чтобы преобразовать координаты в удобочитаемый адрес, можно использовать API OSN Nominatim.
Почему вы просто не использовали GPS? Вы можете просто добавить координаты в свои метаданные и привязать их к адресу (от простых чисел до фактического места) после чтения.
Таким образом, почти все может быть помечено координатами.
В gnu/linux и других организациях, gpds
должен делать.
В Windows я понятия не имею.
В Android слой сценариев для android должен обеспечивать доступ к устройству gps.
Я не уверен, что это соответствует вашим требованиям, но я просто предлагаю.
Вы можете использовать wget для извлечения данных с одного из указанных вами сайтов, что-то вроде wget http://www.wolframalpha.com/input/?i=Where+am+I%3F
, а затем найти данные из загруженного вами файла.
Позвольте мне сказать так. Вы намерены отслеживать свое местоположение без использования устройства позиционирования, такого как gps. Это делается на основе вашего текущего местоположения географии с ближайшей точки доступа к сети. Точки доступа к сети обычно имеют геокодирование. Я предполагаю, что вы отслеживаете свое местоположение на своем ноутбуке, так как оно не имеет gps.
Для этого должно быть несколько фреймворков. Поскольку вы хотите, чтобы это была кросс-платформа, я думаю, что основой для python является ваш лучший вариант. Вы также можете указать местоположение google geo. Есть несколько api, встроенных в html5 для геолокации. Я думаю, вы можете использовать coo-kup собственное приложение и делиться им на openource для всех остальных.
Для окон есть много коммерческих pc trackinga pps. Все они прекрасно справляются с этим.