পোস্টজিআইএস ব্যবহার করে বৃহত্তর বহুভুজ তৈরি করতে প্রচুর ছোট ছোট বহুভুজতে যোগদান করছেন?


47

পোস্টগ্রিসে এসআরআইডি 27700 ব্যবহার করে আমার নীচের স্তরটি রয়েছে:

এখানে চিত্র বর্ণনা লিখুন

এটি যুক্তরাজ্যের প্রতিটি প্রশাসনিক অঞ্চল এবং (যেমন আপনি বর্ণের গোষ্ঠী থেকে দেখতে পাচ্ছেন) তাদের প্রত্যেকের একটি পাঠ্যক্ষেত্র রয়েছে যাতে তারা যে কাউন্টিতে রয়েছেন তা উল্লেখ করে।

আমি যা করতে চাই তা প্রদত্ত কাউন্টিতে ছোট থেকে বৃহত্তর কাউন্টি বহুভুজ তৈরি করা, সুতরাং সমস্ত টিল রঙের বহুভুজ উপরের ছবিতে EG একক বহিরাগত রিং থেকে একটি বৃহত বহুভুজ গঠন করবে যাতে এতে সমস্ত পোল রয়েছে that রঙ, যেমন সমস্ত বেগুনি, বাদামী, গোলাপী, ধূসর ইত্যাদির মতো, সমস্তগুলি একটি বহুভুজ গঠন করা উচিত।

আমি ইতিমধ্যে নিম্নলিখিত চেষ্টা করেছি:

insert into parishesmerged (geometry)
select astext(multi(ST_Union(the_geom))) as the_geom from parishes
group by county_name

তবে এটি ভাঙা জ্যামিতিগুলি তৈরি করে রাখে যা আমার পরে আরও প্রক্রিয়াজাতকরণে বড় সমস্যা হয়।

আমি প্রধান আউটপুট অঞ্চলগুলি সহ একটি সহজ কাউন্টি স্তরের মানচিত্র তৈরি করার চেষ্টা করছি।

পোস্টগিসে কোনও সমাধান হওয়ার দরকার নেই, আমার কাছে সম্পূর্ণ ওএস 4 জিও স্ট্যাক ইনস্টল রয়েছে, কিউগিসের সর্বশেষতম সংস্করণ এবং আমি লাঠি নাড়াতে পারার চেয়ে আরও বেশি ব্যবহার s

আমার কাছে কেবল জিনিসগুলি না হ'ল আর্কগিসের মতো বড় ছেলেরা (যদিও আমার কোনও পুরাতন ম্যাপিনফো কোথাও পড়ে থাকতে পারে)


রেকর্ডের জন্য, আমি যে ডেটাসেটটি তৈরি করতে চাইছি তা হ'ল আমি একটি জিআইএস বইটি নিয়ে যাচ্ছি যা আমি লিখছি NET প্রোগ্রামাররা। নেট ব্যবহার করে জিআইএস অ্যাপ্লিকেশন লিখতে ইচ্ছুক নেট প্রোগ্রামটি লিখছি accomp


নীচের পরামর্শগুলির চেষ্টা করার পরে, যেটি সবচেয়ে ভাল কাজ করেছে সেটি হ'ল 'পল রামসিস' সমাধান।

আমার কাছে এখন একটি দুর্দান্ত সরলিকৃত কাউন্টি এবং বোরো ফাইল রয়েছে যা আমার বইয়ের পক্ষে যথেষ্ট সহজ, তবে কিছু আকর্ষণীয় ভূ-স্থানিক এসকিউএল প্রদর্শন করার জন্য যথেষ্ট জটিল complex

যদিও পল এর সমাধানটি শেষ পর্যন্ত আমার পক্ষে কাজ করেছিল, আমি বহুভুজ মানচিত্রকে সরলকরণ এবং জটিলতা আরও কমিয়ে দেওয়ার মতো বিষয়ের জন্য অন্যান্য উত্তরগুলিও আকর্ষণ করেছি।

এটি করার সময় আমি যা পর্যবেক্ষণ করেছিলাম, এস এস কালেক্ট সত্যই এস এস ইউনীয়ানের চেয়ে দ্রুত, রান করার জন্য রান করুন এটিও বেশিরভাগই ভাঙা জ্যামিতির জন্য দায়ী। আমার অনুমান যে মূল কার্যটিতে কম নির্ভুলতার ব্যয়ায় গতি বৃদ্ধি পাওয়া যায়।


এই প্রক্রিয়াটি "দ্রবীভূত" হিসাবে পরিচিত। আমি পোস্টজিআইএস-এর সাথে অভিজ্ঞ নই, তবে আমি বিশ্বাস করি যে আপনি দ্রবীভূত করতে ST_Uionion কমান্ডটি ব্যবহার করতে পারেন ।
dmahr

