将多个多边形添加到rCharts活页地图

时间:2014-05-10 09:11:01

标签: r leaflet geojson rcharts rjsonio

当我尝试使用rCharts函数向map$geoJson()的传单地图添加多个多边形时,只有最后一个多边形出现在地图上。其他的不显示。我有什么想法可以为我的地图添加多个多边形?您可以在下面看到我所做的详细说明:

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

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

总之,我有81个多边形,我想在传单地图上显示它们。我正在使用rCharts包来实现此目的。

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

    $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

第3。作为最后一步,我创建了一个传单地图,并使用map$geoJson函数添加多边形:

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

使用此方法,只有最后一个多边形(polygon4)正在地图上显示,其他多边形不显示。有关如何制作它们的任何建议吗?

1 个答案:

答案 0 :(得分:1)

您必须构建一个包含所有多边形的单个 geoJSON对象并添加它。见这里:

https://github.com/ramnathv/rCharts/blob/master/inst/libraries/leaflet/examples/example10.R

请注意,json是具有几何类型Polygon功能的FeatureCollection。从多边形坐标构建该字符串并添加。