Как получить любую пару широты и долготы в пределах часового пояса? - PullRequest
0 голосов
/ 02 августа 2020

Я использую java метод TimeZone.getDefault() на устройстве Android, чтобы получить текущий часовой пояс.

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

Есть ли где-то данные о границах часового пояса или какой-то другой способ добиться этого?

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

API требует пары широты и долготы для определения часового пояса и не имеет альтернативы publi c для указания часового пояса. Я бы предпочел не спрашивать у своих пользователей разрешение на определение точного местоположения, если мне это сойдет с рук.

1 Ответ

1 голос
/ 03 августа 2020

Я могу придумать два соответствующих источника данных, которые были бы здесь полезны:

  • IANA TZDB содержит два файла, zone1970.tab и zone.tab. Эти списки предназначены для помощи в выборе часового пояса и содержат координаты для каждого из населенных пунктов, которые служат опорными точками для указанных часовых поясов.

  • Построитель границ часовых поясов В проекте есть шейп-файлы, содержащие приблизительные c географические границы для каждого часового пояса. Это используется многими библиотеками (как указано здесь ), которые сосредоточены на проблеме широты / долготы в часовом поясе. Похоже, вы заинтересованы в другом направлении, что потребует от вас некоторой аналитической работы. По сути, вам нужно будет использовать шейп-файлы многоугольника из этого проекта и выбрать точку случайным образом из многоугольника, связанного с рассматриваемым часовым поясом.

При любом подходе вы можете сначала необходимо разрешить псевдонимы их каноническим аналогам. Например, если у вас есть US/Eastern, вам нужно преобразовать его в America/New_York, прежде чем пытаться найти его в любом источнике данных.

...