Python 做生意';使用谷歌地图API命名

Python 做生意';使用谷歌地图API命名,python,r,google-maps,google-places-api,rjsonio,Python,R,Google Maps,Google Places Api,Rjsonio,与大多数位置查询工作相反,我实际上是通过地址或Googleplaceid用Google API识别企业名称。e、 例如,当我在googlemaps.com上搜索加利福尼亚州洛杉矶威尔希尔大道1625号(邮编:90017)时,结果显示“在这个位置”是“麦当劳” 但是,当使用以下URL进行API调用时,名称会显示为街道地址,而我想要的是识别该位置(“麦当劳”)的企业名称: https://maps.googleapis.com/maps/api/place/textsearch/json?query

与大多数位置查询工作相反,我实际上是通过地址或Google
placeid
用Google API识别企业名称。e、 例如,当我在googlemaps.com上搜索加利福尼亚州洛杉矶威尔希尔大道1625号(邮编:90017)时,结果显示“在这个位置”是“麦当劳”

但是,当使用以下URL进行API调用时,名称会显示为街道地址,而我想要的是识别该位置(“麦当劳”)的企业名称:

https://maps.googleapis.com/maps/api/place/textsearch/json?query=1625%20Wilshire%20Blvd,%20Los%20Angeles,%20CA%2090017&sensor=false&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)
$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"
import requests
Python代码

packages <- c("RJSONIO")
new_packages <- packages[!(packages %in% installed.packages()[,"Package"])]
if(length(new_packages)) install.packages(new_packages)

library(RJSONIO)
$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"
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输出

packages <- c("RJSONIO")
new_packages <- packages[!(packages %in% installed.packages()[,"Package"])]
if(length(new_packages)) install.packages(new_packages)

library(RJSONIO)
$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"
import requests
{'candidates':[{'u address':'1625 Wilshire Blvd,Los Angeles,CA 90017,USA',
“姓名”:“威尔希尔大道1625号”,
“地点id”:“ChIJ18AW\U aPHwoARXRm-cgcRcDs”},
'debug_log':{'line':[]},
“状态”:“确定”}

我相信endpoind正在做您想要的事情

当我执行以下请求时

https://maps.googleapis.com/maps/api/place/findplacefromtext/json?input=1625%20Wilshire%20Blvd%2C%20Los%20Angeles%2C%20CA%2090017&inputtype=textquery&fields=formatted_address,名称,地点\u id&key=MY\u API\u key

我得到以下回应

{
  "candidates":[
    {
      "formatted_address":"1625 Wilshire Blvd, Los Angeles, CA 90017, USA",
      "name":"McDonald's",
      "place_id":"ChIJ0QBm-6PHwoARpfbcollvKIc"
    }
  ],
  "debug_log":{
    "line":[
    ]
  },
  "status":"OK"
}
正如您所看到的,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,几何体,名称,place\u id&locationbias=圆圈%3A100%4034.0559572%2C-118.2708558&key=您的\u API\u密钥

也许您可以使用Google place自动完成请求获取企业名称

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"}
我认为预测[0]。说明中有企业名称


但并非每次返回响应时都如此。响应的预测可能是一个空数组。

如果需要位置的placeid,请尝试nearbysearch(使用位置),谢谢您的响应。请看我的问题的编辑。