Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

311
Vistas
Importar datos de un mapa de folleto como un objeto sf en R

Quiero importar datos como un objeto sf en R desde un mapa de folleto. El mapa es este sitio: https://erickgn.github.io/mapafc/ También tengo el HTML del mapa de la siguiente manera: https://raw.githubusercontent.com/erickgn/mapafc/main/index.html .

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

También tengo el HTML del mapa de la siguiente manera: https://raw.githubusercontent.com/erickgn/mapafc/main/index.html .

Entonces lo tienes todo. Guarde la página localmente o deséchela usando el paquete xml2 . Si buscas en la fuente de la página, puedes encontrar algo como:

 geo_json_b75320e180b34bb88a8a9025dff8675e_add({"bbox": [-44.447264, -23.03329, -41.6957233, -22.2949485],[...]

como parece que son sus características, puede leerlo con el paquete sf::st_read o jsonlite .

Un pequeño ejemplo para el primer JSON:

 library(rvest) url <- "https://raw.githubusercontent.com/erickgn/mapafc/main/index.html" text <- html_text(read_html(url))

Ahora tenemos que ubicar dos cadenas que están antes y después de json y tomar la parte intermedia. Tenga en cuenta +1, -22 : el primero es bastante obvio, el segundo es un poco para tratar de eliminar nuevas líneas innecesarias, etc.

 library(stringi) st <- stri_locate_first_fixed(text, "geo_json_b75320e180b34bb88a8a9025dff8675e_add(")[2]+1 fi <- stri_locate_first_fixed(text, "geo_json_b75320e180b34bb88a8a9025dff8675e.bindTooltip(")[1]-22 json <- substring(text, st, fi)

Y finalmente, convirtamos json en objetos R:

 jsonlite::fromJSON(json) #> $bbox #> [1] -44.44726 -23.03329 -41.69572 -22.29495 #> #> $features #> bbox #> 1 -43.59792, -22.82906, -43.58869, -22.82160 #> 2 -43.38023, -22.96123, -43.37173, -22.95453 #> 3 -43.50182, -23.03329, -43.49279, -23.02227 #> 4 -43.29931, -22.99099, -43.29163, -22.98606 [...]

Puede repetir pasos similares para los siguientes json(s).

Y leyendo con el paquete sf :

 library(sf) a <- st_read(json) #> Reading layer `OGRGeoJSON' from data source #> [...] #> using driver `GeoJSON' #> Simple feature collection with 249 features and 16 fields #> Geometry type: POLYGON #> Dimension: XY #> Bounding box: xmin: -44.44726 ymin: -23.03329 xmax: -41.69572 ymax: -22.29495 #> Geodetic CRS: WGS 84 plot(a$geometry)

Creado el 2022-02-15 por el paquete reprex (v2.0.1)

Saludos, Grzegorz

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda