传单与国家geojson层闪亮

时间:2015-01-16 11:14:50

标签: r leaflet geojson

我正在使用R + Shiny来显示传单地图。我想在这张地图上添加几个国家(以图层的形式),我环顾四周,找到了提供GEOJSON数据的网站:

country GEOJSON data (detailed)

country GEOJSON data (simple)

我的问题是这些文件中的坐标是经度,纬度(以下规格)。但是,Leaflet(或Leaflet-Shiny)无论出于何种原因都预期纬度,经度。

交换订单最简单的方法是什么?

感谢。

卡洛斯

1 个答案:

答案 0 :(得分:0)

这是最简单的工作示例:

ui.R

library(shiny)
library(ShinyDash)
library(leaflet)

shinyUI(fluidPage(
  gridster(tile.width = 125, tile.height = 125,
           gridsterItem(col = 1, row = 1, size.x = 4, size.y = 2,
                        leafletMap(
                          "map", "100%", "100%",
                          initialTileLayer = "http://{s}.tiles.mapbox.com/v3/jcheng.map-5ebohr46/{z}/{x}/{y}.png",
                          initialTileLayerAttribution = HTML('Maps by <a href="http://www.mapbox.com/">Mapbox</a>'),
                          options=list(
                            center = c(49.25, 16),
                            zoom = 2,
                            maxBounds = list(list(17, -180),
                                             list(59, 180))
                          )
                        )
           )
  )
))

server.R

library(RJSONIO)

shinyServer(function(input, output, session) {
     # create leaflet map   map <- createLeafletMap(session, 'map')
     # Draw GeoJSON   m <- RJSONIO::fromJSON("./www/countries/esp.geo.json")
     m$style <- list(weight = 5, stroke = "true",
                  fill = "true", opacity = 1,
                  fillOpacity = 0.4)
     session$onFlushed(once=TRUE, function() {
    map$addMarker(ncoords[[1]][1], ncoords[[1]][2])
    map$addGeoJSON(m)   }) })