आर के साथ बहुभुज के बीच कांप अंतराल को हटा दें


10

क्या उपयोग करने वाले बहुभुजों के बीच छोटे "slivers" को खत्म करने का एक तरीका है R? वांछित समाधान एक नया निर्माण करेगा SpatialPolygonsDataFrameजहां बहुभुज के बीच साझा सीमाएं संयोग हैं। मैं विशेष रूप से ऐसे समाधान में दिलचस्पी लेता हूं जो Rआर्कपेज़ या क्यूजीआईएस के बजाय उपयोग करता है ।

मुझे एक स्पष्टीकरण सुनने में भी दिलचस्पी होगी कि ये अंतराल पहले स्थान पर क्यों हैं।

यहाँ मैं जिस स्थानिक डेटा के साथ काम कर रहा हूँ उसका एक प्रतिलिपि प्रस्तुत करने योग्य उदाहरण है:

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)

बहुभुज के बीच कष्टप्रद slivers

जैसा कि आप ऊपर दिए गए स्क्रीनशॉट में देख सकते हैं, जनगणना ब्लॉक समूह बहुभुज के बीच छोटे अंतराल हैं। इन अंतरालों के स्थान को ज़ूम स्तर के आधार पर अलग-अलग तरीके से प्रस्तुत किया गया है, लेकिन हमेशा कुछ अंतराल दिखाई देते हैं।

क्या कोई भी Rप्रोग्राम (या कार्यों के संयोजन) को इन अंतरालों को खत्म करने के लिए बहुभुज को व्यवस्थित रूप से समायोजित करने की सिफारिश कर सकता है ?

जवाबों:


5

ऐसा लगता है कि समाधान में smoothFactorतर्क को स्थापित करने में निहित AddPolygonsहै 0, जैसा कि इस संबंधित पोस्ट में सुझाव दिया गया है: कैटलॉग जियोजोन स्टाइलिंग पल्सगॉन के बीच अंतराल छोड़ देता है

मैंने उदाहरण के नक्शे से स्लिवर अंतराल को पूरी तरह से हटाने के लिए पॉलीगोन में एक छोटे से स्ट्रोक को जोड़ना आवश्यक पाया।

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% अपारदर्शिता

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.