O tal dice lo que expongo a continuación.
Paquetes necesarios:
library(rvest) library(caRtociudad) library(reshape2) library(ggmap) library(plyr) library(TSP) Extracción de las provincias y sus capitales (de la Wikipedia):
capitales <- read_html("https://es.wikipedia.org/wiki/Anexo:Capitales_de_provincia_de_Espa%C3%B1a_por_poblaci%C3%B3n") capitales <- html_nodes(capitales, "table") capitales <- html_table(capitales[[1]])$Ciudad capitales <- capitales[!capitales %in% c("Las Palmas de Gran Canaria", "Melilla", "Ceuta", "Mérida", "Santa Cruz de Tenerife", "Santiago de Compostela", "Palma de Mallorca")] Y sus coordenadas:
coordenadas <- ldply(capitales, function(x) { tmp <- cartociudad_geocode(x)[1,] res <- data.frame(ciudad = x, provincia = tmp$province, lat = tmp$latitude, lon = tmp$longitude) if(is.na(res$lat)){ tmp <- geocode(paste(x, "España")) res$lat <- tmp$lat res$lon <- tmp$lon } res }) # Pobre Logroño: ¡Cartociudad lo ubica en Asturias! coords.logrono <- geocode("Logroño") coordenadas$lat[coordenadas$ciudad == "Logroño"] <- coords.logrono$lat coordenadas$lon[coordenadas$ciudad == "Logroño"] <- coords.logrono$lon Construcción de la matriz simétrica de distancias (¡tarda un buen rato!):
...