आप लंबे समय तक पुन: प्रक्षेपित करने के लिए डॉटस्पाटियल का उपयोग कर सकते हैं। आप शेपफ़ाइल में पढ़ रहे हैं, और इतना है कि प्रक्षेपण में जाना जाता है .prj फ़ाइल नहीं है, तो तुम सब करने की जरूरत है:
Shapefile sf = Shapefile.OpenFile("C:\myshapefile.shp");
sf.Reproject(DotSpatial.Projections.KnownCoordinateSystems.Geographic.World.WGS1984);
अगर, हालांकि .prj फ़ाइल याद आ रही है, तो आप करेंगे पहले की तरह प्रक्षेपण निर्धारित करने होंगे:
Shapefile sf = Shapefile.OpenFile("C:\myshapefile.shp");
sf.Projection = DotSpatial.Projections.KnownCoordinateSystems.Projected.UtmWgs1984.WGS1984UTMZone32N;
sf.Reproject(DotSpatial.Projections.KnownCoordinateSystems.Geographic.World.WGS1984);
लेकिन अगर, उदाहरण के लिए आप कोई शेपफ़ाइल की जरूरत नहीं है और तुम सिर्फ एक से दूसरे प्रक्षेपण से निर्देशांकों के एक सेट में पुनः प्रक्षेपित करना चाहते हैं, तो आप पुनः प्रक्षेपित उपयोगिता सीधे उपयोग कर सकते हैं :
// interleaved x and y values, so like x1, y1, x2, y2 etc.
double[] xy = new double[]{456874.625438354,5145767.7929015327};
// z values if any. Typically this is just 0.
double[] z = new double[]{0};
// Source projection information.
ProjectionInfo source = DotSpatial.Projections.KnownCoordinateSystems.Projected.UtmWgs1984.WGS1984UTMZone32N;
// Destination projection information.
ProjectionInfo dest = DotSpatial.Projections.KnownCoordinateSystems.Geographic.World.WGS1984;
// Call the projection utility.
DotSpatial.Projections.Reproject.ReprojectPoints(xy, z, source, dest, 0, 1);
यह अंतिम विधि इस तरह की एक सरणी का उपयोग करती है ताकि प्रक्षेपण मॉड्यूल डेटा मॉड्यूल के प्रत्यक्ष संदर्भ के बिना काम कर सके।
आपको पहले से ही लेट/लम्बाई मिलनी चाहिए, सुनिश्चित करें कि आप सही SRID और प्रक्षेपण निर्दिष्ट कर रहे हैं। – Habib
सहायता के लिए धन्यवाद। आकारफाइल (आकारफाइल.प्रोजेक्शन) प्रक्षेपण WGS_1984_UTM_Zone_32N है, मुझे लगता है कि निर्देशांक यूटीएम प्रारूप में हैं, क्या आपके पास कुछ रूपांतरण उदाहरण है? – iRubens
मुझे बताएं कि आप किस एपीआई का उपयोग कर रहे हैं और आप ड्रैग और ड्रॉप करने में सक्षम हैं? –