হাই dmahr, শোধন জন্য ধন্যবাদ, না নিশ্চিত করুন যে এটি কি বলা হয়েছিল, তবে যদি তুমি আমার প্রশ্নের পড়া আপনি আমি ইতিমধ্যে চেষ্টা দেখতে পাবেন যে :-)
shawty

উফ, দুঃখিত ... এটি দেখেনি। আপনি astext(multi())অংশটি ছাড়াই বাছাই বিবৃতি চেষ্টা করেছেন ? আমি অন্যান্য পোস্টজিআইএসের দ্রবীভূত উদাহরণগুলিতে কেবল যা দেখছি তা বন্ধ করছি।
dmahr

এখনও না, এখন চেষ্টা করবে। Tks। উদাহরণগুলি দ্রবীভূত করার জন্য আপনার কি লিঙ্ক আছে?
shawty

আপনি যদি "একক বহিরাগত রিং" চান বা না চান দয়া করে এক্সপ্রেসের জন্য সম্পাদনা করুন। (আমার উত্তর দেখুন)
পিটার ক্রাউস

উত্তর:


43

ST_Uionion কাজ করবে তবে আপনার লাইনের কাজ প্রায় নিশ্চিতভাবে পরিষ্কার নয়। সুতরাং আপনার ছোট জিনিসগুলির সীমানা পুরোপুরি পছন্দ করে না। ভার্টেক্সগুলি লাইন আপ করার প্রতিক্রিয়াগুলি বাড়ানোর চেষ্টা করতে এবং আস্তে আস্তে গ্রিডে এঁকে ফেলতে পারেন তবে আমি বাজি ধরেছি যে আপনার এখনও কয়েকটি ঘটনা কার্যকর হবে না। হয় তারা সহনশীলতার বাইরে থাকবে বা সম্ভবত, এমন জায়গাগুলি থাকবে যেখানে অনুভূমিক অংশগুলি জোড়া দেওয়া হয়নি, সুতরাং একদিকে একটি লাইন এবং অন্যদিকে একটি শীর্ষবিন্দু রয়েছে।

 CREATE TABLE merged AS
 SELECT ST_Union(ST_SnapToGrid(the_geom,0.0001)) 
 FROM parishes
 GROUP BY county_name;

আপনার যদি পোস্টজিআইএস ২.০ থাকে, সহনশীলতার সাথে টপোলজির কাঠামো তৈরি করা যদি আপনার ভাগ্য থাকে তবে আপনি যে উত্তরটি সন্ধান করছেন তা পেতে পারে।


জ্যামিতি সংশোধনের জন্য ভাল সূত্র, তবে "... একক বহিরাগত রিং থেকে একটি বৃহত্তর বহুভুজ যা সমস্ত পলগুলি ধারণ করে ..."?
পিটার ক্রাউস

'স্ন্যাপটো' সম্পর্কে আমি জানতাম না আমি চেষ্টা করে দেখব :-) টিএসস। দুর্ভাগ্যক্রমে, না, এখনও পিজি 2 ব্যবহার করছেন না, আপগ্রেড যদিও পাইপলাইনে রয়েছে।
শাওটি

আপনার সিনট্যাক্সটি সঠিক কিনা তা নিশ্চিত নন। Postgis.net/docs/ST_Union.html প্রতি , ২ য় প্যারামিটারে কোনও সংখ্যা স্বীকার করে এমন কোনও স্বাক্ষর নেই।
আরেন কাম্ব্রে

আপনি ঠিক বলেছেন, প্রথম বন্ধনীটি ভুল জায়গায় ছিল। সম্পাদনা করা হয়েছে।
পল রামসে

এর সাথে কি মাইএসকিএল সমান? আমি পেতে থাকি Incorrect parameter count in the call to native function 'ST_Union'এবং আমি জানি না এটি কোনও মাইএসকিএল সীমাবদ্ধতা কিনা।
জয়েন

7

আপনি বলছেন যে "... একক বহিরাগত রিং থেকে একটি বৃহত্তর বহুভুজ তৈরি করতে হবে যাতে সমস্ত পোল রয়েছে ..."। এসT_ এক্সটারিয়র রিং এটি করে,

SELECT ST_MakePolygon(ST_ExteriorRing(ST_Union(GEOM)))
FROM GEOMTABLE GROUP BY ATTRCOLUMN

আপনি প্রস্তাবিত এস এস ইউনিয়ন () ব্যবহার করতে পারেন, বা এসT_ সংকলন () দিয়ে পরীক্ষা করতে পারেন।


দ্রষ্টব্য: অল্প লপ বা "ভাঙা জ্যামিতি" এড়াতে আপনি প্রতিটি জিওমের জন্য st_convexhull এবং / অথবা ST_Smplify ব্যবহার করতে পারেন,

SELECT ST_MakePolygon(ST_ExteriorRing(ST_union(ST_Simplify(GEOM,0.5))))
FROM GEOMTABLE GROUP BY ATTRCOLUMN

এবং আপনার জ্যামিতিগুলি পরীক্ষা করুন,

