【问题标题】:Google map location displayed in historic real time历史实时显示的谷歌地图位置
【发布时间】:2012-03-19 00:25:08
【问题描述】:

我有兴趣将 Google 地图功能添加到我正在编写的程序中。我将从一个历史 GPS 日志文件开始,其中包含我不断变化的 GPS 位置和日期/时间的记录——例如当我在路上行驶时。稍后我想将此日志文件输入到 Windows 程序中,该程序会将 GPS 位置显示为谷歌地图中心的标记,该地图显示在屏幕上的窗口中。随着 GPS 位置的变化,Google 地图将在历史上“实时”自动水平或垂直滚动​​,以便标记始终保持在地图的中心。

下面是一个现有程序的 YouTube 视频,它已经完全符合我的要求,所以它一定是可能的(它是视频帧右下角的窗格)

http://www.youtube.com/watch?feature=player_embedded&v=r4rwMV7hhaY#at=840

实际上,用户将在几天或几个月前实时回放他们记录的动作。它不会用于跟踪 当前 动作。

我还不太了解 Google API,但我认为 Google 地图必须在桌面程序中运行,而不是在网站上运行。

是否有任何预先构建的模块已经做到这一点(也许只是提供一个坐标和时间列表)?

如果不是,我需要使用什么 API 来重现视频中显示的地图行为?

在桌面程序中执行此操作是否存在任何许可问题,该程序只能由 1 个用户看到,而不是在公开的网站上?

【问题讨论】:

  • 您可以在浏览器中执行此操作,桌面/Windows 要求是您自己的吗?您可以将数据转换为数组,然后循环遍历、删除和重绘标记,并每次都重新定位地图

标签: google-maps google-geocoding-api


【解决方案1】:

我使用 Google Maps API 创建了一个嵌入式 GPS 窗口,就像您在链接中引用的那样,但基本上它是嵌入一个浏览器窗口并将其链接到 Google Maps。您可以自己管理数据并将其传送到浏览器。这可以在本地完成。

你需要做一些事情。

  1. 定义地图脚本(使用 html/Javascript 文件)。这些脚本将允许您更新您在地图上显示的位置,您将连接到代码端进行控制。

  2. 在您的 GUI 中定义一个浏览器对象并将其设置为导航到您创建的 html 文件,然后使用该对象的文档部分来调用脚本。

完成此操作后,您应该能够控制 GPS 位置。您的 html 文件中引用了 Google Maps API。该 html 文件是关键,它需要具有您想要用来更新 GPS 位置并将其显示在地图上的所有功能。

根据我不知道的预构建模块和/或许可。

【讨论】:

  • 谢谢。这证实了我猜到的一些事情——不过还有很多阅读要做!还有几个问题 - 所以你会告诉浏览器对象何时更新地图,而不是浏览器每隔(比如)1秒自动刷新一次?每次需要更改时,您如何将新坐标传递给浏览器对象 - 是否有套接字接口或类似的东西?
  • 更新函数会写在Javascript文件中。取决于你想如何处理它。您可以通过让一些后台线程(对于 C# 我使用计时器)使用类似... myBrowser.Document.InvokeScript("func_name", object[] args) 所以没有套接字接口或任何东西。 InvokeScript 函数允许您将对象数组作为参数传递给您正在调用的函数。至于自动刷新,我决定反对它,因为它非常有问题,但这可能是因为我的刷新率太高(比如 60 Hz)。 1 Hz 可能没问题。
猜你喜欢
  • 2019-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多