我有一堆以https://maps.google.com/?cid=<identifier>
形式的谷歌地图链接。
如何从该CID转到可与Google Places API一起使用的地方ID?是否有可用于将这些URL转换为新位置的API端点?
答案 0 :(得分:7)
您可以使用此API隐藏参数来获取地点ID。用法:https://maps.googleapis.com/maps/api/place/details/json?cid=YOUR_CID&key=YOUR_KEY
返回包含格式化地址,place_id,地址名称和GPS协调员的结果。
请参阅我的博客以了解更多详情:https://leonbbs.blogspot.com/2018/03/google-map-cid-to-placeid-or-get.html
答案 1 :(得分:5)
很幸运,发现了一个没有证件的api。如果你有CID,你可以像https://maps.googleapis.com/maps/api/place/details/json?cid=${CID}&key=YOUR_API_KEY
一样调用api。
我刚刚将place_id=${the_end_val_i_needed}
更改为cid=${CID}
,而json响应中的更改为place_id
。
答案 2 :(得分:4)
我所知道的唯一方法是抓取常规的html响应。这可以随时改变Googles的自由裁量权,我也会对更好的解决方案感兴趣。
截至目前,例如http://maps.google.com/?cid=15792901685599310349
的来源嵌入了json响应。它以cacheResponse([[[
开头,以]);
结尾:
<!DOCTYPE html>
<html dir=ltr>
<head>
<script nonce="W6BFnVsL4HLAdFCwYXZY">
mapslite = {
START_PERF: (window.performance && window.performance.now) ?
window.performance.now() : +(new Date())
};
mapslite.getBasePageResponse = function(cacheResponse) {
delete mapslite.getBasePageResponse;
cacheResponse([[[2556.225486744883,-122.3492774,47.6205063], ... removed ... ]);
};
executeOgJs = function() {
在这个json数组元素8中包含一个子数组。元素27是place_id
。
如果太空针塔具有CID 15792901685599310349
,则地点ID为ChIJ-bfVTh8VkFQRDZLQnmioK9s
。
只有Google知道他们为什么不提供更好的方式。