Agregar propiedades a GeoJson con R -- json campo con r campo con geojson camp Relacionados El problema

adding properties to GeoJSON with r


2
vote

problema

Español

Estoy tratando de preparar algunos datos de GeoJson que tengo para mostrar en un mapa de folleto como un coropleth. El problema que tengo es que no puedo por la vida de mí, averiguar cómo agregar propiedades a mi archivo GeoJson. Puedo meterlo en R usando <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/dispatcher-servlet.xml</param-value> </context-param> </web-app> 3 en el paquete <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/dispatcher-servlet.xml</param-value> </context-param> </web-app> 414 , pero termina siendo una lista de listas y lucho un poco para obtener mi cabeza alrededor de cómo agregar algo a una lista, y mucho menos se sumerge en una lista recursiva para agregar datos.

El archivo GeoJson que he creado se puede encontrar aquí .

El código que he usado para importar los datos es:

  <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">  <welcome-file-list>     <welcome-file>index.jsp</welcome-file> </welcome-file-list>    <servlet>     <servlet-name>dispatcher</servlet-name>     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>     <load-on-startup>1</load-on-startup>   </servlet>      <servlet-mapping>     <servlet-name>dispatcher</servlet-name>     <url-pattern>*.do</url-pattern>   </servlet-mapping>    <listener>     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>   </listener>   <context-param>      <param-name>contextConfigLocation</param-name>     <param-value>/WEB-INF/dispatcher-servlet.xml</param-value>   </context-param> </web-app> 5  

También tengo un conjunto de datos que quiero agregar como propiedades a cada una de mis geometrías dentro del archivo JSON. La estructura es:

  <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">  <welcome-file-list>     <welcome-file>index.jsp</welcome-file> </welcome-file-list>    <servlet>     <servlet-name>dispatcher</servlet-name>     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>     <load-on-startup>1</load-on-startup>   </servlet>      <servlet-mapping>     <servlet-name>dispatcher</servlet-name>     <url-pattern>*.do</url-pattern>   </servlet-mapping>    <listener>     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>   </listener>   <context-param>      <param-name>contextConfigLocation</param-name>     <param-value>/WEB-INF/dispatcher-servlet.xml</param-value>   </context-param> </web-app> 6  

y se ve como:

  <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">  <welcome-file-list>     <welcome-file>index.jsp</welcome-file> </welcome-file-list>    <servlet>     <servlet-name>dispatcher</servlet-name>     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>     <load-on-startup>1</load-on-startup>   </servlet>      <servlet-mapping>     <servlet-name>dispatcher</servlet-name>     <url-pattern>*.do</url-pattern>   </servlet-mapping>    <listener>     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>   </listener>   <context-param>      <param-name>contextConfigLocation</param-name>     <param-value>/WEB-INF/dispatcher-servlet.xml</param-value>   </context-param> </web-app> 7  

Estoy deseando agregar mis columnas de StateNincome a AVGStategift como propiedades a mi archivo GeoJson. Mi columna de estado coincidirá con la propiedad State_code en el archivo GeoJson. Cualquier ayuda en esto sería muy apreciada.

Original en ingles

I am trying to prepare some GeoJSON data that I have for displaying on a leaflet map as a choropleth. The problem I have is I can't for the life of me figure out how to add properties to my GeoJSON file. I can get it into R using fromJSON() in the rjson package, but it ends up being a list of lists and I struggle a bit to get my head around how to append something to a list, let alone dive into a recursive list to append data.

The GeoJSON file I have created can be found here.

The code I've used to import the data is:

library(rjson) Myjson <- fromJSON(paste(readLines("states.json"), collapse="")) 

I also have a dataset that I am wanting to add as properties to each of my geometries within the json file. The structure is:

structure(list(State = structure(1:8, .Label = c("ACT", "NSW", "NT", "QLD", "SA", "TAS", "VIC", "WA"),                                   class = "factor"), stateincome = c(28959299.93, 392185791.54, 8559477.92, 169039212.3, 61092752.9878, 23695740.28, 298860548.9008, 114231960.463),                avgstategift = c(48.8204253852119, 64.8584888549168, 45.0472757892964, 53.9720822484215, 50.7162153310643, 53.0923216942408, 62.4033469022953, 50.7348320924839)),            row.names = c(NA, -8L),            class = c("data.table", "data.frame"),            .Names = c("State", "stateincome", "avgstategift")) 

and it looks like:

   State stateincome avgstategift 1:   ACT    28959300     48.82043 2:   NSW   392185792     64.85849 3:    NT     8559478     45.04728 4:   QLD   169039212     53.97208 5:    SA    61092753     50.71622 6:   TAS    23695740     53.09232 7:   VIC   298860549     62.40335 8:    WA   114231960     50.73483 

I am wanting to add my stateincome an avgstategift columns as properties to my GeoJSON file. My State column will match to the STATE_CODE property in the GeoJSON file. Any assistance on this would be greatly appreciated.

        

Lista de respuestas

2
 
vote
vote
La mejor respuesta
 

Si puede usar onCreate()5 & gt; = onCreate()6 , entonces este es un trabajo bastante rápido. He cambiado el nombre de la columna ReservedTimesAdapter27 a onCreate()8 para que coincida con lo que hay en el archivo GeoJson para "Más fácil" fusionando:

  onCreate()9  

