Ответ 1
Я довольно подробно рассмотрел этот вопрос для проекта, над которым я работаю. 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 для хостинга и начали взимать плату за коммерческое использование, сохраняя при этом бесплатную услугу для некоммерческих некоммерческих проектов с открытым исходным кодом и исследователей. Для коммерческих пользователей мы предоставляем 1000 бесплатных запросов, чтобы потенциальные клиенты оценивали API, чтобы убедиться, что он отвечает их потребностям. См. Веб-сайт для ценообразования и условий.
Основная библиотека была написана на Java и по популярному требованию, мы также выпустили библиотеку по коммерческой лицензии. Полная документация по библиотеке и сведения о ценах приведены на веб-сайте.
Надеюсь, это полезно. Это, безусловно, было полезно для проекта, над которым я работал.