ST_Extent से बाउंडिंग बॉक्स के कोनों को कैसे पुनः प्राप्त करें?


16

क्या एसटी_एक्जेंट से प्राप्त बाउंडिंग बॉक्स के कोनों के लंबे / लंबे हिस्से को लाने का कोई तरीका है?

select ST_Extent(geom) from tableName;

जवाबों:


25

ST_Extent से xmin, ymin, xmax, ymax (नीचे बाएं, ऊपरी दाएं दिशा-निर्देशों) से बना एक बॉक्स मिलता है:

osm=# select st_extent(way) from planet_osm_point;
                            st_extent                                
-------------------------------------------------------------------------
 BOX(2259828.73261444 5412478.55751597,3301031.7673783 6147766.43413396)

नीचे बाईं ओर स्थित बिंदु को पुनः प्राप्त करने के लिए, आप नीचे बायें X समन्वय (st_xmin) और नीचे बाएँ Y समन्वय (st_ymin) से बना बिंदु बना सकते हैं, उदा:

osm=# select st_astext(st_makepoint(st_xmin(st_extent(way)), st_ymin(st_extent(way)))) 
      from planet_osm_point;
            st_astext                 
------------------------------------------
 POINT(2259828.73261444 5412478.55751597)

ध्यान दें कि चूंकि st_extent एक बाउंडिंग बॉक्स लौटाता है, इसलिए यह आपकी ज्यामिति के SRID से दूर होता है, इसलिए आप इसे अपने नए बनाए गए बिंदु से जोड़ना चाहते हैं (मैं अपने OSM डेटा के SRID से मिलान करने के लिए 900913 का उपयोग कर रहा हूं):

osm=# select st_asewkt(st_setsrid(st_makepoint(st_xmin(st_extent(way)), st_ymin(st_extent(way))), 900913)) 
      from planet_osm_point;
            st_astext                 
------------------------------------------
 SRID=900913;POINT(2259828.73261444 5412478.55751597)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.