从 Google 将 CID 映射到地点 ID

From Google Maps CID to Place ID

我有一堆指向 google 地图的链接,格式为 https://maps.google.com/?cid=<identifier>

如何从该 CID 转到可与 Google 个地点 API 一起使用的地点 ID?是否有任何 API 端点可用于将这些 URL 转换为新位置?

我知道的唯一方法是抓取常规 html 响应。这当然可以随时根据 Google 的判断改变,我也对更好的解决方案感兴趣。

截至目前 例如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 的 Space Needle,地点 ID 为 ChIJ-bfVTh8VkFQRDZLQnmioK9s

只有 Google 知道他们为什么不提供更好的方法。

您可以使用此 API 隐藏参数来获取地点 ID。用法:https://maps.googleapis.com/maps/api/place/details/json?cid=YOUR_CID&key=YOUR_KEY

它returns结果包含格式化地址、place_id、地址名称和 GPS 坐标。

详情请看我的博客:https://leonbbs.blogspot.com/2018/03/google-map-cid-to-placeid-or-get.html

幸运地发现了一个未记录的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