如何搜索Google Maps API并获得多个位置?

时间:2019-03-29 16:45:26

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

我已经能够从Google Maps向Places API发出请求,但是我总是得到一个结果。

例如,搜索“白宫”之类的东西或实际的街道地址,只会得到一个结果:

https://maps.googleapis.com/maps/api/place/findplacefromtext/json
  ?input=the%20white%20house
  &inputtype=textquery
  &fields=formatted_address,name,geometry
  &key=API_KEY

response: {
  candidates: [
    {
      formatted_address: "1600 Pennsylvania Ave NW, Washington, DC 20500, USA",
      geometry: {
        location: {
          lat: 38.8976763,
          lng: -77.0365298
        },
        viewport: {
          northeast: {
            lat: 38.90148105,
            lng: -77.03520012010728
          },
          southwest: {
            lat: 38.89640805000001,
            lng: -77.03789977989273
          }
        }
      },
      name: "The White House"
    }
  ],
  status: "OK"
};

老生常谈,如果我想找到我周围的所有星巴克,该怎么办? (如何限制搜索半径是一个稍后的问题)

https://maps.googleapis.com/maps/api/place/findplacefromtext/json
  ?input=starbucks
  &inputtype=textquery
  &fields=formatted_address,name,geometry
  &key=API_KEY

response: {
  candidates: [],
  status: "ZERO_RESULTS"
};

一些评论表明,我的“星巴克”搜索应该得到不同的答复。我为什么不呢?

1 个答案:

答案 0 :(得分:0)

您可以尝试Nearby Search。请注意,没有办法限制“附近搜索”请求仅返回特定字段。

只需查看下面的示例请求:

https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=38.8976763%2C-77.0365298&radius=50000&keyword=mcdonalds&key=YOUR_KEY

该回复将为您提供此特定位置38.8976763,-77.0365298的所有McDonalds商店。您还会注意到,有一个 radius 参数可以返回放置结果。