উত্তর:
ST_Exant এর কৌশলটি করা উচিত।
ST_Exant - একটি সামগ্রিক ফাংশন যা জ্যামিতির সারি সীমাবদ্ধ বাউন্ডিং বাক্সটি দেয়।
এটি প্রয়োগ করা হয়েছে:
SELECT ST_Extent(the_geom) as table_extent FROM your_table;
@Unddark উত্তর হিসাবে , ST_Exant কাজটি করবে, তবে মনে রাখবেন যে এটি জ্যামিতিটি ফেরায় না তবে a box2d
। আপনার যদি জ্যামিতির ধরণের প্রয়োজন হয় তবে আপনার মতো কিছু ব্যবহার করা উচিত
SELECT ST_SetSRID(ST_Extent(the_geom), THE_SRID) as table_extent FROM your_table;
এছাড়াও, আপনার যা প্রয়োজন তা যদি প্রতিটি সারিগুলির বাউন্ডিং বক্স পান তবে আপনি এটির মতো ST_Extent
একটি নকল ব্যবহার করতে পারেন GROUP BY
:
SELECT ST_SetSRID(ST_Extent(the_geom),THE_SRID) as table_extent FROM your_table GROUP BY gid;
অনুমান করা যে জিডটি টেবিলের প্রাথমিক কী
কিন্তু ST_Envelope একটি ভাল কাজ করতে হবে @ bugmenot123 মন্তব্য বিবৃত
SELECT ST_Envelope(geom) FROM your_table ;
আর একটি সম্ভাবনা হ'ল ST_Envelope
ফাংশনটি ব্যবহার করা , যা এসআরআইডি সহ একটি জ্যামিতি ফিরিয়ে দেয়,
এসT_ এনভেলপ - সরবরাহ করা জ্যামিতির সীমানা বাক্সকে উপস্থাপন করে এমন একটি জ্যামিতি ফিরিয়ে দেয়
, ST_Union
সমস্ত জ্যামিতির (বা তাদের নিজ নিজ খামের ইউনিয়ন) এর ইউনিয়ন পেতে সামগ্রিক ফাংশন সহ :
SELECT ST_Envelope(ST_Union(geom)) AS table_extent FROM your_table
অথবা
SELECT ST_Envelope(ST_Union(ST_Envelope(geom))) AS table_extent FROM your_table
দ্বিতীয় বিকল্পটি দ্রুত হওয়া উচিত কারণ এটি পৃথক জ্যামিতির খামগুলি ব্যবহার করে ইউনিয়ন পরিচালনা সহজ করে তোলে।
দেখতে উত্স ।
কোনও স্থানিক সংহতকরণ কার্যকর না করা দ্রুত হওয়া উচিত:
select
min(ST_XMin(geom)) as l,
min(ST_YMin(geom)) as b,
max(ST_XMax(geom)) as r,
max(ST_YMax(geom)) as t
from x
ST_Envelope
! যদিও এটির জন্য জিজ্ঞাসা করা হয়েছিল তা নয়।