PostGIS में ज्यामिति SRID के साथ समस्या


11

मैंने PostGIS में अपनी तालिका (वहन) को उद्धृत किया

id_borne serial NOT NULL,
  num_borne character varying,
  shape_borne geometry

मैंने अपनी तालिका का SRID सफलतापूर्वक उपयोग करके बदल दिया

select UpdateGeometrySRID('public', 'borne', 'shape_borne', 26191) ;

पुराना SRID 0 था।

समस्या यह है कि जब मैं अपनी तालिका में एक नया तत्व जोड़ने का प्रयास करता borneहूं तो मुझे यह संदेश त्रुटि है:

geometry srid (0) does not match column srid (26191)

यहां छवि विवरण दर्ज करें

यही मेरी समस्या है! SRID अपडेट किया गया है, लेकिन जब मैं एक नया बिंदु जोड़ने की कोशिश करता हूं, तो मुझे यह संदेश मिलता है।


2
सुनिश्चित करें कि आप अपने डेटा को एक SRID देते हैं जो इसे सम्मिलित करने का प्रयास करने से पहले तालिका से मेल खाता है।
इयान टर्टन

मुझे समझ में नहीं आता, मेरे डेटा की श्रीड मेरी टेबल की श्रीड है! यह वही है, नहीं?
याहिया एल हदद

1
क्या आप हमें अपना एक स्टेटमेंट दिखा सकते हैं?
इयान Turton

इस तरह: INSERT INTO वहन (num_borne, shape_borne) VALUES (1, POINT (25800, 256000));
याहिया एल हददाद

1
ज्यामिति आपके सम्मिलित कथन में एक सार नहीं है। वह त्रुटि का कारण है
देवदत्त तेंगशे

जवाबों:


14

क्या हो रहा है कि आप जिस डेटा को डालने की कोशिश कर रहे हैं, उसमें एसआरआईडी असाइन नहीं है। एक असाइन करने के लिए, अपने सम्मिलित विवरण में ST_SetSRID () के साथ सम्मिलित ज्यामिति को लपेटने का प्रयास करें। उदाहरण के लिए,

INSERT INTO public.borne (num_borne, shape_borne) 
    (SELECT num_borne, ST_SetSRID(shape_borne, 26191)
     FROM public.sometable);

या

INSERT INTO public.borne (num_borne, shape_borne) 
VALUES (1, ST_SetSRID(ST_MakePoint(25800 , 256000), 26191));

मेरे पास कुछ टेबल नहीं है
याहिया एल हद्दाद

अपने उपयोग के मामले को शामिल करने के लिए अद्यतन किया गया।
MakinFlippyFloppy

काम नहीं किया !
याहिया एल हदद

त्रुटि संदेश क्या है? इसके अलावा, दौड़ने select find_srid('public', 'borne', 'shape_borne');का प्रयास करें : यह सुनिश्चित करने के लिए कि वास्तव में श्रीड मैदान पर सेट है।
MakinFlippyFloppy

यह ठीक है! यह INSERT INTO public.borne (num_borne, shape_borne) VALUES (1, ST_SetSRID (ST_MakePoint (25800, 256000), 26191)) का उपयोग करके काम कर रहा है; इस तालिका में जोड़ने के लिए ST_SetSRID (ST_MakePoint (...) का उपयोग करना अनिवार्य है; मेरी अन्य तालिका (पार्सल) के लिए यह छूट के लिए एक सामान्य अनुरोध के साथ भटक रहा है: INSERT INTO पार्सल (num_parcelle, आकार) VALUES (1, POLYGON () 0 0, 1 0, 1 1, 0 1, 0 0)));
याहिया एल हदद

6

यदि आप एक ज्यामिति के WKT को pgAdmin III में टाइप कर रहे हैं, तो आपको EWKT सिंटैक्स का उपयोग करके SRID को निर्दिष्ट करने की आवश्यकता है, अन्यथा यह 0 से चूक जाता है।

इसे pgAdmin III के ज्यामिति क्षेत्र में टाइप करें:

SRID=26191;POINT(25800 256000)

अन्यथा, @MakinFlippyFloppy में ST_SetSRID का उपयोग करके सही SQL तरीका है।


0

मैं नीचे दिए गए लिंक की मदद से आपकी मदद कर सकता हूँ, नीचे पेज देखें ::

http://postgis.org/docs/UpdateGeometrySRID.html


मैं पहले से ही इस फ़ंक्शन के साथ काम करता हूं!
याहिया एल हदद
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.