क्या यह कुछ ऐसा है जो किया जा सकता है?
उदाहरण के लिए यदि मैंने नक्शे पर एक ओवरले बनाया है और इसे शेपफाइल के रूप में सहेजा है, तो मैं इसे जाना चाहता हूं और इसे संपादित करना चाहता हूं ( पहले से मौजूद फ़ाइल )।
आदर्श रूप से मैं एक नई आकृति बनाने और पुराने को हटाने से बचना चाहता हूं।
विचार?
संपादित करें 1: ठीक है, अब किसी ने कहा है कि यह किया जा सकता है। स्पष्ट सवाल यह है कि, आप आकार-निर्धारण को कैसे संपादित करें (ArcObjects में प्रो-व्याकरणिक रूप से)?
संपादन 2: टिप्पणियों को देखते हुए ऐसा प्रतीत होता है कि मुझे ऐसा कुछ करने की आवश्यकता है, लेकिन मुझे यकीन नहीं है।
मेरे पास वर्तमान में एक मूल आकृति है जिसे मैं C # में ArcObjects में संपादित करना चाहता हूं।
मैंने एक फ़ीचरक्लास, वर्कस्पेस बनाकर शेपफाइल बनाया है और फिर स्पष्ट रूप से मेरे आकार में गुजर रहा है। इस मामले में यह केवल एक सरल पॉलीलाइन है, जिसके कुछ बिंदु हैं। मैं जो करना चाहता हूं, वह इस शेपफाइल को अपडेट करने की क्षमता रखता है।
मैं मान रहा हूं कि मुझे उस फीचरक्लास, वर्कस्पेस को फिर से इस्तेमाल करने और नए आकार में पास करने की जरूरत है। हालांकि, मैं जो कर रहा हूं वह काम नहीं करता है। यह वह जगह है जहाँ मैं संपादन पर हूँ - कोई भी सलाह बहुत अच्छी होगी।
IWorkspaceEdit workspaceEdit = (IWorkspaceEdit)inWorkspace;
workspaceEdit.StartEditing(true);
workspaceEdit.StartEditOperation();
ComReleaser comReleaser = new ComReleaser();
IFeatureCursor featureCursor = inFeatureClass.Update(null , true);
IFeature feature = null;
while((feature = featureCursor.NextFeature()) != null)
{
int id = feature.Fields.FindField("shape");
IFeatureBuffer featureBuffer = inFeatureClass.CreateFeatureBuffer();
featureCursor.DeleteFeature(); //Delete the old
featureBuffer.Shape = (IGeometry)inShape;
featureCursor.InsertFeature(featureBuffer);
}
workspaceEdit.StopEdidtOperation();
workspaceEdit.StopEditing(true);
EDIT 3: अंतिम समाधान
featureCursor = inFeatureClass.Update(null ,true);
//DELETE old shape
featureCursor = inFeatureClass.Insert(true);
//Insert new
workspaceEdit.StopEditOperation();
workspaceEdit.StopEditing(true);