尝试使用 find_place 根据地址获取公司名称

问题描述 投票:0回答:1

这只是我遇到问题的地点之一的示例。我正在从返回中获取 place_id 以尝试获取更多字段,但是当您实际输入它返回的 place_id 时,它会提供附近的政府大楼而不是加油站。我尝试了其他功能并将类型限制为更具体,但这无济于事。

import requests

url = " https://maps.googleapis.com/maps/api/geocode/json?      address=203%20N%20Commerce%20ST%20Geneva%20AL&key=MY_KEY"

payload={}
headers = {}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)
  

我希望这能给我加油站的位置,而不是其他地方。这个 place_id 似乎是错误的 "place_id" : "ChIJCekaM2pGkogRwX3FIx8vFN8"

python google-api google-places-api
1个回答
0
投票

对地点地址进行地理编码将返回 ADDRESS 而非 PLACE

的地点 ID

由于您正在使用地理编码器工具查询地址

203 N Commerce St Geneva, AL
,当然它会返回THAT SPECIFIC ADDRESS 的地点ID。 Geocoding API 不会接受模棱两可的查询,它会从特定查询返回特定结果。所以这就解释了为什么地点 ID:
ChIJCekaM2pGkogRwX3FIx8vFN8
返回您查询的地址而不是您要查找的加油站名称。

所以要解决这个问题,您需要专门对要获取Place ID的Place Name进行地理编码。查询了你说的地址,才知道Gas Station Name是

Geneva Citgo
。所以你可以使用它,它应该是这样的:

import requests

url = " https://maps.googleapis.com/maps/api/geocode/json?address=Geneva Citgo&key=API_KEY"

payload = {}
headers = {}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)

有了这个,您将获得

ChIJp15WymtGkogRayP4w572um0
,这是提到的加油站的确切地点ID。

现在回答你的主要问题......

如何使用
find_place
根据地址获取公司名称?

如上所述,由于地址

203 N Commerce St Geneva, AL
有自己的地点 ID,当您进行
find_place
查询时,它将返回地址本身。要解决这个问题,您需要特别提及您要查找的内容。在这种情况下,
GAS STATIONS
。所以当你做
find_place
查询的时候,一定要特别说明你要找的,比如这样的格式:
The_place_you_are_looking_for + address
.

因此,您的代码应如下所示:

import requests
url = "https://maps.googleapis.com/maps/api/place/findplacefromtext/json?input=gas station in 203 N Commerce St Geneva AL&inputtype=textquery&fields=formatted_address%2Cname%2Crating%2Copening_hours%2Cgeometry&key=API_KEY"

payload = {}
headers = {}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)

请注意,查询以这种形式明确说明了我想要的内容:

gas station in 203 N Commerce St Geneva AL
。这样,它将返回您正在寻找的加油站的地名,即
Geneva Citgo
。 (不过,由您决定要包含哪些字段)。

Ref to Find Place documentation 了解更多信息。

您还可以使用文本搜索,因为文档特别说明:

“文本搜索基于字符串返回有关一组地点的信息——例如“纽约的比萨饼”或“渥太华附近的鞋店”或“123 Main Street”。该服务以匹配的地点列表响应文本字符串和任何已设置的位置偏差。”

参考文本搜索文档了解更多信息。

希望这有帮助!如果这能解决您的问题,请随时发表评论。

© www.soinside.com 2019 - 2024. All rights reserved.