0
いくつかの重なり合うポリゴンにラベルを付ける必要がありますが、最大のもののラベルだけが表示されます。しかし、いくつかのシミュレートされたデータでテストしたところ、ラベルは正しく表示されていました。私は2つのケースのデータを慎重に比較しましたが、違いが問題を引き起こしているのを見つけることはできません。それが正常に動作していますRのリーフレットに重なり合うポリゴンのラベル
library(leaflet)
library(sp)
poly_a <- data.frame(lng = c(0, 0.5, 2, 3),
lat = c(0, 4, 4, 0))
poly_b <- data.frame(lng = c(1, 1.5, 1.8),
lat = c(2, 3, 2))
pgons = list(
Polygons(list(Polygon(poly_a)), ID="1"),
Polygons(list(Polygon(poly_b)), ID="2")
)
poly_dat <- data.frame(name = as.factor(c("a", "b")))
rownames(poly_dat) <- c("1", "2")
spgons = SpatialPolygons(pgons)
spgonsdf = SpatialPolygonsDataFrame(spgons, poly_dat, TRUE)
leaflet() %>% addPolygons(data = spgonsdf, label = ~name
# ,
# highlightOptions = highlightOptions(
# color = "red", weight = 2,bringToFront = TRUE)
)
:
それは私のデータでは動作しませんでしたしかし、ここで
シミュレート重なり合うポリゴンの最小の例です。https://github.com/rstudio/leaflet/files/1430888/Gabs.zip
あなたはthis siteにzipファイルをドラッグして、それが正しくのみ最大のポリゴンラベルが示されている
library(rgdal)
# download Gabs.zip and extract files to Gabs folder
hr_shape_gabs <- readOGR(dsn = 'Gabs', layer = 'Gabs - OU anisotropic')
hr_shape_gabs_pro <- spTransform(hr_shape_gabs,
CRS("+proj=longlat +datum=WGS84 +no_defs"))
leaflet(hr_shape_gabs_pro) %>%
addTiles() %>%
addPolygons(weight = 1, label = ~name)
のラベルが付いています見にiボタンを使用することができます。
両方の場合のデータはSpatialPolygonsDataFrame、データスロットは適切なポリゴン名を有しています。
私は、ポリゴンの順序について考えと 'plotOrder'を変更しようとしましたが、それは効果がありませんでした。この場合、 'plotOrder'を使うべきではありませんか? しかし、ポリゴンを切り替えると、ラベルが正しく配置されません。ラベルはポリゴンIDと一致していないような順序で配置されているように見えるので、 'data'行の順序も変更する必要があります。 – dracodoc
@dracodocそうです。申し訳ありませんが、私はラベルの順序を変更しませんでした。私は 'hr_shape_gabs $ name < - rev(hr_shape_gabs $ name)'を追加して答えを更新しました。今注文はOKです。 'plotOrder'はポリゴンのプロット順に影響しないようです。 –