SELECT * FROM (
   SELECT gid, ST_IsValid(geom) as valid, ST_IsSimple(geom) as simple 
   FROM GEOMTABLE) AS t  
WHERE NOT(valid AND simple); 

বিভ্রান্তির জন্য দুঃখিত: আমি আমার বর্ণনার দ্বারা যা বোঝাতে চেয়েছি তা ছোট থেকে তৈরি একটি বৃহত্তর বহুভুজ ছিল, আমি বুঝতে পেরেছি যে 'আউটার রিং' প্রসঙ্গে নির্ভর করে বিভিন্ন লোকের কাছে বিভিন্ন জিনিস বোঝানো যেতে পারে, আমার উদ্দেশ্যটি হ'ল একটি একক বহুভুজকে তৈরি থেকে বর্ণনা করা প্রতিটি বহুভুজ গ্রুপের চারদিকে সীমানা উপস্থিত রয়েছে।
শাওটি

7

এসগ্রাফিক্যাল ফাংশন পোস্টগ্রিজ এসকিউএল এর পরিভাষায় একটি "সমষ্টি" ফাংশন

" SELECT ST_Collect(GEOM) FROM GEOMTABLE GROUP BY ATTRCOLUMN" এটিট্রিকলামের প্রতিটি স্বতন্ত্র মানের জন্য একটি পৃথক জিওমেট্রাইক্লিকেশন ফিরিয়ে দেবে

http://postgis.net/docs/ST_Collect.html

দ্রষ্টব্য: ST_ সংকলন এস এস ইউনিয়নের চেয়ে অনেক দ্রুত


3
আমি এটি চেষ্টা করেছিলাম এবং কিছুটা আলাদা ফলাফল পেয়েছি, তবে আমার কী জ্যামিতির সংগ্রহ আছে? আমি মূলত একটি বড় বহুভুজ তৈরির চেষ্টা করছি, optionচ্ছিকভাবে এটির গর্তগুলি দিয়ে (বিশেষত ডার্বিশায়ার এবং নটিংহ্যামশায়ারে যেখানে ডার্বি এবং নটিংহাম উভয়ই কেন্দ্রেই পৃথক জেলা গঠন করে I আমি গতির পার্থক্যটি পর্যবেক্ষণ করেছি, তাই চাবুক আগল
শওটি

2

আমি আপনার প্রশ্ন থেকে ধরে নিচ্ছি যে আপনি অর্ডানেন্স জরিপের সীমানা-লাইন পণ্য ব্যবহার করছেন। যদি এটি হয় তবে এটিতে ইতিমধ্যে একটি কাউন্টি স্তরের ডেটা সেট অন্তর্ভুক্ত রয়েছে তাই এটি নিম্ন স্তরের প্যারিশ অঞ্চল থেকে নিজেকে তৈরি করার চেষ্টা করার দরকার নেই।

আপনি যদি বাউন্ডারি-লাইন ব্যবহার না করে থাকেন তবে আমি আপনাকে সুপারিশ করব যে এটি ওএস ওপেনডেটা লাইসেন্সের অধীনে বিনামূল্যে এবং একটি কাউন্টি স্তর রয়েছে যাতে শেপ ফাইল হিসাবে আপনি সরাসরি পোস্টজিআইএসে লোড করতে পারেন।


2
যারা জানেন না তাদের জন্য কীভাবে লিঙ্ক সরবরাহ করবেন? ধন্যবাদ।
jonatr

1
হাই শেনডারসন আপনি সত্যই সঠিক, হ্যাঁ আমি ওএস ওপেনডাটা থেকে সেট করা সীমানা স্তর তথ্য ব্যবহার করছি, দুর্ভাগ্যক্রমে কাউন্টির সীমানা সম্পূর্ণ নয়, প্রকৃত কাউন্টির শেপের ফাইলটিতে কেবল কাউন্টি হিসাবে নাম অন্তর্ভুক্ত রয়েছে, লন্ডন বরোজগুলি আশেপাশের অঞ্চলগুলি অন্তর্ভুক্ত করে লন্ডন এবং অন্যান্য ফাইলগুলির কিছু অংশ অন্যগুলির চেয়ে কিছু নিম্ন এবং ছোট স্তরের রয়েছে। যুক্তরাজ্যের সম্পূর্ণ রূপরেখা রয়েছে এমন একমাত্র ফাইল এবং পরবর্তীকালে একটি স্তরতে সমস্ত উচ্চ স্তরের কাউন্টি এবং পৌরসভা সীমানা বের করার কোনও সম্ভাবনা হ'ল প্যারিশ স্তর, তাই কেন আমি এটি করার চেষ্টা করছি।
শাওটি

যারা আগ্রহী তাদের জন্য আপনি এখনই কাউন্টির সীমানা এবং আরও অনেক কিছু ডাউনলোড করতে পারেন: अर्ডেনসুরভেও.কম.সুকস
ওয়েসসাইট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.