আর এর সাহায্যে বহুভুজগুলির মধ্যে স্লিভার ফাঁকগুলি সরান


10

বহুভুজ ব্যবহারের মধ্যে ছোট "স্লাইভারগুলি" মুছে ফেলার কোনও উপায় আছে কি 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: এই সংশ্লিষ্ট পোস্টে প্রস্তাব, লিফলেট GeoJSON বহুভুজ মধ্যে পাতার ফাঁক styling

উদাহরণস্বরূপ মানচিত্র থেকে স্লিভার ফাঁকগুলি সম্পূর্ণরূপে অপসারণ করার জন্য বহুভুজগুলিতে একটি ছোট স্ট্রোক যুক্ত করাও আমার প্রয়োজনীয় মনে হয়েছিল।

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.