CUBRIZO ALGUNA MACTAMENTE adicionales usando archivos GeoJson en Esta publicación pero no sé cuánto necesita para avanzar con los datos en el folleto. Si solo necesita datos fusionados, myAdapter.notifyDataSetChanged();0 en este ejemplo debe obtenerlo lo que necesita.

 

If you can use rgdal >= 1.11 then this is pretty quick work. I've renamed the State column to STATE_CODE to match what's in the GeoJSON file for "easier" merging:

library(rgdal)  states <- readOGR("states.json", "OGRGeoJSON")  dat <- structure(list(STATE_CODE = structure(1:8, .Label = c("ACT", "NSW", "NT", "QLD", "SA", "TAS", "VIC", "WA"),                                   class = "factor"), stateincome = c(28959299.93, 392185791.54, 8559477.92, 169039212.3, 61092752.9878, 23695740.28, 298860548.9008, 114231960.463),                avgstategift = c(48.8204253852119, 64.8584888549168, 45.0472757892964, 53.9720822484215, 50.7162153310643, 53.0923216942408, 62.4033469022953, 50.7348320924839)),            row.names = c(NA, -8L),            class = c("data.table", "data.frame"),            .Names = c("STATE_CODE", "stateincome", "avgstategift"))  states@data <- merge(states@data, dat) str(states@data)  ## 'data.frame': 8 obs. of  6 variables: ##  $ STATE_CODE  : Factor w/ 9 levels "ACT","NSW","NT",..: 1 2 3 5 6 7 8 9 ##  $ STE_CODE11  : Factor w/ 9 levels "1","2","3","4",..: 8 1 7 3 4 6 2 5 ##  $ STE_NAME11  : Factor w/ 9 levels "Australian Capital Territory",..: 1 2 3 5 6 7 8 9 ##  $ ALBERS_SQM  : num  2.36e+09 8.01e+11 1.35e+12 1.73e+12 9.84e+11 ... ##  $ stateincome : num  2.90e+07 3.92e+08 8.56e+06 1.69e+08 6.11e+07 ... ##  $ avgstategift: num  48.8 64.9 45 54 50.7 ... 

I cover some additional R mapping using GeoJSON files in this post but I don't know what more you need to move forward with getting the data into leaflet. If you just need merged data, then states@data in this example should get you what you need.

 
 

Relacionados problema

2  Cómo cambiar el estilo del mapa en MapBox sin cambiar el GeoJson insertado  ( How to change map style in mapbox without changing the geojson inserted ) 
He intentado cambiar los estilos de mapas como calles a satélite, oscuro, brillante, etc. en tiempo de ejecución con cajas de radio. Pero cuando cargue un arc...

-1  Error de Geowithin Mongo: Las coordenadas de polígono deben ser una matriz  ( Mongo geowithin error polygon coordinates must be an array ) 
Tengo un conjunto de datos con puntos GEO. {_ID ... Otros campos ... Ubicación: {Tipo: "Punto", coordenadas: [0,0]}} Lo que he estado intentando hacer e...

0  Error de sintaxis en el token "{", que se lanza antes de este token en el archivo JSON en Eclipse  ( Syntax error on token throw expected before this token at json file in ecli ) 
¿Por qué el Eclipse IDE dice que los siguientes datos GEOJSON tienen un error de sintaxis? El archivo se generó desde el archivo XML en la estructura GML por ...

0  JSON-LD Normalización - Ignorar a Json Nesting  ( Json ld normalization ignore json nesting ) 
Estoy trabajando en la serialización de JSON-LD, e idealmente me gustaría tener un // Get messages for the logged in user public async void getMessages(...

-1  ¿Cómo obtengo la URL de la etiqueta de la imagen en Java?  ( How do i get the url of the image tag in java ) 
La imagenURL es: The JSONOBJECT: { "type":"table", "subtype":"attribute_list", "doc":"https://api-v2.swissunihockey.ch/api/doc/attribute_li...

1  Orden de clasificación de capas en el control de la capa de folleto  ( Sort order of layers in leaflet layer control ) 
He creado un mapa de folleto para mostrar algunos datos de GeoJson en capas verticales separadas. Funciona bien, excepto que el control de la capa enumerará...

0  Error en Rteos :: CreatePolyGonscomment (OOBJ): Agujero huérfano usando GeoJsonio en R  ( Error in rgeoscreatepolygonscommentoobj orphaned hole using geojsonio in r ) 
Estoy tratando de crear un archivo .geojson6 en mi repositorio local para Esta salida . Estoy descargando el archivo localmente, haciendo de mis ajustes y ...

1  Diccionario de exportación de Python a GeoJson - Eliminar de 'coordenadas' valor la cita doble  ( Export python dictionary to geojson remove from coordinates value the double ) 
the Formato GeoJson es esencialmente casi regular JSON, excepto el coordinates Clave: { "extends": [ "plugin:@wordpress/eslint-plugin/recommended...

1  OpenLayers Angularjs siempre muestra Geojson Point en [0,0]  ( Openlayers angularjs always shows geojson point at 0 0 ) 
La pregunta es la más cercana a esta Post . Pero parece que no se ha resuelto (y no puedo comentar sobre eso), me gustaría dar más información. primero, es...

0  Las llamadas de la API de la geolocalización contra una API API API  ( Geolocation api calls against an eve restful api ) 
Puedo almacenar fácilmente los datos de geolocalización en MongoDB con un servidor API Restful Eve. Así que almaceno datos como: loc : { lng: 13.01111, ...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos