Lagi

Tidak ada keluaran saat merender GeoJSON menggunakan paket Leaflet() di Rshiny


Saya membuat antarmuka Rshiny yang dapat menerima input pengguna ketika pengguna mengklik suatu titik di peta, menanyakan pilihan pengguna dari postgresql dan mengembalikan lapisan peta lain. Paket yang saya gunakan adalah leaflet. (https://rstudio.github.io/leaflet/). Saya telah mengikuti contoh, tetapi saya tidak dapat membuat lapisan peta apa pun.

Berikut ini adalah kode ui.r dan server.r saya

ui.r

mengkilapUI(fluidPage(titlePanel("judul di sini"), sidebarLayout(posisi = "kanan", sidebarPanel( selectInput("waktu", label = "Pilih jangka waktu", pilihan = daftar("1", "2", " 3") ) ), mainPanel(leafletOutput('map')) ))

server.r

mengkilapServer(fungsi(masukan,keluaran) { drv <- dbDriver("PostgreSQL") dengan <- 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 <- leaflet() %>% addTiles() %>% addGeoJson(geojson) output$map <- renderLeaflet(map) }

geojson memberi saya yang berikut:

$type [1] "Koleksi Fitur" $crs $crs$type [1] "name" $crs$properties name "urn:ogc:def:crs:OGC:1.3:CR84" $features $features[[1]] $features[[1]]$type [1] "Fitur" $features[[1]]$properties tahun "2012" $features[[1]]$geometry $features[[1]]$geometry$type [1 ] "Titik" $features[[1]]$geometry$coordinates [1] 103.77749 1.28983… $features $features[[17]] $features[[17]]$type [1] "Feature" $features[[17 ]]$properties tahun "2012" $features[[17]]$geometry $features[[17]]$geometry$type [1] "Titik" $features[[17]]$geometry$coordinates [1] 103.67749 1.32983

ketika geojson_sql memiliki struktur sebagai berikut:

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

tambahkanGeoJson(geojson) memberi saya apa-apa di panel utama (gbr 1). *addGeoJson(geojson_sql) memberikan widget selebaran, tanpa tilelayers (gbr 2). *addGeoJson(geojson_sql[1,]) memberikan widget selebaran, tanpa lapisan ubin juga (gbr 2). Saya percaya saya memiliki beberapa kesalahan sintaks dalam mengatur tilelayer juga.

Tetapi yang lebih penting, saya ingin tahu format/struktur apa yang diterima paket selebaran untuk geojson, dan bagaimana saya bisa menurunkannya di R?

PS: Saran untuk paket atau metode alternatif juga diterima. Saya telah mencoba rCharts dan juga menemui hambatan di sini: /questions/151536/how-to-convert-a-geojson-from-postgresql-to-geojson-format-readable-in-rcharts-i Dan saya tidak yakin bahwa rCharts mengambil input pengguna saat pengguna mengklik titik di peta.

gbr 1 - membaca geojson langsung ke R

gambar 2 - membaca geojson dari postgresql


Saya tidak begitu mengerti apa yang ingin Anda capai dari pengguna yang mengklik peta. Tetapi sehubungan dengan merender lapisan peta, jika Anda ingin menggunakantambahkanGeoJSON()Saya pikir paling mudah untuk membaca di file json sebagai berikut:

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

Anda dapat mengubah kode di dalamreaktif()untuk memasukkan input pengguna Anda sepertimasukan$waktuuntuk mengubah geojson yang dibaca. Perhatikan tanda kurung setelah geojson di baris terakhir.


Tonton videonya: आर पतरक 1616 - पतरक और चमकदर (Oktober 2021).