我正在尝试获取用户已保存在Google地图上的地点列表。现在,我知道没有用于此的API(无论出于何种原因),但我在这里看到了:
显然,过去曾经有一种获取URL的方法,但它似乎不适用于我的地点列表。
例如
如果我附加&output = kml或&output = json
,似乎不起作用我在Google地图上创建了此列表,然后点击“共享”并获得了该链接。
我什至尝试解析结果HTML,但似乎所有内容都由某个Javascript引擎处理,并且在那里找不到任何对Google ID的引用---我什至不知道它们如何处理点击!
有帮助吗?必须使用 以编程方式检索此信息!
编辑:
通过访问共享链接,然后处理html并存储window.APP_INITIALIZATION_STATE
变量,我设法使工作正常。然后,我将其转换为javascript数组并在其上循环。在数组/地图结构的深处,我设法从该数组中获取了Google名称和Google Place ID。这似乎有点奏效,但是当尝试使用超过20个项目的列表时,Google仅获得前20个项目,并在等待用户“向下滚动”以获取下一个20。这似乎会触发另一个调用以获取下一个项目20个结果,看起来有点像:
https://www.google.com/search?tbm=map&fp=1&authuser=0&hl=en&gl=nl&pb=!4m8!1m3!1d54065472.4384380 ........
我可以看到URL末尾包含了原始功能ID,但不知道如何完整构建此URL,尽管可以获得接下来的20个项目。...有什么想法吗?
答案 0 :(得分:0)
这是唯一能够找到的API:
trailing
在浏览器中使用时,您必须首先通过Google的OAuth登录。然后它将返回您保存的位置。目前尚不确定如何以编程方式嵌入身份验证,但这可能会向正确的方向发送信息。
答案 1 :(得分:0)
您保存的位置列表实际上具有您所谓的功能ID属性,这不是一种常见的做法,Google对此技术并不满意,但请查看以下URL:
https://www.google.com/maps/preview/entity?authuser=0&hl=en&gl=us&pb=!1m10!1s 0x0%3A0x3743ae09a161976 b!3m8!1m3!1d14318.72623152007!2d-98.2296425!3d26.2070353!3m2!1i1024!2i768!4f13.1!12m3!2m2! 1i392!2i106!13m57!2m2!1i203!2i100!3m2!2i4!5b1!6m6!1m2!1i86!2i86!1m2!1i408!2i200!7m42!1m3!1e1!2b0!3e3!1m3!1e2!2b1!3 1m3!1e2!2b0!3e3!1m3!1e3!2b0!3e3!1m3!1e8!2b0!3e3!1m3!1e3!2b1!3e2!1m3!1e9!2b1!3e2!1m3!1e10!2b0!3e3!1 1e10!2b1!3e2!1m3!1e10!2b0!3e4!2b1!4b1!9b0!14m3!1snyc5W-WeHY3r5gLwkoRI!7e81!15i10112!15m19!2b1!5m4!2b1!3b1!5b1!14 3b1!17b1!24b1!25b1!26b1!30m1!2b1!36b1!52b1!53b1!21m28!1m6!1m2!1i0!2i0!2m2!1i458!2i768!1m6!1m2!1i974!2i0!2m2!1i1024! 1m6!1m2!1i0!2i0!2m2!1i1024!2i20!1m6!1m2!1i0!2i748!2m2!1i1024!2i768!22m1!1e81!29m0!30m1!3b1
突出显示的是您发布的链接中的功能ID: https://www.google.com/maps/@46.889424,0.1194148,6z/data=!4m3!11m2!2s1KbZtik1IdXyNhwfXEb3P9vaZvzU!3e3
与其他地图参数一起;当您点击该链接时,实际上是在手动触发与Google自身在地图中的脚本用来解析数据以返回到地图UI相同的回调。如果您查看数组项目2或{c:..},您会发现一个包含列表内容的字符串化数组,现在根据您使用的程序语言,需要做些微调整(查找/替换) ,循环遍历,棉绒和修剪等)到该数组,您可以提取结果;很棒的事情是,如果您下次下次到达该终点时添加或删除地点,则会实时更新。
有些人可能将其称为“黑客”;但它完成了工作。 :)
希望我在没有找到解决办法的情况下为您指明了方向。试一试。
请注意,URL必须完整粘贴,因此会截断超链接;将整个内容复制并粘贴到一个镜头中,将产生Google带有数组的文本文件;在我的情况下,我会卷曲所需的网址,并根据需要解析返回的字符串,以从其API有限制的Google提取数据。只是一个小费。 :)