2016-11-08 62 views
1

我想通過他們的名字獲得企業的座標。我已經回顧了幾個關於使用「地理編碼」的問題,但他們似乎都基於地址工作。請參見下面的兩個例子試圖讓酒店倫敦韋斯特伯裏的座標:使用谷歌地圖查找企業名稱座標

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

一個更復雜的方法:

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 

其他questions提到,有可能從「地址解析」的地方得到的座標但至少在我的情況下,它不起作用。任何想法如何從谷歌地圖獲得商業名稱座標非常讚賞。

回答

0

您可以使用Google Places API來使用我的googleway包搜索地點。您必須對結果進行一些處理,或者如果您希望獲得您之後的確切業務,請優化您的查詢,因爲API通常會返回多個可能的結果。

你需要一個谷歌API密鑰才能使用他們的服務

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

感謝@SymbolixAU,我想使用的代碼,但我不知道什麼是「」〜/文檔/ .googleAPI」? – user3507584

+0

@ JustynaS。這僅僅是一個我保存了我的API密鑰的文件,你需要輸入你從Google獲得的信息 – SymbolixAU