2013-05-13 3 views
5

W Miejscach Google podczas edytowania mojej firmy mogę dodać "opis" w sekcji "Informacje podstawowe". Nawiasem mówiąc, aby taką edycję przejść, przejdź do http://www.google.com/local/add/businessCenter i kliknij "Edytuj" pod wpisem o firmie.Jak uzyskać "opis" firmy za pomocą interfejsu API Miejsc Google?

Kiedy kwerendy API Places o szczegóły mojej działalności, nie widzę tego „description”:

url = "https://maps.googleapis.com/maps/api/place/details/json?key=#{key}&sensor=#{sensor}&reference=#{reference}" 

Spojrzałem na Place Details Results, a także nie widzę tam pole „Opis” .

W jaki sposób mogę uzyskać pole Miejsce/opis firmy za pomocą zapytania Google API?

+0

Czy ktoś kiedykolwiek wymyślił ten jeden? – rebelliard

+0

Nie mam. Jeśli to zrozumiesz, napisz odpowiedź. – user664833

Odpowiedz

-1

Pytanie to "jak uzyskać opis", ale użytkownik nadal opisuje swój problem podczas edycji własnej działalności.

Wydaje się, że Google nie przechowuje opisy miejsce w jego własnym Google Places DB lecz daje wyciągi z odpowiednich stron wolna zasada/Wikipedia

odpowiedź na edycję opis firmy jest „nie można bezpośrednio” lub " utwórz lub zmodyfikuj swoją stronę Wikipedia/Freebase, aby pośrednio dodać/zmodyfikować opis "

Kontynuuj czytanie, aby uzyskać odpowiedź na pytanie, jak" uzyskać "opis firmy za pomocą miejsc-api. W tym przykładzie użyto PHP.

Wiele artykułów z Wikipedii nie wskazuje współrzędnych lng/lat, więc nie można wykonać wyszukiwania bliskości/nazwy za pomocą APi Wikipedii.

Jednak FreeBase pobiera większość informacji z Wikipedii i zwykle posiada informacje o lat/lng.

//Gather info from Google Places API 
//$_GET['gID'] is the Reference for the Place you want info for. 
$url = "https://maps.googleapis.com/maps/api/place/details/json?" 
     ."reference=".$_GET['gID'] 
     ."&sensor=false" 
     ."&key=YOUR KEY"; 

$results = ProcessCurl ($url); 
$gPlace = json_decode($results); 

//Gather info from FreeBase 
$url = "https://www.googleapis.com/freebase/v1/search?" 
     ."indent=true" 
     ."&filter=%28all" 
     ."+type%3Alocation" 
     ."+name%3A%22". urlencode($gPlace->result->name) ."%22" 
     ."%28within+radius%3A100ft" 
     ."+lon%3A". $gPlace->result->geometry->location->lng 
     ."+lat%3A". $gPlace->result->geometry->location->lat ."%29%29" 
     ."&output=%28description%29";   
$results = ProcessCurl ($url); 
$FreeBase = json_decode($results); 

//ensure we got results from FreeBase 
//All we want from FreeBase is the Description 
if ($FreeBase->status == "200 OK" && $FreeBase->hits > 0) { 
$member = "/common/topic/description"; 
$Description = $FreeBase->result[0]->output->description->$member; 
print_r ($Description[0]); 

tym przykładzie użyto nazwy, a LAT/LNG z Google Place i przeszukuje typy do „Lokalizacje” wolnej zasady DB dla tej nazwy w 100ft nim znajduje Lat/LNG.

Jestem pewien, że kod można ulepszyć, ale do tej pory działa całkiem dobrze.

TAKŻE - coś z notatki - gdy wyszukujesz hasło "Miejsce", wydaje się, że Google wyszukuje FreeBase FIRST, a następnie pasuje do wyniku z podobnym wynikiem w Miejscach Google. Dlatego podczas wyszukiwania google w miejscu wynik po prawej może mieć inną nazwę niż wynik w Miejscach Google i zawierać opis, jednak jeśli użyjesz opcji "blisko", zauważysz, że to samo miejsce nie ma teraz opisu .

Na przykład - Jestem w London Ontario w Kanadzie i mogę wyszukać "Fanshawe College", a wynikiem jest "Fanshawe College", w tym opis. Jednak na apletie Mapy wskaźnik znajduje się w Google Place o nazwie "Fanshawe" College - London Campus "Jeśli zamiast tego przeszukuję college fanshawe pod Londynem", co oznacza, że ​​szukam miejsca; W rezultacie otrzymuję "Fanshawe College - London Campus" bez opisu i mniej informacji.