python - 使用 Google Maps API 获取企业名称

标签 python r google-maps google-places-api rjsonio

与大多数位置查询工作相反,我实际上尝试通过 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/

相关文章:

python - Django休息框架: How serialize two models queryset?

python - 如何执行两个列表的逐元素乘法?

sql - 与两个或多个字段/变量上的SELECT DISTINCT等效

ios - 是否可以使用 GoogleMaps iOS SDK 获取 Google map 显示的地点信息?

Python Discord.py Bot 间隔消息发送

python - NVM 无法在 Cygwin 中安装任何版本的 Node.js

r - 制作一个可管道化的函数

r - 如何为 Lasso Logistic 回归生成所有一阶交互项?

javascript - 一张 Google map 上具有多种颜色的多个多边形

javascript - 谷歌地图方向服务零结果