পোস্টজিআইএস: প্রদত্ত অনুপাতে বহুভুজকে বিভক্ত করুন


11

বহুভুজকে nঅংশগুলিতে বিভক্ত করার কি কোনও সুবিধাজনক উপায় আছে , পোস্টজিআইএসে আরও কম-বেশি সমান আকারে?


সমান আয়তন বা সমান আকার (সমান প্রস্থ এবং উচ্চতা)?
অ্যান্টনি-গিসকো-

ক্ষেত্রফল, নির্বিশেষে অনুপাত।
আদম মতান

1
সম্পর্কিত পোস্ট gis.stackexchange.com/questions/5300/…
কার্ক

আমি আশ্চর্য হই যে আর স্থানীয়ভাবে এর কোনও সমাধান নেই
ব্র্যাড নেসোম

উত্তর:


8

এটি কোনও সহজ সমাধান ছাড়াই একটি পুরানো সমস্যা। আমি পৌঁছেছি যে একমাত্র পদ্ধতির আপনি একটি শিরোনাম প্রদান একটি ফাংশন এবং অংশ সমান সংখ্যা এবং কম্পিউটার এটি সমান অঞ্চল না পাওয়া পর্যন্ত ট্রায়াল তৈরি করা হয়। অটোক্যাডের সাথে একটি এলআইএসপি ফাংশন রয়েছে। পোস্টগিসে এটি একই কাজ করে, মেনিং থেকে পোস্টজিআইএস-এর অ্যাকশনের একটি অংশ এখানে দেওয়া হয়েছে , এই কোডটি একটি বহুভুজকে দুটি সমান অংশে বিভক্ত করেছে:

WITH RECURSIVE
ref(the_geom, env) AS (
SELECT the_geom,
ST_Envelope(the_geom) As env,
ST_Area(The_geom)/2 As targ_area,
1000 As nit
FROM us.states
WHERE state = 'Idaho'
),

T(n,overlap) AS (
VALUES (CAST(0 As Float),CAST(0 As Float))
UNION ALL
SELECT n + nit, ST_Area(ST_Intersection(the_geom, ST_Translate(env, n+nit, 0)))
FROM T CROSS JOIN ref
WHERE ST_Area(ST_Intersection(the_geom, ST_Translate(env, n+nit, 0)))> ref.targ_area
) ,  

bi(n) AS
(SELECT n
FROM T
ORDER BY n DESC LIMIT 1)  

SELECT bi.n,
ST_Difference(the_geom, ST_Translate(ref.env, n,0)) As geom_part1,
ST_Intersection(the_geom, ST_Translate(ref.env, n,0)) As geom_part2
FROM bi CROSS JOIN ref;

2

একটি পদ্ধতির মধ্যে বহুভুজটি সম্পূর্ণরূপে ত্রিভুজগুলিতে বিভক্ত করা হতে পারে, প্রতিটি নির্দিষ্ট ক্ষেত্রের সাথে। তারপরে সেগুলি (সংলগ্ন) ত্রিভুজগুলি (আরও কম বা কম) আকারের অঞ্চল / এন এর বহুভুজগুলিতে আবার গ্রুপ করার চেষ্টা করার বিষয় হবে। এটি "সাবসেট যোগ" বা "ন্যাপস্যাক" সমস্যার এক ধরণের কাস্টমাইজড সংস্করণ হবে (এবং পোস্টজিআইএস দিয়ে এটি কীভাবে শুরু করবেন তা আমি জানতাম না)।


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