Suite

Aucune sortie lors du rendu de GeoJSON à l'aide du package Leaflet () dans RShiny

Aucune sortie lors du rendu de GeoJSON à l'aide du package Leaflet () dans RShiny


Je crée une interface Rshiny sur qui peut prendre en compte l'entrée de l'utilisateur lorsqu'un utilisateur clique sur un point de la carte, interroge la sélection de l'utilisateur à partir de postgresql et renvoie une autre couche de carte. Le paquet que j'utilise est un dépliant. (https://rstudio.github.io/leaflet/). J'ai suivi les exemples, mais je suis incapable de générer des couches de carte.

Voici mes codes ui.r et server.r

ui.r

shinyUI(fluidPage( titlePanel("titre ici"), sidebarLayout(position = "right", sidebarPanel( selectInput("time", label = "Choisissez une période", choice = list("1", "2", " 3") ) ), mainPanel(leafletOutput('map')) ))

serveur.r

shinyServer(function(input,output) { drv <- dbDriver("PostgreSQL") con <- dbConnect(drv, dbname="postgres",host="localhost",user=***, password=***, port =5432) geojson_fromsql <- dbGetQuery(con, "SELECT ST_ASGeoJson(geom) FROM table WHERE time="input";) geojson <- fromJSON("file path/file name.geojson") map <- leaf() %>% addTiles() %>% addGeoJson(geojson) output$map <- renderLeaflet(map) }

geojson me donne ceci :

$type [1] "Feature Collection" $crs $crs$type [1] "name" $crs$properties name "urn:ogc:def:crs:OGC:1.3:CR84" $features $features[[1]] $caractéristiques[[1]]$type [1] "Fonctionnalité" $caractéristiques[[1]]$propriétés année "2012" $caractéristiques[[1]]$géométrie $caractéristiques[[1]]$géométrie$type [1 ] "Point" $caractéristiques[[1]]$géométrie$coordonnées [1] 103.77749 1.28983… $caractéristiques $caractéristiques[[17]] $caractéristiques[[17]]$type [1] "Caractéristiques" $caractéristiques[[17 ]]$propriétés année "2012" $caractéristiques[[17]]$géométrie $caractéristiques[[17]]$géométrie$type [1] "Point" $caractéristiques[[17]]$géométrie$coordonnées [1] 103.67749 1.32983

tandis que geojson_sql a la structure suivante :

(data.frame) st_asgeojson 1{"type":"Point","coordinates":[103.77748, 1.28983]}… 17{"type":"Point","coordinates":[103.67749, 1.32983]}

addGeoJson(geojson) ne me donne rien dans le panneau principal (fig 1). *addGeoJson(geojson_sql) donne un widget de brochure, sans tuiles (fig 2). *addGeoJson(geojson_sql[1,]) donne un widget de brochure, sans aucun tuile (fig 2). Je crois que j'ai aussi quelques erreurs de syntaxe dans la configuration du carreleur.

Mais plus important encore, j'aimerais savoir quel format/structure le dépliant accepte pour geojson, et comment je peux le dériver dans R ?

PS : Les suggestions de packages ou de méthodes alternatives sont également les bienvenues. J'ai essayé rCharts et j'ai également heurté un mur ici: /questions/151536/how-to-convert-a-geojson-from-postgresql-to-geojson-format-readable-in-rcarts-i Et je ne suis pas certain que rCharts prend en compte l'entrée de l'utilisateur lorsque les utilisateurs cliquent sur des points sur la carte.

fig 1 - lecture de geojson directement dans R

fig 2 - lecture de geojson à partir de postgresql


Je ne comprends pas très bien ce que vous voulez accomplir de la part de l'utilisateur en cliquant sur la carte. Mais en ce qui concerne le rendu des couches de la carte, si vous souhaitez utiliserajouterGeoJSON()Je pense qu'il est plus facile de lire dans le fichier json comme suit :

shinyServer(function(input,output){ geojson <- reactive({ readLines("filename.json") %>% paste(collapse = "
") }) output$map <- renderLeaflet({ brochure() %> % addTiles() %>% addGeoJson(geojson()) }) })

Vous pouvez changer le code à l'intérieurréactif()pour inclure votre entrée d'utilisateur telle queentrée$tempsafin de changer le geojson qui est lu. Notez la parenthèse après geojson dans la dernière ligne.