जवाबों:
जैसा कि @underdark ने उत्तर दिया , ST_Extent काम करेगा, लेकिन ध्यान रखें कि यह एक ज्यामिति वापस नहीं करता है, लेकिन ए 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;
मान लें कि gid तालिका की प्राथमिक कुंजी है
लेकिन ST_Envelope एक बेहतर काम करेगा जैसा कि @ Bugmenot123 ने टिप्पणियों में बताया है
SELECT ST_Envelope(geom) FROM your_table ;
ST_Envelope
फ़ंक्शन का उपयोग करने के लिए एक और संभावना है , जो एसआरआईडी के साथ एक ज्यामिति लौटाता है,
ST_Envelope - आपूर्ति की गई ज्यामिति के बाउंडिंग बॉक्स का प्रतिनिधित्व करने वाला एक ज्यामिति देता है
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
! हालांकि यह नहीं पूछा गया था।