Сопоставление треков GPS с местными днями

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

  • Изображения с локальными отметками времени (т. е. относительно часового пояса)
  • Файлы GPS-трека, состоящие из записей с использованием временных меток UTC.

Моя проблема: мне нужен способ получить все данные, относящиеся к данному дню, в зависимости от часового пояса, в котором данные были получены. Для изображений это легко (я спрашиваю часовой пояс у пользователя при импорте и сохраняю его в данных EXIF), но я не уверен, как это сделать для треков GPS (обычно есть несколько треков в день, и назначение им часовых поясов нелегко для пользователя при импорте данных, которые охватывают несколько дней и часовых поясов). Я могу думать о двух возможных решениях:

  • Используйте эвристику, основанную на том факте, что дорожки записываются в то же время и в том же месте, что и изображения, но могут быть дорожки до первого изображения дня или после его последнего изображения, которые еще нужно включить - я не уверен, как чтобы реально обрабатывать такие крайние случаи
  • Определить часовой пояс по GPS-координатам — это было бы идеальным решением, но есть ли библиотека с открытым исходным кодом, которая это делает (в идеале такая, которая работает в автономном режиме)?

person Michael Borgwardt    schedule 10.02.2010    source источник


Ответы (2)


Эвристический метод, я думаю, не сработает.

Во-первых, всегда сохраняйте время как UTC и часовой пояс происхождения, иначе время не имеет смысла.

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

В зависимости от того, насколько подробно вы хотите, я думаю, что GeoTog может помочь вам найти город и, следовательно, страна из широты/долготы (хотя ее нужно будет изменить, чтобы работать по-другому).

Если это не так, то Gisgraphy будет работать с более крупными GeoNames. Вы можете использовать веб-сервис или извлечь данные.

Если ни один из них не является достаточно хорошим, я думаю, вам нужно получить некоторые данные ГИС, возможно, границы от VMAP0 и преобразовать его в полигоны или что-то еще доступное для поиска.

person Richard Harrison    schedule 11.02.2010
comment
Наконец-то снова взялся за дело: база данных геоназваний — идеальное решение, предоставляющая базу данных городов, каждый с координатами и часовым поясом — так что все, что мне нужно сделать, — это поиск ближайшего соседа. Простого определения страны было бы недостаточно, поскольку некоторые страны охватывают несколько часовых поясов. - person Michael Borgwardt; 07.03.2010

Вариант второй: вы можете начать с проверки этого сайта: http://www.twinsun.com/tz/tz-link.htm

Первый вариант (менее сложный, но я не уверен, что правильно понял вашу потребность...) Итак, у вас есть входные данные:

  • Целевой день, определенный в известном часовом поясе TZ, начиная с t0 и заканчивая t1 (исключается)
  • Изображения с отметками времени ti в том же часовом поясе TZ (верна ли эта гипотеза?)
  • GPS-треки с отметками времени UTC tg, которые могут охватывать несколько часовых поясов. Мы также знаем, что для каждого изображения существует как минимум один GPS-трек.

Вот что должно работать:

  • Преобразуйте целевой день в UTC. Вы получаете значения t0/UTC и t1/UTC.
  • Преобразование временных меток изображений в UTC (вы получаете ti/UTC из известного ti/TZ)
  • обработайте изображение, если (t0/UTC ‹= ti/UTC ‹ t1/UTC), т. е. оно было снято в течение вашего целевого дня.
  • найдите трек GPS, включая ti/UTC (нет проблем, поскольку треки имеют отметку времени в формате UTC), а затем ближайшую отметку времени в списке точек на этом треке. Эта точка является наиболее вероятным положением вашего изображения.
person Stéphane    schedule 10.02.2010
comment
Моя проблема не в том, чтобы привязать изображения к геотегу — я могу сделать это легко (нормализуя все даты по UTC и выполняя бинарный поиск в отсортированном списке всех путевых точек). Моя проблема в том, что я хочу найти, к какому целевому дню принадлежит каждый трек GPS. Суть в том, чтобы разделить данные на дни, прожитые путешественником. - person Michael Borgwardt; 11.02.2010
comment
Таким образом, дни (а также изображения и GPS-треки, которые к ним относятся) могут охватывать несколько часовых поясов, хотя меня гораздо больше интересует общий случай наличия одного, а иногда и двух часовых поясов. Вся концепция дней рушится из-за перелетов, которые пересекают несколько часовых поясов — в конце концов, именно поэтому мы испытываем смену часовых поясов. Я не ожидаю, что смогу последовательно охватить все крайние случаи в этих случаях. - person Michael Borgwardt; 11.02.2010