bsh*_*141 5 python google-maps r google-places-api rjsonio
与大多数位置查询工作相反,我实际上尝试通过其地址或 Google API 使用 Google API 来识别企业名称placeid。例如,当我在 googlemaps.com 上搜索时 1625 Wilshire Blvd, Los Angeles, CA 90017,其结果显示“在此位置”是“麦当劳”。
但是,当使用以下 URL 进行 API 调用时,名称会显示为街道地址,而我想要的是识别该位置的企业名称(“麦当劳”):
\n\nhttps://maps.googleapis.com/maps/api/place/textsearch/json?query=1625%20Wilshire%20Blvd,%20Los%20Angeles,%20CA%2090017&sensor=false&key=<api_key>
编辑:使用@xomena 推荐的确切调用,我仍然遇到同样的问题。我已经用 R 和 Python 运行了它,并且我\xe2\x80\x99m 得到的结果是街道地址,而不是两种方式的名称。
\n\nR代码:
\n\npackages <- c("RJSONIO")\nnew_packages <- packages[!(packages %in% installed.packages()[,"Package"])]\nif(length(new_packages)) install.packages(new_packages)\n\nlibrary(RJSONIO)\nRun Code Online (Sandbox Code Playgroud)\n\nfromJSON(URLencode(paste("https://maps.googleapis.com/maps/api/place/findplacefromtext/json?input=1625%20Wilshire%20Blvd%2C%20Los%20Angeles%2C%20CA%2090017&inputtype=textquery&fields=formatted_address,name,place_id&key=", api_key, sep = "")))
R输出:
\n\n$candidates\n$candidates[[1]]\n formatted_address \n"1625 Wilshire Blvd, Los Angeles, CA 90017, USA" \n name \n "1625 Wilshire Blvd" \n place_id \n "ChIJ18AW_aPHwoARXRm-cgcRcDs" \n\n\n$debug_log\n$debug_log$line\nlist()\n\n\n$status\n[1] "OK"\nRun Code Online (Sandbox Code Playgroud)\n\nPython代码:
\n\nimport requests\nRun Code Online (Sandbox Code Playgroud)\n\nrequests.get("https://maps.googleapis.com/maps/api/place/findplacefromtext/json?input=1625%20Wilshire%20Blvd%2C%20Los%20Angeles%2C%20CA%2090017&inputtype=textquery&fields=formatted_address,name,place_id&key="+API_KEY).json()
Python输出:
\n\n{\'candidates\': [{\'formatted_address\': \'1625 Wilshire Blvd, Los Angeles, CA 90017, USA\',\n \'name\': \'1625 Wilshire Blvd\',\n \'place_id\': \'ChIJ18AW_aPHwoARXRm-cgcRcDs\'}],\n \'debug_log\': {\'line\': []},\n \'status\': \'OK\'}
我相信Find place端点正在做您正在寻找的事情
当我执行以下请求时
https://maps.googleapis.com/maps/api/place/findplacefromtext/json?input=1625%20Wilshire%20Blvd%2C%20Los%20Angeles%2C%20CA%2090017&inputtype=textquery&fields=formatted_address,name,place_id&key=MY_API_KEY
我得到以下回复
{
"candidates":[
{
"formatted_address":"1625 Wilshire Blvd, Los Angeles, CA 90017, USA",
"name":"McDonald's",
"place_id":"ChIJ0QBm-6PHwoARpfbcollvKIc"
}
],
"debug_log":{
"line":[
]
},
"status":"OK"
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,Find place 返回了麦当劳的业务。
我希望这有帮助!
有趣的。您是否知道您的服务器位于哪里?正如您在文档中看到的,默认情况下 find place 使用 IP 地址偏差。我的服务器位于美国,我得到的是麦当劳,如果您的服务器 IP 地址来自不同区域,由于位置偏差,您可能会得到不同的结果。在这种情况下,我可以建议指定一个区域来偏置您的结果,例如定义圆形或矩形区域。该请求应该类似于
https://maps.googleapis.com/maps/api/place/findplacefromtext/json?input=1625%20Wilshire%20Blvd%2C%20Los%20Angeles%2C%20CA%2090017&inputtype=textquery&fields=formatted_address,geometry,name,place_id&locationbias=circle%3A100%4034.0559572%2C-118.2708558&key=YOUR_API_KEY
| 归档时间: |
|
| 查看次数: |
4612 次 |
| 最近记录: |