Поиск часового пояса по широте и долготе
Существует ли какая-либо библиотека (или, что еще лучше, веб-служба), которая может преобразовывать широту / долготу в часовой пояс?
8 ответов
Я довольно глубоко изучил этот вопрос для проекта, над которым я работаю. GeoNames.org и EarthTools.com являются хорошими вариантами для многих ситуаций, но со следующими серьезными недостатками:
- GeoNames.org находит часовой пояс путем поиска ближайшей точки в своей базе данных, которая содержит поле часового пояса. Это часто приводит к неправильному результату вблизи границ. Это также мучительно медленно, что приводит к времени запроса порядка нескольких секунд на запрос. Он также не возвращает действительный часовой пояс, если в их базе данных нет точки рядом с точкой запроса. GeoNames также ограничивает количество запросов, которые могут быть сделаны в день, что затрудняет массовые операции.
- EarthTools.org использует карту и может быстро возвращать запросы, но она не учитывает переход на летнее время для большинства местоположений и возвращает необработанное смещение, а не идентификатор часового пояса (т.е. они возвращают "GMT-7"). вместо "америка / чикаго"). Кроме того, я только просмотрел их страницу во время подготовки этого поста, и Google Chrome предупреждал о вредоносном ПО на их сайте. Это ново для меня и может измениться, но, очевидно, вызывает беспокойство.
Эти недостатки означали, что эти существующие инструменты не подходили для моих нужд, поэтому я разработал собственное решение и опубликовал его для общего пользования. Вы можете найти это здесь:
AskGeo основан на карте часовых поясов мира, поэтому он возвращает действительный часовой пояс для каждой действительной широты и долготы. Он возвращает стандартный идентификатор часового пояса (например, "America/Los_Angeles"), используемый в Linux и большинстве других операционных систем и сред программирования. Он также возвращает текущее смещение с учетом летнего времени.
Он чрезвычайно прост в использовании, и его использование документировано на главной странице сайта. API поддерживает пакетные запросы, поэтому, если вам нужно выполнить много поисков, используйте пакетный интерфейс, а не перегружайте наши серверы последовательными запросами. Массовые запросы также выполняются намного быстрее, поэтому выигрывают все.
Когда мы впервые запустили это, мы создали его на Google App Engine (GAE) и сделали его бесплатным для всех пользователей. Это было возможно, потому что цены GAE были так низки в то время. С тех пор нагрузка на наш сервер значительно возросла, а цены GAE пошли вверх. Оба эти фактора привели к тому, что мы переключились на Amazon Web Services для хостинга и начали взимать плату за коммерческое использование, оставляя сервис бесплатным для некоммерческих, некоммерческих проектов с открытым исходным кодом и исследователей. Для коммерческих пользователей мы предоставляем 1000 бесплатных запросов, чтобы потенциальные клиенты могли оценить API, чтобы убедиться, что он соответствует их потребностям. Смотрите веб-сайт для цен и условий.
Базовая библиотека была написана на Java, и из-за широкого спроса мы также выпустили библиотеку под коммерческой лицензией. Полная документация библиотеки и информация о ценах находятся на веб-сайте.
Я надеюсь, что это полезно. Это, безусловно, было полезно для проекта, над которым я работал.
Взгляните на http://www.geonames.org/
Это бесплатный веб-сервис, который позволяет вам получить много информации из длинного / лат
Вот некоторая информация, которую вы можете получить из long / lat: (полный список веб-сервисов здесь)
- Найти ближайший адрес
- Найти ближайший перекресток
- Найти близлежащие улицы
- высота
- Часовой пояс
Часовые пояса теперь доступны через Google API
API мест Yahoo предоставляет информацию о часовых поясах посредством обратной геолокации.
Проверьте это.
http://developer.yahoo.com/geo/placefinder/guide/requests.html
Эрик Мюллер создал карты шейп-файлов для часовых поясов базы данных tz (Olson). Несколько небольших предостережений:
- Используемые границы часто неофициальны.
- Он не обновляется так же регулярно, как сама база данных tz, поэтому некоторые новые или измененные зоны могут отсутствовать.
Тем не менее, это кажется очень точным для большинства целей.
Сколько точности вам нужно? Делить долготу на 15 было бы почти правильно:p
Это выглядит довольно многообещающе
DRT Engine берет широту, долготу и местное время и возвращает смещение часового пояса. Это может быть использовано для определения часового пояса определенного места в будущем.