সংলগ্ন বহুভুজগুলি মার্জ করুন এবং সমস্ত (সংলগ্ন এবং সংলগ্ন নয়) মাল্টিপলিগন হিসাবে ফিরিয়ে আনবেন?


11

প্রশাসনিক সীমানা এবং তাদের জ্যামিতি সহ আমার পোস্টগ্রিজ ডাটাবেস রয়েছে। এই সীমানার প্রত্যেকটিরই একটি পরিচয় নম্বর রয়েছে।

আমি যা অর্জন করতে চাই:

প্রথমে আমি সমস্ত পাতাগুলি নির্বাচন করতে চাই যা একটি নির্দিষ্ট জিপ কোড দিয়ে শুরু হয়। উদাহরণ স্বরূপ:

SELECT * FROM "post" WHERE "post"."ident" LIKE '101%'

সংলগ্ন সমস্ত জ্যামিতিগুলি একত্রিত করা উচিত এবং যেগুলি নেই তাও ফিরিয়ে দেওয়া উচিত।

আমি এই বিবৃতি চেষ্টা করেছি:

এই উত্তরটি আমার কাছে রয়েছে:

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

with t as (
select (st_dump(geom)).geom 
from "post"
where "post"."ident" LIKE '593%'
) select ST_UNION(geom) from t;

তবে এই বিবৃতিটি কেবল সেই বহুভুজগুলি ফিরিয়ে দেয় যা সংলগ্ন তবে অন্যদের অন্তর্ভুক্ত নয়

with t as (
select (st_dump(geom)).geom 
from "post"
where "post"."ident" LIKE '593%'
) select ((ST_Dump(ST_UNION(geom)))) from t;

আমি ২ টি সারি পেয়েছি এবং দেখে মনে হচ্ছে এটি আমার যা ইচ্ছা তা হতে পারে তবে আমি এস এস এসএসটেক্সট ফলাফল পেতে পারি না।

এমন কোনও বিবৃতি আছে যা সমস্ত বহুভুজগুলি যেখানে প্রয়োজন সেখানে একত্রীভূত করে জিওজেএসন বা সম্ভবত পাঠ্য হিসাবে আদর্শ হিসাবে ফিরিয়ে দেয়?

উত্তর:


1

ওপির উত্তর:

with t as (
select (st_dump(geom)).geom 
from "post"
where "post"."ident" LIKE '593%'
) select ST_AsGeoJSON((ST_Dump(ST_UNION(geom))).geom) from t;

সুতরাং আপনি জ্যামিতিগুলি অ্যাক্সেস করতে এবং এটিকে জিওজেএসনে রূপান্তর করতে পারেন। সংলগ্ন জ্যামিতিগুলি মার্জ হয়ে গেছে এবং আপনি অন্যান্য সমস্ত জ্যামিতিগুলিও পাবেন যা মার্জড বহুভুজের মধ্যেও অন্তর্ভুক্ত নয়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.