मेरे पास एक डेटाबेस तालिका है जिसमें वर्तमान में एसआरआईडी 27700 (ब्रिटिश नेशनल ग्रिड) में ज्यामितीय डेटा है। डेटा को पुनर्प्राप्त करते समय मुझे इसे SRID 4326 (WGS84) में बदलने की आवश्यकता है। क्या मुझे परिणाम प्राप्त करने के लिए पोस्टजीआईएस में मिले ST_Transform जैसे फ़ंक्शन को लागू करने का कोई तरीका है?एक एसआरआईडी से दूसरे में एक ज्यामिति को ट्रांसफॉर्म/प्रोजेक्ट करें
नोट: समाधान को टी-एसक्यूएल और संग्रहीत प्रक्रियाओं आदि का उपयोग करके कार्यान्वित करने में सक्षम होना आवश्यक है। मुझे एक कथन बनाने में सक्षम होना चाहिए और बाद में पुनर्प्राप्ति के लिए स्ट्रिंग फ़ील्ड के रूप में इसे तालिका में सहेजना होगा। ऐसा इसलिए है क्योंकि मेरा समाधान डेटाबेस अज्ञेयवादी है।
select CLUSTER_ID,
NUM_POINTS,
FEATURE_PK,
A.CELL_CENTROID.SDO_POINT.X,
A.CELL_CENTROID.SDO_POINT.Y,
A.CLUSTER_CENTROID.SDO_POINT.X,
A.CLUSTER_CENTROID.SDO_POINT.Y,
TO_CHAR (A.CLUSTER_EXTENT.GET_WKT()),
TO_CHAR (A.CELL_GEOM.GET_WKT()),
A.CLUSTER_EXTENT.SDO_SRID
from (SELECT CLUSTER_ID,
NUM_POINTS,
FEATURE_PK,
SDO_CS.transform (CLUSTER_CENTROID, 4326) cluster_centroid,
CLUSTER_EXTENT,
SDO_CS.transform (CELL_CENTROID, 4326) cell_centroid,
CELL_GEOM FROM :0) a
where sdo_filter(A.CELL_GEOM,
SDO_CS.transform(mdsys.sdo_geometry(2003, :1, NULL, mdsys.sdo_elem_info_array(1,1003,3),mdsys.sdo_ordinate_array(:2, :3, :4, :5)),81989)) = 'TRUE'
PostgreSQL PostGIS का उपयोग कर में मैं इस तरह यह कर रहा हूँ:
select CLUSTER_ID,
NUM_POINTS,
FEATURE_PK, ST_X(a.CELL_CENTROID),
ST_Y(a.CELL_CENTROID),
ST_X(ST_TRANSFORM(a.CLUSTER_CENTROID, 4326)),
ST_Y(ST_TRANSFORM(a.CLUSTER_CENTROID, 4326)),
ST_AsText(a.CLUSTER_EXTENT),
ST_AsText(a.CELL_GEOM),
ST_SRID(a.CLUSTER_EXTENT)
FROM (SELECT CLUSTER_ID,
NUM_POINTS,
FEATURE_PK,
ST_TRANSFORM(ST_SetSRID(CLUSTER_CENTROID, 27700), 4326) cluster_centroid,
CLUSTER_EXTENT,
ST_TRANSFORM(ST_SetSRID(CELL_CENTROID, 27700), 4326) cell_centroid,
CELL_GEOM
from :0) AS a
where ST_Intersects(ST_Transform(ST_SetSRID(a.CELL_GEOM, 27700), :1), ST_Transform(ST_GeomFromText('POLYGON(('||:2||' '||:3||', '||:4||' '||:3||', '||:4||' '||:5||', '||:2||' '||:5||', '||:2||' '||:3||'))', 4326), :1))
हालांकि यह वर्तमान में मेरी स्थिति में अनचाहे है, लेकिन यह मेरी समस्या का सबसे अच्छा समाधान प्रतीत होता है जो मैं अब तक आया हूं और मैं इसे लागू करने में कोई समस्या नहीं देख सकता। इसे पोस्ट करने के लिए समय लेने के लिए धन्यवाद। मैंने आपको बक्षीस दिया है। – CSharpened
धन्यवाद, मेरे पास आगे देखने के लिए समय था, लेकिन लाइब्रेरी के सभी कार्यों को सीएलआर कार्यों के रूप में कार्यान्वित करना अच्छा होगा और इसे सॉर्ट करें ताकि यह 'सुरक्षित' पेस्मिशन के साथ स्थापित हो। –