2010-02-10 64 views
0

我正在写一个地理标记的应用程序,并运行到与头痛时区。基本上,我的应用程序有以下数据:匹配GPS跟踪当地天

  • 图像与本地时间戳(即相对于一个时区)
  • 包括使用UTC条目的GPS轨迹文件时间戳

我的问题:我需要一个根据获取数据的时区,获取属于某一天的所有数据。对于图像来说,这很简单(我会在导入时询问用户的时区并将其保存在EXIF数据中),但我不确定如何为GPS轨道执行此操作(每天通常会有多个轨道,并且在导入跨越严重日期和时区的数据时,为用户分配时区是不容易的)。我能想到的两种可能的解决方案:

  • 使用基于该轨道在同一时间和地点的图像记录这一事实的启发 - 但可以有一天的第一张图像之前或之后的最后轨道一个仍然需要包括 - 我不知道如何处理realiably这种边缘案件
  • 确定时区从GPS坐标 - 这将是一个理想的解决方案,但有一个开源库,做到这一点(理想一个脱机工作)?

回答

1

启发式方法,我不认为会很好地工作。

首先总是存储倍UTC和原产地时区,否则时间是那么有意义。

经过一番思考,我认为解决国家代码和查找时区就足够了。

取决于你有多少细节需要我认为GeoTog可以帮助你从一个纬度/长(虽然会需要改变为工作的其他方式)找到一个城市,因此一个国家。

如果不是那么那么Gisgraphy将与更大的GeoNames数据库一起使用。您可以使用Web服务或提取数据。

如果这些都不够好,那么我认为你需要获得一些GIS数据,可能是来自VMAP0的边界,并将其处理成多边形或可搜索的东西。

+0

终于开始处理这个问题了:geonames DB是理想的解决方案,它提供了一个城市的DB,每个城市都有坐标和时区 - 所以我只需要做一个最近邻居搜索。由于一些国家跨越多个时区,因此只需确定该国就不足够了。 – 2010-03-07 18:21:49

1

选项二:,你可以通过检查该网站开始:http://www.twinsun.com/tz/tz-link.htm

选择一个(那么复杂,但我不知道我准确地了解你的需要...) 所以,你必须作为输入:

  • 以已知的时区TZ定义,开始在t0和在结束于t1的靶天(除外)
  • 图像用添在同一时区的TZ()这个假设是否正确?
  • 与UTC时间戳TG GPS轨迹,可以跨越多个时区 我们也知道至少有一个GPS跟踪为每个图像。

这里的东西应该工作:

  • 目标的一天转换成UTC。你得到的值T0/UTC和T1/UTC
  • 将图像转换时间戳为UTC(你从已知的钛/钛/ UTC TZ)
  • 过程映像如果(T0/UTC < = TI/UTC < T1/UTC),即它在您的目标日期间被采取。
  • 找到一个GPS轨迹包括TI/UTC(没问题,因为曲目以UTC时间戳的),然后点在这条赛道在列表中最接近的时间戳。这一点是图像最可能的位置。
+0

我的问题不是地理标记图像 - 我可以很容易地做到这一点(将所有日期标准化为UTC,并在所有路点的排序列表上执行二分搜索)。我的问题是,我想找出每个GPS轨道属于哪个目标日。重点是将数据划分为旅行者所经历的日子。 – 2010-02-11 09:44:39

+0

因此,天(以及属于它们的图像和GPS轨迹)可以跨越几个时区,尽管我更关心的是有一个,有时是两个时区的常见情况。 “日子”的整个概念随着飞越多个时区的航班而中断 - 这就是为什么我们经历时差的原因。在这种情况下,我不希望能够一致地涵盖所有边缘案例。 – 2010-02-11 09:49:47