从Google地图网址中提取DirectionsResult

时间:2012-08-09 17:55:12

标签: javascript google-maps google-maps-api-3

我正在制作(新版本的)工具,将Google地图中的路线转换为GPX文件。测试版的效果相当不错:它使用Google Maps Javascript API(v3)在网站上嵌入地图,您可以使用与主Google地图页面上相同的方法创建路线。

然而,此网站的一个(可能是常见的)用例(以及之前版本在Google changed their undocumented &output=kml interface之前的工作方式!)是供人们在主Google地图上规划路线并保存链接(如this one)供将来使用。然后,他们会将此链接粘贴到网站中,并将该路由转换为GPX文件。

有没有办法从Google地图网址或主要Google地图页面中提取DirectionsResult(可能是通过将网址发送到Google Maps API进行解析或在网页上使用书签) ?

2 个答案:

答案 0 :(得分:0)

DirectionsResult对象不在用户可以从maps.google.com获取的链接中。然而,端点和任何最终的航点都是,并且给定相同的端点,路由引擎应该产生相同的结果。


修改

以下是您反汇编的链接的网址。 (我遗漏了&符号)。我计算了24个航点,(包括2个终点)。唯一的错误在于'地理编码'参数。

https://maps.google.co.uk/maps?
saddr=Unknown+road  //1
daddr=51.59782,-2.08838 //2
+to:51.74885,-1.94076   //3
+to:51.89255,-1.87129   //4
+to:51.82571,-1.79752   //5
+to:B4020   //6
+to:51.8183,-1.41985    //7
+to:51.72228,-1.43255   //8
+to:51.6239798,-1.3071767   //9
+to:B4001   //10
+to:51.34501,-1.34062   //11
+to:51.35822,-1.12071   //12
+to:51.31526,-1.02412   //13
+to:51.08784,-1.62069   //14
+to:51.29048,-1.73004   //15
+to:51.21761,-1.98589   //16
+to:51.397,-2.13542 //17
+to:Gloucester+Rd%2FA46 //18
+to:51.69001,-2.22161   //19
+to:51.81753,-2.07376   //20
+to:Southam+Ln  //21
+to:52.06075,-1.95706   //22
+to:52.1244,-1.64775    //23
+to:Unknown+road    //24

hl=en
sll=51.421477,-1.238708
sspn=0.804988,2.425232
geocode=Fe3uEwMd_znk_w%3BFfxREwMdRCLg_ylHpOCHwW1xSDHRnVfMI4sNEw%3BFfKfFQMd6GLi_ymv2fIl5RVxSDFAVssIXhupMA%3BFUbRFwMdRnLj_yk75kbkvCNxSDHw_q6FJ4sNEw%3BFS7MFgMdcJLk_ykD5mQuJTtxSDHgWC3MI4sNEw%3BFdYZFgMd7WHn_w%3BFTyvFgMdtlXq_ymvJFBAac52SDFgrE_MI4sNEw%3BFSg4FQMdGiTq_ymp-yJAfMl2SDGhNuPMI4sNEw%3BFSu4EwMd2A3s_ylFwdt-trl2SDF0LAm28EHw6A%3BFZq5EgMdyvfo_w%3BFXJ2DwMdNIvr_yn381tpGqh2SDHyCAjGbJ6ylw%3BFQyqDwMdOubu_ykbWNAI8p92SDEglIatLa4OEw%3BFTwCDwMdiF_w_yl5ij0IOid0SDHaHrE5DElJBg%3BFeCJCwMdLkXn_yl_I3MRXvFzSDEA3pytLa4OEw%3BFXChDgMdCJrl_ynf-pMZIeNzSDHByGFPQfQQEw%3BFcqEDQMdnrLh_yk5pddkcdxzSDGx1yhQQfQQEw%3BFYhBEAMdhGrf_yn9N9ICjnxxSDESypqQN61DoA%3BFczUEAMdiOLb_w%3BFRq6FAMd1hne_ylrQ8v5YQtxSDFgr3TNI4sNEw%3BFTqsFgMdYFvg_ykTvsctjBBxSDGlvLvm_K2I9g%3BFWphGAMd4rrg_w%3BFU5iGgMdPCPi_ym5URqPnOBwSDGQ6kLMI4sNEw%3BFfBaGwMdetvm_ylznhar3NNwSDFuGBHuA73ljw%3BFeB7GQMdItPn_w
mra=dpe
mrsp=11
sz=9
via=1,2,3,4,6,7,8,10,11,12,13,14,15,16,18,19,21,22
t=m
z=8

这是地图参数的解释,(我知道的最好): http://mapki.com/wiki/Google_Map_Parameters

答案 1 :(得分:0)

新版Google地图不保证网址中存在所有路由点,对于缩短的网址尤其如此。

前段时间我写了一个工具,将新的Google地图格式转换为gpx文件。

http://labs.coruscantconsulting.co.uk/garmin/gpxgmap/convert.php

它也可以返回JSON响应。