我们使用 Google Places API 返回文本搜索的结果,在该搜索中我们将地址传递给 Google,并返回该地址的企业名称。如果它什么也没找到,或者该地址只有一个商家(至少在 Places 数据库中),那么这很简单。但是,某些地址有多个商家,在 Google map 上搜索这些地址时,它会提供“在此位置”的结果,如下所示:
在这个位置示例
我们有没有办法通过 API 返回这些“在这个位置结果”,或者进入它们以返回 Place 数据?
最佳答案
这似乎对屏幕截图中的“BNZ”和“RSM”起到了作用:
https://maps.googleapis.com/maps/api/place/textsearch/json?query=businesses+near+86+Highbrook+Dr,+East+Tamaki,+Auckland+2013&radius=100&key=[Your Key]
尝试玩转
radius=[in meters]
一般来说,这里是 Google API 的文本搜索端点的文档:https://developers.google.com/places/web-service/search#TextSearchRequests
为了在您的屏幕截图中找到其他企业,我从第一个查询的结果(只有地址)中检索了地理编码地址(纬度/经度),然后在 Nearby Search 端点中使用它作为 location 参数的值:
https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=-36.9397743,174.8685493&radius=100&key=[Your key ]
这是附近搜索的文档(不幸的是,它似乎不采用地址作为位置,也不接受查询参数):
https://developers.google.com/places/web-service/search#PlaceSearchRequests
注意:我还指定了
type=car_dealer&radius=1000
在 textsearch
仅使用地址查询(删除了“附近的企业”),并且没有出现“福特”。因此,附近搜索和文本搜索之间可能存在不同的数据库索引。
关于google-maps - 通过地址查找企业 "At this location",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48573347/