POST
|
Thanks for replying. Those links are helpful but what I am looking for is a way to do what those widgets do but with code and not by implementing their functions. Instead of using the commands in the Editor, I want to build editing commands. My interest is building these commands with some extra functionality. For example, when adding a polygon: If I add a polygon that intersects an existing polygon, I mean, there is a common intersection area, then I want to trim this intersection polygon off of the newly added polygon. Thanks for any help.
... View more
02-23-2012
10:27 AM
|
0
|
0
|
442
|
POST
|
I have a Silverlight application that I want it to consume a WCF service. I added a SL WCF service to the web application and it works fine but when I added a method with an argument of type Polygon, the web browser displays this message when viewing the service in the broser: Could not load file or assembly 'System.Runtime.Serialization, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e' or one of its dependencies. The system cannot find the file specified. When I remove the argument then the service works fine. I also noticed that the message includes this sentence: Could not load file or assembly 'System.Runtime.Serialization, Version=2.0.5.0 I verify the one is in the reference and it is v2.0.50727. Any ideas? Thanks in advance.
... View more
02-23-2012
10:15 AM
|
0
|
1
|
2004
|
POST
|
I want to add the capability of adding a polygon to a layer in an ArcGIS server Silverlight application. The only way I have found is using the editor toolkit. It has a command "ADD" that I can bind to an icon and it allows to draw a polygon on the map. What I want is to find out what commands this toolkit is based on and use them to send a set of points from another command or click event and get the polygon on the map through code. I have seen some solutions out there (honestly only one) that does that which is a proof that this is doable. Any suggestions? Thanks in advance.
... View more
02-16-2012
09:47 AM
|
0
|
6
|
3992
|
POST
|
I corrected a typo but still getting the same error after attempting to update using GP.Execute GeoProcessor GP = new GeoProcessor(); GP.AddToolbox("C:/ArcGIS/ArcToolbox/Toolboxes/Data Management Tools.tbx"); GP.SetEnvironmentValue("workspace", pWorkSpace.PathName.ToString()); // Generate the array of parameters. IVariantArray parameters = new VarArrayClass(); for (int f = 0; f < newFields.Count; f++) { //layerTable.AddField(newFields ); parameters.RemoveAll(); parameters.Add("SaltLakeCity_Sts.shp"); string fieldName = "FIELD_" + f; parameters.Add(fieldName); parameters.Add("TEXT"); GP.Execute("AddField_management", parameters,null); }
... View more
05-26-2010
10:26 AM
|
0
|
0
|
261
|
POST
|
I'm trying to add fields ussing this code: GeoProcessor GP = new GeoProcessor(); GP.AddToolbox("C:/ArcGIS/ArcToolbox/Toolboxes/Data Management Tools.tbx"); GP.SetEnvironmentValue("workspece", pWorkSpace.PathName.ToString()); // 1 // Generate the array of parameters. IVariantArray parameters = new VarArrayClass(); for (int f = 0; f < newFields.Count; f++) { parameters.RemoveAll(); parameters.Add(@"D:\SaltLakeCity_Sts.shp"); string fieldName = "FIELD_" + f; parameters.Add(fieldName); parameters.Add("TEXT"); GP.Execute("AddField_management", parameters, null); // 2 } I was getting this error after executing or attempting to execute line // 2 Error HRESULT E_FAIL has been returned from a call to a COM component. ESRI.ARCGIS.Geoprocessing when adding line // 1 to try to solve the problem, I got the same error message when the program tried to execute line // 1 Any ideas? I have not used the geoprocessor with arcobjects before (this is the first time). Thanks in advance for any help. Luis F. Penedo
... View more
05-26-2010
09:55 AM
|
0
|
2
|
2068
|
POST
|
The way they want this tool to behave is adding a copy of all fiends but each new field name will start with an "X" and then the field name. I'm starting to think that the way arcmap adds a field is making a copy of the data somewhere, then adds the fields and then it puts the data back. That would explain why the time is not very significant for small datasets (the problem is that the real ones are big). I am thinking making a copy of the layer, lets say, a temp layer, it would take about one or two minutes for big datasets. Then add the fields which will take a seconda adding all, and then move the data back to the original layer, delete de temp layer and the whole process would be around 3-4 minutes which is something more acceptable than 90 minutes. If you know another way, please let me know.
... View more
05-25-2010
04:31 AM
|
0
|
0
|
318
|
POST
|
private void btnOK_Click(object sender, EventArgs e) { //Once user hits OK then add duplicate fields to Layer if (editAttributeLayer != null) { try { //Field collection IFieldsEdit pFieldsEdit; //Get FeatureLayer IFeatureLayer pFeatureLayer = editAttributeLayer as IFeatureLayer; this.SetEditLayer = editAttributeLayer; //Get WorkSpace from FeatureLayer IDataset pDataSet = pFeatureLayer.FeatureClass as IDataset; IWorkspace pWorkSpace = pDataSet.Workspace; int numFields = pFeatureLayer.FeatureClass.Fields.FieldCount; for (int k = 0; k < numFields; k++) //for (int k = 0; k < 5; k++) { //Get the Field IField pField = pFeatureLayer.FeatureClass.Fields.get_Field(k); // Needs to process fields which name does not start with "X" only otherwise the program will keep on adding X fields string thisFieldName = pField.Name; bool startsWithX = thisFieldName.StartsWith("X"); bool endsWith_1 = thisFieldName.EndsWith("_1"); if (pField.Name != "FID" && pField.Name != "SHAPE" && pField.Name != "Shape" && pField.Name != "OBJECTID" && pField.Name != "CHANGE" && pField.Name != "REPO" && startsWithX == false && endsWith_1 == false) { //check whether field already exists before adding string fName = pField.Name.ToString(); string xName = "X" + fName; string thisField = ""; if (xName.Length > 10) thisField = xName.Substring(0, 10); else thisField = xName; if (FieldExits(thisField, pFeatureLayer) == false) { //Define Field properties IField pNewField = new FieldClass(); IFieldEdit pFieldEdit = pNewField as IFieldEdit; pFieldEdit.AliasName_2 = "X" + pField.AliasName.ToString(); pFieldEdit.Name_2 = "X" + pField.Name.ToString(); pFieldEdit.Type_2 = pField.Type; //Add field try { int theField = pFeatureLayer.FeatureClass.Fields.FindField("X" + pField.Name.ToString()); if (theField == -1) { pFeatureLayer.FeatureClass.AddField(pFieldEdit); } } catch (Exception ex) { MessageBox.Show("Field " + pFieldEdit.Name + " was not added due to an error (" + ex.Message + " )"); } } } }
... View more
05-21-2010
02:32 PM
|
0
|
0
|
318
|
POST
|
I'm trying to add fields to a layer attribute table using pFeatureLayer.FeatureClass.AddField(pFieldEdit) and it takes like two-three minutes per field. I try using layerTable.AddField(pFieldEdit) after converting the layer to an ILayer using ITable layerTable = (ITable)editAttributeLayer and still is very slow. It takes a fraction of a second doing the same operation in the attribute table of the layer directly. Somebody knows why it is to slow doing int using arc objects? or is there a trick to do it fast? I need to add 80+ fields to the layer and even one minute per field would be too long. Any ideas? Thanks in advance.
... View more
05-21-2010
12:07 PM
|
0
|
4
|
446
|
POST
|
from c# or java I would use this: http://sourceforge.net/projects/jexcelapi/files/
... View more
05-04-2010
05:10 AM
|
0
|
0
|
591
|
POST
|
Thanks! That made it. I don't know why I created a workspace when I already had the layer in the table of contents. Thank you very much again. Luis F. Penedo
... View more
04-29-2010
01:21 PM
|
0
|
0
|
298
|
POST
|
What I am getting is a layer with all features I want to copy right there (that is OK) but when I select one, all of them become selected like if they are a multi part feature. When I try to explode them with the arcmap advance editing tool, it is not able to do it. What is wrong?
... View more
04-29-2010
04:53 AM
|
0
|
0
|
298
|
POST
|
I'm using this code to copy polyline features from one layer to another one but the undisired results is a multipart features. What am I missing or doing wrong? public void selectOrphanFeatures(ILayer selLayer, string orphans) { if (selLayer != null) { //Get the MxDocument and Map if (pMxDoc == null) { pMxDoc = m_app.Document as IMxDocument; } if (pMap == null) { pMap = pMxDoc.FocusMap as IMap; } String[] linkPVIDs = orphans.Split(','); for (int p = 0; p<linkPVIDs.Length; p++) { // 5.10.2.18 ---- The orphaned PVIDs records are added to the fallout layer IFeatureClass featureClassOut = OpenFeatureClass(@"d:\", "FALLOUT LAYER"); if (featureClassOut == null) { throw new Exception("Cannot Open Output FeatureClass"); } IFeatureLayer featureLayer = selLayer as IFeatureLayer; IFeatureClass featureClass = featureLayer.FeatureClass; IWorkspaceFactory workspaceFactory = new ESRI.ArcGIS.DataSourcesFile.ShapefileWorkspaceFactoryClass(); IFeatureWorkspace pFWS = (IFeatureWorkspace)workspaceFactory.OpenFromFile(@"d:\", 0); IFeatureCursor featureCursorInsert = featureClassOut.Insert(true); IFeatureBuffer featureBufferInsert = featureClassOut.CreateFeatureBuffer(); IFeatureCursor featCursor = featureClass.Search(null, false); IFeature feature; while ((feature = (IFeature)featCursor.NextFeature()) != null) { if (linkPVIDs == feature.get_Value(feature.Fields.FindField("LINK_ID")).ToString()) { featureBufferInsert.Shape = feature.Shape; // Add all the original feature's fields to the feature buffer. AddFields(featureBufferInsert, feature); // Insert the feature into the cursor. featureCursorInsert.InsertFeature(featureBufferInsert); featureCursorInsert.Flush(); } } } } }
... View more
04-28-2010
04:56 AM
|
0
|
3
|
578
|
Online Status |
Offline
|
Date Last Visited |
11-11-2020
02:23 AM
|