【问题标题】:add multiple polygons to rCharts leaflet map将多个多边形添加到 rCharts 传单地图
【发布时间】:2014-05-10 09:11:01
【问题描述】:

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

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

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

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

2。作为下一步,我使用fromJSON 函数将它们与包RJSONIO 一起转换。那么单个多边形的代码大概是这样的:

    $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)显示在地图上,其他的不显示。有关如何使它们出现的任何建议?

【问题讨论】:

    标签: r leaflet geojson rcharts rjsonio


    【解决方案1】:

    您必须构造一个 single geoJSON 对象,其中包含所有多边形并添加它。见这里:

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

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

    【讨论】:

    • 这是推荐的方法。我相信 LeafletJS 允许一次添加一个简单的几何图形,但我没有在 rCharts 绑定中公开它。所以geoJSON 是要走的路。
    • rCharts 中的多个 geoJSON 层会很方便,但最终还是不得不硬着头皮意识到自己也可以编写 JS。
    • 这是真的。必须有一个平衡。
    • 如何从多个数据集编写geoJson,并在其上显示点和多边形?
    猜你喜欢
    • 1970-01-01
    • 2015-06-11
    • 1970-01-01
    • 2020-02-17
    • 1970-01-01
    • 2013-07-11
    • 1970-01-01
    • 1970-01-01
    • 2013-05-24
    相关资源
    最近更新 更多