与大多数位置查询工作相反,我实际上尝试通过 Google API 通过地址或 Google placeid
来识别企业名称。 。例如,当我搜索1625 Wilshire Blvd, Los Angeles, CA 90017
时在 googlemaps.com 上,其结果显示“在此位置”是“麦当劳”。
但是,当使用以下 URL 进行 API 调用时,名称会显示为街道地址,而我想要的是识别该位置的企业名称(“麦当劳”):
https://maps.googleapis.com/maps/api/place/textsearch/json?query=1625%20Wilshire%20Blvd,%20Los%20Angeles,%20CA%2090017&sensor=false&key=<api_key>
编辑:使用 @xomena 推荐的确切调用,我仍然遇到同样的问题。我已经用 R 和 Python 运行了它,得到的结果是街道地址,而不是两种方式的名称。
R 代码:
packages <- c("RJSONIO")
new_packages <- packages[!(packages %in% installed.packages()[,"Package"])]
if(length(new_packages)) install.packages(new_packages)
library(RJSONIO)
fromJSON(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 输出:
$candidates
$candidates[[1]]
formatted_address
"1625 Wilshire Blvd, Los Angeles, CA 90017, USA"
name
"1625 Wilshire Blvd"
place_id
"ChIJ18AW_aPHwoARXRm-cgcRcDs"
$debug_log
$debug_log$line
list()
$status
[1] "OK"
Python 代码:
import requests
requests.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 输出:
{'candidates': [{'formatted_address': '1625 Wilshire Blvd, Los Angeles, CA 90017, USA',
'name': '1625 Wilshire Blvd',
'place_id': 'ChIJ18AW_aPHwoARXRm-cgcRcDs'}],
'debug_log': {'line': []},
'status': 'OK'}
最佳答案
也许您可以通过使用 Google 地方自动完成请求来获取公司名称:
https://maps.googleapis.com/maps/api/place/autocomplete/json?input=601%20East%20Kennedy%20Blvd,%20Tampa,%20FL,%20USA&types=establishment&language=en&key=YOUR_API_KEY
我收到以下回复:
{"predictions":[
{
"description" : "Quest Diagnostics Inside New Castle Walmart Store, 117 Wilton Blvd, New Castle, DE 19720, USA",
"id" : "8295289e301fd05ae69a8d3cd8d25da31c29c66d",
"matched_substrings" : [
{
"length" : 10,
"offset" : 25
},
{
"length" : 11,
"offset" : 55
},
{
"length" : 2,
"offset" : 80
},
{
"length" : 5,
"offset" : 83
},
{
"length" : 3,
"offset" : 90
}
],
"place_id" : "ChIJtTv6_PsHx4kRYZZtvcrallQ",
"reference" : "ChIJtTv6_PsHx4kRYZZtvcrallQ",
"structured_formatting" : {
"main_text" : "Quest Diagnostics Inside New Castle Walmart Store",
"main_text_matched_substrings" : [
{
"length" : 10,
"offset" : 25
}
],
"secondary_text" : "117 Wilton Blvd, New Castle, DE 19720, USA",
"secondary_text_matched_substrings" : [
{
"length" : 11,
"offset" : 4
},
{
"length" : 2,
"offset" : 29
},
{
"length" : 5,
"offset" : 32
},
{
"length" : 3,
"offset" : 39
}
]
},
"terms" : [
{
"offset" : 0,
"value" : "Quest Diagnostics Inside New Castle Walmart Store"
},
{
"offset" : 51,
"value" : "117 Wilton Blvd"
},
{
"offset" : 68,
"value" : "New Castle"
},
{
"offset" : 80,
"value" : "DE"
},
{
"offset" : 83,
"value" : "19720"
},
{
"offset" : 90,
"value" : "USA"
}
],
"types" : [ "health", "point_of_interest", "establishment" ]
}],"status" : "OK"}
我认为 Predictions[0].description 具有公司名称。
但不是每次都返回响应。响应的预测可能是一个空数组。
关于python - 使用 Google Maps API 获取企业名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52372933/