Получить название компании с помощью Google Maps API - PullRequest
0 голосов
/ 17 сентября 2018

В отличие от большинства запросов на определение местоположения, я на самом деле пытаюсь идентифицировать название компании с помощью API Google по ее адресу или по Google placeid.например, когда я ищу 1625 Wilshire Blvd, Los Angeles, CA 90017 на googlemaps.com, его результаты показывают, что «в этом месте» находится «McDonald's».

Однако при выполнении вызова API со следующим URL-адресом появляется имяв качестве адреса улицы, когда я хочу указать название компании в этом месте («Макдональдс»):

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 Code :

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'}

1 Ответ

0 голосов
/ 18 сентября 2018

Я считаю, что Найти место Конечная точка делает то, что вы ищете

Когда я выполняю следующий запрос

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"
}

Как вы можете видеть, Место поиска возвращает бизнес Макдональдса.

Надеюсь, это поможет!

Обновление

Интересно. Вы случайно не знаете, где находится ваш сервер? Как видно из документации, по умолчанию для поиска места используется IP-адрес Мой сервер находится в США, и я получаю McDonald's, если 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

...