【问题标题】:Photo and Rate extracting from Google Map API从 Google Map API 中提取照片和费率
【发布时间】:2019-11-11 07:40:33
【问题描述】:

我遇到了关于从 Google Map API 提取照片、费率的问题。

问题是,当我提出正确的请求时,我收到的响应中没有照片\价格数据。

请求示例:

https://maps.googleapis.com/maps/api/place/details/json?placeid=ChIJvaXwAwVWwokRvmAdVdWrD4s&key=[YOUR KEY]

回应:

   "html_attributions": [],
   "result": {
      "address_components": [
         {
            "long_name": "325",
            "short_name": "325",
            "types": [
               "street_number"
            ]
         },
         {
            "long_name": "Orient Way",
            "short_name": "Orient Way",
            "types": [
               "route"
            ]
         },
         {
            "long_name": "Lyndhurst",
            "short_name": "Lyndhurst",
            "types": [
               "locality",
               "political"
            ]
         },
         {
            "long_name": "Bergen County",
            "short_name": "Bergen County",
            "types": [
               "administrative_area_level_2",
               "political"
            ]
         },
         {
            "long_name": "New Jersey",
            "short_name": "NJ",
            "types": [
               "administrative_area_level_1",
               "political"
            ]
         },
         {
            "long_name": "United States",
            "short_name": "US",
            "types": [
               "country",
               "political"
            ]
         },
         {
            "long_name": "07071",
            "short_name": "07071",
            "types": [
               "postal_code"
            ]
         },
         {
            "long_name": "2008",
            "short_name": "2008",
            "types": [
               "postal_code_suffix"
            ]
         }
      ],
      "adr_address": "<span class=\"street-address\">325 Orient Way</span>, <span class=\"locality\">Lyndhurst</span>, <span class=\"region\">NJ</span> <span class=\"postal-code\">07071-2008</span>, <span class=\"country-name\">USA</span>",
      "formatted_address": "325 Orient Way, Lyndhurst, NJ 07071, USA",
      "geometry": {
         "location": {
            "lat": 40.80528109999999,
            "lng": -74.1147282
         },
         "viewport": {
            "northeast": {
               "lat": 40.80654243029149,
               "lng": -74.1131421697085
            },
            "southwest": {
               "lat": 40.80384446970849,
               "lng": -74.1158401302915
            }
         }
      },
      "icon": "https://maps.gstatic.com/mapfiles/place_api/icons/geocode-71.png",
      "id": "916e480f4ad34516acae418957c8c75e6bb6deea",
      "name": "325 Orient Way",
      "place_id": "ChIJvaXwAwVWwokRvmAdVdWrD4s",
      "reference": "ChIJvaXwAwVWwokRvmAdVdWrD4s",
      "scope": "GOOGLE",
      "types": [
         "premise"
      ],
      "url": "https://maps.google.com/?q=325+Orient+Way,+Lyndhurst,+NJ+07071,+USA&ftid=0x89c2560503f0a5bd:0x8b0fabd5551d60be",
      "utc_offset": -300,
      "vicinity": "Lyndhurst"
   },
   "status": "OK"
} 

这个地方的地址是:325 ORIENT WAY, LYNDHURST, NJ, 07071。

如果您尝试在 Google 地图中查找此地址,您会找到带有地点列表的地点,如下所示:

之后,如果您从上一张照片的下划线列表中选择第一项,您将找到带有照片和价格的地方,如下所示:

地点第一张截图的链接:Google Map place link。

问题:

  1. 你怎么看,我的请求有问题吗? (按照 Google Map API 文档,我找不到有关请求的任何问题);

  2. 正如您在我的第一个屏幕截图中看到的那样,我们有一个位置列表,只有第二个有照片\rate。谷歌地图 API 是否会选择第一个,看不到照片\费率,只是将其从响应中删除?但如果是这样,我不知道如何更改我的请求,以便选择第一个带有照片\价格的语言环境或以更灵活的方式启动它。

感谢您的帮助!

【问题讨论】:

    标签: google-maps


    【解决方案1】:

    我发现了问题所在。 问题就地ID。在请求中,我使用了商业地点 ID(您可以检查响应的“类型”)。这意味着在请求中我链接了内部有一些位置项目的对象。而且这个对象没有像照片\率这样的任何数据。

    我发现了如何提取正确的地点 ID。

    如果你有这个对象的地址(在我的例子中,地址是:325 ORIENT WAY, LYNDHURST, NJ, 07071)和商店的名称您正在寻找(在我的情况下是:Frank 的 GMC),您可以创建接下来的两个请求。第一个 - 提取地点 ID,第二个 - 提取所有需要的数据。

    1. https://maps.googleapis.com/maps/api/place/findplacefromtext/json?input=Frank's GMC, 325 ORIENT WAY, LYNDHURST, NJ, 07071&amp;inputtype=textquery&amp;key=[YOUR KEY] 那里你需要把商店名称和地址用逗号分隔到 input 参数
    2. https://maps.googleapis.com/maps/api/place/details/json?placeid=ChIJ_8hLBQVWwokRY1uywGWl8vs&amp;key=[YOUR KEY] 您需要在第一次请求时使用响应中的地点 ID。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-14
      • 2017-07-31
      • 1970-01-01
      • 2015-10-08
      • 2013-06-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多