捕获地图以嵌入Wordpress博客帖子

时间:2010-02-17 23:15:38

标签: wordpress google-maps

我最初在超级用户上问过这个问题,但被告知可能会更好地放在这里......

我有一个正在运行的博客,并帮助我跟踪和写我的跑步,我最近买了一个Garmin GPS手表。该设置有效,我可以在我的博客中分享我的运行链接,例如:

http://connect.garmin.com/activity/23842182

我是否可以轻松地从Garmin Connect网站捕获地图(请参阅链接)并在我的博客帖子中显示?我可以截取屏幕截图,但交互式地图会更好。这显然是一个谷歌地图,运行信息覆盖,所以必须有一种方式......对吗?

2 个答案:

答案 0 :(得分:2)

要创建嵌入式交互式Google地图以渲染您的运行折线,您需要提取Garmin网站用于渲染该线的数据。

在Garmin网站上,有两个Javascript文件可以完成这项工作:

http://connect.garmin.com/resource/garmin-js-lib/map/MapsUtil.js - 一组实用程序函数,用于根据Garmin系统中的数据呈现Google地图 http://connect.garmin.com/api/activity/component/mapLoader.js - 使用 Garmin.service.ActivityClient 来获取描述折线的JSON数据。它将此数据提供给 Garmin.map.MapsUtil.addEncodedPolylineToMap 以渲染地图。

所以在你的博客上这样做,你需要从Garmin网站请求JSON数据(并相信URI格式不会改变)或者获取数据并将其存储在你自己的网站上。 URI格式目前是:

http://connect.garmin.com/proxy/activity-service-1.0/gpolyline/activity/<activity id>?full=true

活动ID是原始网址中的最后一个数字。所以:

http://connect.garmin.com/activity/23842182
http://connect.garmin.com/proxy/activity-service-1.0/gpolyline/activity/23842182?full=true

此数据请求将返回一些您可以用来呈现Google地图的JSON。

一旦确定了如何存储JSON数据,就需要编写一些Javascript来请求JSON,并在回调中将其提供给GPolyline.fromEncoded method。拥有GPolylin e对象(由编码的JSON数据填充)后,您可以使用Google Maps GMap2方法将其添加到addOverlay

我意识到这个答案在技术上是相当复杂的,如果您之前没有玩过Google地图,那么这个答案可能会让您感到无法抗拒。如果是这种情况,我建议您前往Google Maps API intro page获取有关入门的一些提示。

答案 1 :(得分:1)

自从这个问题首次发布以来,Garmin Connect已经添加了一个快速的代码片段,可以嵌入到您的WordPress网站中,以显示您的地图和课程数据。如果您在保存后让代码段留在帖子中时遇到问题 - 请查看这些instructions for embedding Garmin Connect activities in WordPress