2016-11-08 2 views
1

J'essaie d'obtenir les coordonnées des entreprises par leur nom. J'ai passé en revue plusieurs questions sur l'utilisation de «géocode», mais ils semblent tous fonctionner sur la base de l'adresse. Voir ci-dessous deux exemples qui tentent d'obtenir les coordonnées de The Westbury Hôtel Londres:Trouver les coordonnées par nom d'entreprise avec Google Maps

library(ggmap) 
geocode("London") 
geocode("The Westbury Hotel London") # Returns coordinates of Westbury Road in London 

Une approche plus complexe:

require(RJSONIO) 
library(ggmap) 
geocodeAddress <- function(address) { 
    require(RJSONIO) 
    url <- "http://maps.google.com/maps/api/geocode/json?address=" 
    url <- URLencode(paste(url, address, "&sensor=false", sep = "")) 
    x <- fromJSON(url, simplify = FALSE) 
    if (x$status == "OK") { 
    out <- c(x$results[[1]]$geometry$location$lng, 
      x$results[[1]]$geometry$location$lat) 
    } else { 
    out <- NA 
    } 
    Sys.sleep(0.2) # API only allows 5 requests per second 
    out 
} 
geocodeAddress("The Westbury Hotel London") # Returns London coordinates 

Autre questions mentionné qu'il est possible d'obtenir les coordonnées des lieux avec « géocodage » mais, au moins dans mon cas, ça ne marche pas. Toute idée sur la façon d'obtenir des coordonnées par nom d'entreprise de google maps grandement apprécié.

Répondre

0

Vous pouvez utiliser le Google Places API pour rechercher des lieux en utilisant mon package googleway. Vous devrez travailler un peu avec les résultats ou affiner votre requête si vous voulez connaître l'activité exacte que vous recherchez, car l'API renvoie généralement plusieurs résultats possibles.

Vous avez besoin d'une clé API Google pour utiliser leur service

library(googleway) 

## your API key 
api_key <- "your_api_key_goes_here" 

## general search on the name 
general_result <- google_places(search_string = "The Westbury Hotel London", 
           key = api_key) 


general_result$results$name 
# [1] "The Westbury" "Polo Bar"  "The Westbury" 

general_result$results$geometry$location 
#  lat  lng 
# 1 53.34153 -6.2614740 
# 2 51.51151 -0.1426609 
# 3 51.59351 -0.0983930 

## more refined search using a location 
location_result <- google_places(search_string = "The Wesbury Hotel London", 
           location = c(51.5,0), 
           key = api_key) 


location_result$results$name 
# [11] "The Marylebone"    "The Chelsea Harbour Hotel" 
# "Polo Bar"     "The Westbury"    "The Gallery at The Westbury" 

location_result$results$geometry$location 
#  lat  lng 
# 1 51.51801 -0.1498050 
# 2 51.47600 -0.1819235 
# 3 51.51151 -0.1426609 
# 4 51.59351 -0.0983930 
# 5 51.51131 -0.1426318 

location_result$results$formatted_address 
# [1] "37 Conduit St, London W1S 2YF, United Kingdom"   "37 Conduit St, London, Mayfair W1S 2YF, United Kingdom" 
# [3] "57 Westbury Ave, London N22 6SA, United Kingdom" 
+0

Merci @SymbolixAU, je suis en train d'utiliser le code, mais je ne sais pas ce qui est "" ~/Documents/.googleAPI »? – user3507584

+0

@ JustynaS C'est juste un fichier dans lequel j'ai sauvegardé ma clé d'API Vous devez entrer la vôtre que vous recevez de Google – SymbolixAU