2017-11-15 4 views
0

r-bloggers.com에서 this recipe를 사용하여 기본지도를 그립니다.영어가 아닌 주소 문자로 인해 geocode()가 반환됩니다.

geocode()는 음모를 꾸미려는 여러 주소에 대해 'NA'를 반환합니다. "NA"를 반환하는 모든 주소에는 덴마크 문자 "æ, Æ, Ø, Ø, å, Å"가 포함되어 있다는 일반적인 속성이 있으므로이 문제로 인해 문제가 발생한다고 생각합니다.

오류 메시지가

cannot open URL 'http://maps.googleapis.com/maps/api/geocode/json? 
address=Esk%E6rvej%2050,%205700%20Svendborg,%20denmark&sensor=false': HTTP 
status was '400 Bad Request' 
2: In FUN(X[[i]], ...) : 
    geocoding failed for "Eskærvej 50, 5700 Svendborg, denmark". 
    if accompanied by 500 Internal Server Error with using dsk, try google. 

당신이이 문제를 해결하기 위해 어떤 방법을 알고 있나요 ", Eskærvej 50, 5700 룬드 덴마크를"주소를 반환? 내 코드에서

예 : 나는 속도 제한 중간 시험을 가지고 있지만, 나를 위해 일한

# CREATE DATA FRAME 
df.svendborg_locations <- tibble(location = c("Belvedere 60, 5700 Svendborg, denmark" 
              ,"Fruerstuevej 17 B, 5700 Svendborg, denmark" 
              ,"Enghavevej 40, 5700 Svendborg, denmark" 
              ,"Engdraget 2, 5700 Svendborg, denmark" 
              ,"Belvedere 54, 5700 Svendborg, denmark" 
              ,"Eskærvej 50, 5700 Svendborg, denmark" 
              ,"Lundbyvej 43, 5700 Svendborg, denmark" 
              ,"Eskærvej 63 B, 5700 Svendborg, denmark" 
              ,"Skovbrynet 1, 5700 Svendborg, denmark" 
              ,"Wiggers Park 201, 5700 Svendborg, denmark" 
              ,"Hellet 3, 5700 Svendborg, denmark" 
              ,"Gambøtvej 2, 5700 Svendborg, denmark" 
              ,"Oluf Rings Vej 19, 5881 Skårup Fyn, denmark" 
              ,"Rantzausmindevej 172 C, 5700 Svendborg")) 
# GEOCODE 
geo.svendborg_locations <- geocode(df.svendborg_locations$location) 

# COMBINE DATA 
df.svendborg_locations <- cbind(df.svendborg_locations, geo.svendborg_locations) 

세션 정보

sessionInfo() 
R version 3.4.1 (2017-06-30) 
Platform: x86_64-w64-mingw32/x64 (64-bit) 
Running under: Windows 7 x64 (build 7601) Service Pack 1 

Matrix products: default 

locale: 
[1] LC_COLLATE=Danish_Denmark.1252 LC_CTYPE=Danish_Denmark.1252 LC_MONETARY=Danish_Denmark.1252 LC_NUMERIC=C     
[5] LC_TIME=Danish_Denmark.1252  

attached base packages: 
[1] stats  graphics grDevices utils  datasets methods base  

other attached packages: 
[1] ggmap_2.6.1   gganimate_0.1.0.9000 gridExtra_2.3  dplyr_0.7.3   purrr_0.2.3   readr_1.1.1   
[7] tidyr_0.7.1   tibble_1.3.4   ggplot2_2.2.1  tidyverse_1.1.1  

loaded via a namespace (and not attached): 
[1] Rcpp_0.12.13  lubridate_1.6.0 lattice_0.20-35 png_0.1-7   assertthat_0.2.0 digest_0.6.12  psych_1.7.8  mime_0.5   
[9] R6_2.2.2   cellranger_1.1.0 plyr_1.8.4  httr_1.3.1  RgoogleMaps_1.4.1 rlang_0.1.2  lazyeval_0.2.0 readxl_1.0.0  
[17] geosphere_1.5-7 miniUI_0.1.1  proto_1.0.0  labeling_0.3  stringr_1.2.0  foreign_0.8-69 munsell_0.4.3  shiny_1.0.5  
[25] broom_0.4.2  compiler_3.4.1 httpuv_1.3.5  modelr_0.1.1  pkgconfig_2.0.1 mnormt_1.5-5  htmltools_0.3.6 grid_3.4.1  
[33] nlme_3.1-131  jsonlite_1.5  xtable_1.8-2  gtable_0.2.0  magrittr_1.5  scales_0.5.0  stringi_1.1.5  mapproj_1.2-5  
[41] reshape2_1.4.2 bindrcpp_0.2  sp_1.2-5   xml2_1.1.1  rjson_0.2.15  tools_3.4.1  forcats_0.2.0  glue_1.1.1  
[49] maps_3.2.0  hms_0.3   jpeg_0.1-8  parallel_3.4.1 yaml_2.1.14  colorspace_1.3-2 rvest_0.3.2  ggExtra_0.7  
[57] knitr_1.17  bindr_0.1   haven_1.1.0 
+0

알려진 오류 https://github.com/dkahle/ggmap/issues/98 – anotherfred

+0

당신이 게시 할 수 있습니다 :'sessionInfo을()' – trosendal

+0

sessionInfo() 추가 –

답변

2

사용 enc2utf8

geo.svendborg_locations <- geocode(enc2utf8(df.svendborg_locations$location)) 

...

OP의 코드로 NA과 함께 5 행을 얻었으며 500 오류 코드가 수반됩니다. enc2utf8

, 나는 둘 다 오류, NA들과 2 개 행을 가지고 geocode failed with status OVER_QUERY_LIMIT, location = "Lundbyvej 43, 5700 Svendborg, denmark"

+0

인코딩 문제를 처리 할 때 "저에게 효과적이었습니다"는 일반적으로 유용한 일화가 아닙니다. 이제는 브라우저에서 복사 한 사본 붙여 넣기 작업의 인코딩, 저장 한 텍스트 파일 및 R 세션 인코딩에 따라 성공 여부가 결정됩니다. – trosendal

+0

사실,'enc2utf8'은 대부분의 시나리오를 처리하도록 설계되었습니다. – anotherfred

+0

enc2uft8()은 덴마크어 문자로 문제를 해결하기 위해 노력했습니다. 나는 또한 "over-query-limit"오류가있다. Google API 콘솔에서 API 키를 가져온 다음 devtools :: install_github ("dkahle/ggmap")에서 사용할 수있는 register_google() 함수를 사용하여이 문제를 해결했습니다. 접근 방법은이 질문의 맨 위로 대답에서 잘 설명되어 있습니다. https://stackoverflow.com/questions/36175529/getting-over-query-limit-after-one-request-with-geocode 감사합니다. –

관련 문제