2012-12-11 12 views
12

मुझे एक कॉलम मिला (latlon) जो ST_MultiPolygon है।क्या मैं जांच सकता हूं कि मल्टीप्लिगॉन में पोस्टजीआईएस में बिंदु है या नहीं?

अन्य ज्यामिति एक बिंदु है जिसे मैं सिर्फ यह देखना चाहता हूं कि यह मेरे मल्टीपोलिगन्स में से एक के अंदर है या नहीं।

मैंने कोशिश की:

SELECT ST_CONTAINS(latlon, ST_GeometryFromText('POINT(48.208417 16.372472)') 
FROM districts 

यह हमेशा झूठे रिटर्न; मैं ST_Contains के साथ एक मल्टीप्लिगॉन के भीतर एक बिंदु क्यों जांच सकता हूं?

उत्तर

15

इसे इस तरह से काम किया:

SELECT name, st_contains(latlon, ST_GeomFromText('POINT(16.391944 48.218056)', 4326)) FROM bezirks 
+0

इसके अलावा, आप बी ज्यामिति निर्दिष्ट करने के लिए उप क्वेरी का उपयोग कर सकते हैं। चयन नाम, ST_Contains (latLon, (बी से चुनें geom आईडी = 3)) bezirks से – DirtyBirdNJ

2

st_contains बहु geometries के साथ काम करता है। आपको यह सुनिश्चित करना होगा कि बिंदु बहुभुज ज्यामिति के समान समन्वय तंत्र पर है।

आपको यह भी पता होना चाहिए कि यदि बिंदु आपके मल्टीप्लिगॉन की सीमा में आता है तो इसे निहित नहीं माना जाएगा। पॉलीगॉन ज्यामिति के अंदर कोई बिंदु नहीं होने के कारण इस मामले में यह झूठी वापसी करेगा।

संबंधित मुद्दे

 संबंधित मुद्दे