Я обнаружил, что
loc <- "Dradenaustraße 33, 21129 Hamburg"
library(ggmap)
geocode(loc, source = "google", force = TRUE, messaging = TRUE, output = "more")
возвращает либо NA, ошибку «400, Bad Request», либо, если кто-то пытается подготовить адрес, как показано ниже, он даже возвращает лат / лон где-то в Канзасе.
Я нашел это,
loc <- "Dradenaustraße 33, 21129 Hamburg"
Encoding(loc) <- "UTF-8"
loc <- URLencode(loc, reserved = TRUE)
возвращает
Warning message:
In strsplit(URL, "") : input string 1 is invalid UTF-8
и loc будет NA позже.
Btw. следующее работает нормально с геокодом, то есть он возвращает правильный адрес и широту / долготу:
loc <- "Dradenaustrasse 33, 21129 Hamburg" #manually reformatted
loc <- "Dradenaustraee 33, 21129 Hamburg" #misspelled
Следующий адрес с ошибкой имеет те же проблемы, что и первоначальное нормальное написание:
loc <- "Dradenaustraée 33, 21129 Hamburg" #misspelled
Я вызываю API геокодирования со многими тысячами адресов, таких как приведенный выше, и не хочу их переформатировать (т. Е. Заменить «ß» на «ss», если это не является абсолютно необходимым. В этом случае я бы делать предположения о многих других международных адресах, содержащих также акценты (`, ´ и т. д.).
Есть идеи?
Большое спасибо! :)
Отредактировано, чтобы указать, что я ищу решение, которое произвольно работает для международных адресов и не требует специфического знания домена и ручного переформатирования адресов.