0

rChartsこの機能を使用してリーフレット マップに複数のポリゴンを追加しようとするとmap$geoJson()、最後のポリゴンしかマップに表示されません。それ以外は表示されません。マップに複数のポリゴンを追加するために何ができるかについて何か考えはありますか? 以下に、私が行ったことの詳細な説明を示します。

1. ポリゴンを取得するために postgis DB にクエリを実行しています。その結果、単一のポリゴンのコードを 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) のみがマップに表示され、他のポリゴンは表示されません。それらを表示させる方法に関する提案はありますか?

4

1 に答える 1

1

すべてのポリゴンを含む単一のgeoJSON オブジェクトを作成して追加する必要があります。ここを参照してください:

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

json は、ジオメトリ タイプの Polygon フィーチャを含む FeatureCollection であることに注意してください。ポリゴン座標からその文字列を作成して追加します。

于 2014-05-10T10:12:11.117 に答える