Поиск часового пояса по широте и долготе [закрыт]
-
09-06-2019 - |
Вопрос
Доступна ли какая-либо библиотека (или, что еще лучше, веб-сервис), которая может преобразовывать широту / долготу в часовой пояс?
Решение
Я довольно глубоко изучил этот вопрос для проекта, над которым я работаю.GeoNames.org и EarthTools.com оба являются хорошими вариантами для многих ситуаций, но со следующими серьезными недостатками:
- GeoNames.org находит часовой пояс путем поиска ближайшей точки в их базе данных, которая содержит поле часового пояса.Это часто приводит к неправильному результату вблизи границ.Это также мучительно медленно, что приводит к увеличению времени запроса порядка пары секунд на запрос.Он также не возвращает действительный часовой пояс, если в их базе данных нет элемента рядом с точкой запроса.GeoNames также ограничивает количество запросов, которые могут быть сделаны в день, что затрудняет массовые операции.
- Земные инструменты.org использует карту и может быстро возвращать запросы, но она не учитывает летнее время для большинства местоположений и возвращает необработанное смещение, а не идентификатор часового пояса (т. Е. они возвращают "GMT-7" вместо "Америка / Чикаго").Кроме того, я только что заглянул на их страницу во время подготовки этого поста, и Google Chrome предупредил о вредоносном ПО на их сайте.Это ново для меня и может измениться, но, очевидно, вызывает беспокойство.
Эти недостатки означали, что существующие инструменты не подходили для моих нужд, поэтому я разработал свое собственное решение и опубликовал его для общего использования.Вы можете найти его здесь:
AskGeo основан на карте часовых поясов мира, поэтому он возвращает действительный часовой пояс для каждой действительной широты и долготы.Он возвращает стандартный идентификатор часового пояса (например, "America / Los_Angeles"), используемый в Linux и большинстве других операционных систем и программных фреймворков.Он также возвращает текущее смещение с полным учетом перехода на летнее время.
Он чрезвычайно прост в использовании, и его использование задокументировано на главной странице сайта.API поддерживает пакетные запросы, поэтому, если вам нужно выполнить много поисковых запросов, пожалуйста, используйте пакетный интерфейс, а не перегружайте наши серверы последовательными запросами.Массовые запросы также выполняются намного быстрее, так что выигрывают все.
Когда мы впервые запустили это приложение, мы создали его на Google App Engine (GAE) и сделали бесплатным для всех пользователей.Это было возможно, потому что цены GAE в то время были очень низкими.С тех пор нагрузка на наш сервер существенно возросла, а цены GAE значительно выросли.Оба фактора в совокупности привели к тому, что мы переключились на хостинг Amazon Web Services и начали взимать плату за коммерческое использование, сохранив при этом бесплатный сервис для некоммерческих проектов с открытым исходным кодом и исследователей.Для коммерческих пользователей мы предоставляем 1000 бесплатных запросов, чтобы потенциальные клиенты могли оценить API и убедиться, что он соответствует их потребностям.Цены и условия указаны на веб-сайте.
Базовая библиотека была написана на Java, и по многочисленным просьбам мы также выпустили библиотеку по коммерческой лицензии.Полная документация библиотеки и подробная информация о ценах размещены на веб-сайте.
Я надеюсь, что это полезно.Это, безусловно, было полезно для проекта, над которым я работал.
Другие советы
Взгляните на Geonames.org
Это бесплатный веб-сервис, который позволяет вам получать много информации из длинного / латинского
Вот некоторая информация, которую вы можете получить от long / lat: (полный список веб-сервисов здесь)
- Найти ближайший адрес
- Найти ближайший Перекресток
- Найдите близлежащие улицы
- Высота над уровнем моря
- Часовой пояс
Часовые пояса теперь доступны через Google API
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).Однако есть несколько незначительных оговорок:
- Используемые границы часто являются неофициальными.
- Она обновляется не так регулярно, как сама база данных tz, поэтому некоторые вновь сформированные или скорректированные зоны могут отсутствовать.
Однако, если оставить это в стороне, он кажется очень точным для большинства целей.
Двигатель DRT принимает широту, долготу и локальную дату-время и возвращает смещение часового пояса.Это может быть использовано для установления часового пояса определенного местоположения в будущее Дата.