Поиск часового пояса по широте и долготе [закрыт]

StackOverflow https://stackoverflow.com/questions/41504

Вопрос

Доступна ли какая-либо библиотека (или, что еще лучше, веб-сервис), которая может преобразовывать широту / долготу в часовой пояс?

Это было полезно?

Решение

Я довольно глубоко изучил этот вопрос для проекта, над которым я работаю.GeoNames.org и EarthTools.com оба являются хорошими вариантами для многих ситуаций, но со следующими серьезными недостатками:

  • GeoNames.org находит часовой пояс путем поиска ближайшей точки в их базе данных, которая содержит поле часового пояса.Это часто приводит к неправильному результату вблизи границ.Это также мучительно медленно, что приводит к увеличению времени запроса порядка пары секунд на запрос.Он также не возвращает действительный часовой пояс, если в их базе данных нет элемента рядом с точкой запроса.GeoNames также ограничивает количество запросов, которые могут быть сделаны в день, что затрудняет массовые операции.
  • Земные инструменты.org использует карту и может быстро возвращать запросы, но она не учитывает летнее время для большинства местоположений и возвращает необработанное смещение, а не идентификатор часового пояса (т. Е. они возвращают "GMT-7" вместо "Америка / Чикаго").Кроме того, я только что заглянул на их страницу во время подготовки этого поста, и Google Chrome предупредил о вредоносном ПО на их сайте.Это ново для меня и может измениться, но, очевидно, вызывает беспокойство.

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

http://www.askgeo.com/

AskGeo основан на карте часовых поясов мира, поэтому он возвращает действительный часовой пояс для каждой действительной широты и долготы.Он возвращает стандартный идентификатор часового пояса (например, "America / Los_Angeles"), используемый в Linux и большинстве других операционных систем и программных фреймворков.Он также возвращает текущее смещение с полным учетом перехода на летнее время.

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

Когда мы впервые запустили это приложение, мы создали его на Google App Engine (GAE) и сделали бесплатным для всех пользователей.Это было возможно, потому что цены GAE в то время были очень низкими.С тех пор нагрузка на наш сервер существенно возросла, а цены GAE значительно выросли.Оба фактора в совокупности привели к тому, что мы переключились на хостинг Amazon Web Services и начали взимать плату за коммерческое использование, сохранив при этом бесплатный сервис для некоммерческих проектов с открытым исходным кодом и исследователей.Для коммерческих пользователей мы предоставляем 1000 бесплатных запросов, чтобы потенциальные клиенты могли оценить API и убедиться, что он соответствует их потребностям.Цены и условия указаны на веб-сайте.

Базовая библиотека была написана на Java, и по многочисленным просьбам мы также выпустили библиотеку по коммерческой лицензии.Полная документация библиотеки и подробная информация о ценах размещены на веб-сайте.

Я надеюсь, что это полезно.Это, безусловно, было полезно для проекта, над которым я работал.

Другие советы

Взгляните на Geonames.org

Это бесплатный веб-сервис, который позволяет вам получать много информации из длинного / латинского

Они также предоставляют бесплатный Java-клиент (с открытым исходным кодом) для библиотеки веб-сервисов GeoNames (также предоставляется библиотека для других языков:ruby, python, perl, lisp...)

Вот некоторая информация, которую вы можете получить от long / lat: (полный список веб-сервисов здесь)

  • Найти ближайший адрес
  • Найти ближайший Перекресток
  • Найдите близлежащие улицы
  • Высота над уровнем моря
  • Часовой пояс

Часовые пояса теперь доступны через Google API

https://developers.google.com/maps/documentation/timezone/

API Yahoo places предоставляет информацию о часовом поясе с помощью обратной геолокации.

Зацени это.

http://developer .yahoo.com/geo/placefinder/guide/requests.html

Какая точность вам нужна?Деление долготы на 15 было бы почти правильным : p

Проект мертв :-/

Они выглядят довольно многообещающе-

Ссылка на архив:

https://web.archive.org/web/20150503145203/http://www.earthtools.org/webservices.htm

Эрик Мюллер сделал карты шейп - файлов для часовых поясов базы данных tz (Olson).Однако есть несколько незначительных оговорок:

  1. Используемые границы часто являются неофициальными.
  2. Она обновляется не так регулярно, как сама база данных tz, поэтому некоторые вновь сформированные или скорректированные зоны могут отсутствовать.

Однако, если оставить это в стороне, он кажется очень точным для большинства целей.

Двигатель DRT принимает широту, долготу и локальную дату-время и возвращает смещение часового пояса.Это может быть использовано для установления часового пояса определенного местоположения в будущее Дата.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top