将多个多边形添加到rCharts传单贴图

将多个多边形添加到rCharts传单贴图,r,leaflet,geojson,rcharts,rjsonio,R,Leaflet,Geojson,Rcharts,Rjsonio,当我尝试使用map$geoJson()函数使用rCharts向传单地图添加多个多边形时,地图上只显示最后一个多边形。其他的不显示。你知道我该怎么做才能在地图上添加多个多边形吗?下面您可以看到我所做工作的详细描述: 1。我正在查询postgis数据库以获取多边形,因此我得到了一个多边形的代码作为GeoJSON,大致如下所示: "{\"type\":\"Polygon\",\"coordinates\":[[[16.644953973395001,48.142664957703971], ...[1

当我尝试使用
map$geoJson()
函数使用
rCharts
向传单地图添加多个多边形时,地图上只显示最后一个多边形。其他的不显示。你知道我该怎么做才能在地图上添加多个多边形吗?下面您可以看到我所做工作的详细描述:

1。我正在查询postgis数据库以获取多边形,因此我得到了一个多边形的代码作为GeoJSON,大致如下所示:

"{\"type\":\"Polygon\",\"coordinates\":[[[16.644953973395001,48.142664957703971], ...[16.644439684506018,48.143173899704649],[16.644953973395001,48.142664957703971]]]}"  
    $type
[1] "Polygon"

$coordinates
$coordinates[[1]]
$coordinates[[1]][[1]]
[1] 16.66885 48.42283

$coordinates[[1]][[2]]
[1] 16.66196 48.42634

$coordinates[[1]][[3]]
[1] 16.65877 48.42876

.
.
.

$coordinates[[1]][[62]]
[1] 16.67115 48.42179

$coordinates[[1]][[63]]
[1] 16.66885 48.42283
map <- Leaflet$new()
map$tileLayer(provider = 'Stamen.TonerLite')

map$setView(c(48.42283, 16.66885), zoom = 10)
map$enablePopover(TRUE)
map$geoJson(polygon1)
map$geoJson(polygon2)
map$geoJson(polygon3)
map$geoJson(polygon4)
map$fullScreen(TRUE)
map$set(width = 800, height = 600)
map
总之,我有81个多边形,我想在传单地图上显示它们。为此,我正在使用rCharts软件包

2。作为下一步,我使用
fromJSON
函数使用包
RJSONIO
转换它们。然后,单个多边形的代码大致如下所示:

"{\"type\":\"Polygon\",\"coordinates\":[[[16.644953973395001,48.142664957703971], ...[16.644439684506018,48.143173899704649],[16.644953973395001,48.142664957703971]]]}"  
    $type
[1] "Polygon"

$coordinates
$coordinates[[1]]
$coordinates[[1]][[1]]
[1] 16.66885 48.42283

$coordinates[[1]][[2]]
[1] 16.66196 48.42634

$coordinates[[1]][[3]]
[1] 16.65877 48.42876

.
.
.

$coordinates[[1]][[62]]
[1] 16.67115 48.42179

$coordinates[[1]][[63]]
[1] 16.66885 48.42283
map <- Leaflet$new()
map$tileLayer(provider = 'Stamen.TonerLite')

map$setView(c(48.42283, 16.66885), zoom = 10)
map$enablePopover(TRUE)
map$geoJson(polygon1)
map$geoJson(polygon2)
map$geoJson(polygon3)
map$geoJson(polygon4)
map$fullScreen(TRUE)
map$set(width = 800, height = 600)
map
3。作为最后一步,我创建了一个传单贴图,并使用
map$geoJson
函数添加多边形:

"{\"type\":\"Polygon\",\"coordinates\":[[[16.644953973395001,48.142664957703971], ...[16.644439684506018,48.143173899704649],[16.644953973395001,48.142664957703971]]]}"  
    $type
[1] "Polygon"

$coordinates
$coordinates[[1]]
$coordinates[[1]][[1]]
[1] 16.66885 48.42283

$coordinates[[1]][[2]]
[1] 16.66196 48.42634

$coordinates[[1]][[3]]
[1] 16.65877 48.42876

.
.
.

$coordinates[[1]][[62]]
[1] 16.67115 48.42179

$coordinates[[1]][[63]]
[1] 16.66885 48.42283
map <- Leaflet$new()
map$tileLayer(provider = 'Stamen.TonerLite')

map$setView(c(48.42283, 16.66885), zoom = 10)
map$enablePopover(TRUE)
map$geoJson(polygon1)
map$geoJson(polygon2)
map$geoJson(polygon3)
map$geoJson(polygon4)
map$fullScreen(TRUE)
map$set(width = 800, height = 600)
map
map您必须构造一个包含所有多边形的geoJSON对象,并添加该对象。请看这里:


请注意,json是一个具有几何体类型多边形特征的FeatureCollection。根据多边形坐标构建该字符串并添加。

这是推荐的方法。我相信传单JS允许一次添加一个简单的几何体,但我没有在rCharts绑定中公开这一点。因此
geoJSON
是一条可行之路。在rCharts中使用多个geoJSON层会很方便,但最终人们必须咬紧牙关,意识到自己也可以编写JS。这是真的。必须要有一个平衡。那么,如何从多个数据集编写geoJson,并在其上显示点和多边形呢?