Rでポリゴン間のスライバーギャップを削除する


10

を使用してポリゴン間の小さな「断片」を排除する方法はありRますか?望ましいソリューションはSpatialPolygonsDataFrame、ポリゴン間の共有境界が一致する新しいものを作成します。RArcMapやQGISではなく、を使用するソリューションに特に興味があります。

そもそもなぜこれらのギャップが存在するのかについての説明も聞きたいです。

これは、私が使用している空間データの再現可能な例です。

library(rgdal)      
library(sp)
library(tigris)
library(magrittr)
library(leaflet)
library(gplots)

# This project will use WGS 84 projected coordinate system
crs_proj <- CRS("+init=epsg:4326") 

# These are the FIPS codes of the specific block groups in my study area
sel <- c("530330079005", "530330079001", "530330079004", 
         "530330085002", "530330085003", "530330086003", 
         "530330087003", "530330085001", "530330090001", 
         "530330091001", "530330091002", "530330092001", 
         "530330092002", "530330086001", "530330090002", 
         "530330086002", "530330079003", "530330079002", 
         "530330087002", "530330087001")

# Create polygons
polygons <- tigris::block_groups(state = "WA",county = "King") %>% 
        .[.@data$GEOID %in% sel,] %>% 
        spTransform(CRSobj = crs_proj)

# Map the result
leaflet() %>% 
        addProviderTiles("CartoDB.Positron") %>% 
        addPolygons(data = polygons,
                    stroke = F,
                    fillColor = col2hex("red"), fillOpacity = 1)

ポリゴン間のスライバー

上のスクリーンショットからわかるように、国勢調査ブロックグループのポリゴン間に小さなギャップがあります。これらのギャップのこれらの位置は、ズームレベルに応じて異なる方法でレンダリングされますが、常にいくつかのギャップが表示されます。

誰かRがプログラムでポリゴンを調整してこれらのギャップをなくすための関数(または関数の組み合わせ)を推奨できますか?

回答:


5

設定の中での溶液の嘘と思われるsmoothFactor中で議論をAddPolygonsする0:この関連の記事で示唆したように、リーフレットにGeoJSONはポリゴン間葉ギャップをスタイリング

また、サンプルマップからスライバーギャップを完全に削除するには、ポリゴンに小さなストロークを追加する必要があることもわかりました。

leaflet() %>% 
    addProviderTiles("CartoDB.Positron") %>% 
    addPolygons(data = polygons, smoothFactor = 0,
                weight = .75, color = col2hex("red"), opacity = 1,
                fillColor = col2hex("red"), fillOpacity = 1)

ここに画像の説明を入力してください

興味深いことに、ポリゴンの不透明度を下げると、ストロークを追加する必要がなくなったことがわかりました。

leaflet() %>% 
        addProviderTiles("CartoDB.Positron") %>% 
        addPolygons(data = polygons, smoothFactor = 0,
                    stroke = FALSE,
                    fillColor = col2hex("red"), fillOpacity = .5)

不透明度50%

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.