2012-08-29 6 views
6

का उपयोग कर पॉलीगॉन ज्यामिति अपडेट करें मेरे पास geofences नाम की एक तालिका है जो geometry नामक कॉलम में पॉलीगॉन प्रकार की ज्यामिति संग्रहीत करती है। मैं मौजूदा ज्यामिति से केवल एक बिंदु को हटाकर पॉलीगॉन को अपडेट करना चाहता हूं। इसके लिए मैं क्वेरी का इस्तेमाल किया है:पोस्टग्रेस्क्ल अद्यतन ST_removePoint

UPDATE gfe_geofences 
    SET geometry = ST_RemovePoint(geometry, ST_NPoints(ST_GeomFromText(
        'POINT(23.1446787840563 96.002746420167)', 0)) - 1) 
    WHERE is_active = true 
    AND ST_IsClosed(the_geom) = true; 

लेकिन यह मुझे त्रुटि देता है:

ERROR: lwline_deserialize: attempt to deserialize a line which is really a Invalid type

आप कृपया मुझे ज्यामिति को अद्यतन करने में मदद कर सकते हैं।

अग्रिम में धन्यवाद।

+0

PostGIS के किन संस्करणों के साथ काम करेंगे क्या 'ज्यामिति' एक लाइनस्ट्रिंग प्रकार है? 'The_geom' क्या है, या यह 'ज्यामिति' (या इसके विपरीत) के लिए एक टाइपो है? –

+0

पोस्टजीआईएस 9.1, कोई ज्यामिति पॉलीगॉन प्रकार का नहीं है, लाइनस्ट्रिंग ST_Remove फ़ाइल काम कर रहा है the_geom एक है कॉलम (इस स्थिति को अनदेखा करें और ST_IsClosed (the_geom) = true;) –

उत्तर

1

ST_RemovePoint केवल LineStrings (http://postgis.refractions.net/docs/ST_RemovePoint.html देखते हैं। मैं क्या करना होगा क्या, ST_Boundary का उपयोग अपने बहुभुज की सीमा प्राप्त करने के लिए, उस पर ST_RemovePoint कहते हैं, तो ST_MakePolygon का उपयोग एक नया बहुभुज के निर्माण के लिए।

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