POST
|
No... I've not gotten any reduction in the processing time... it seems the implementation of the FeatureBuffer in java is not optimized, or it has not been implemented yet?
... View more
11-23-2014
07:02 PM
|
0
|
1
|
745
|
POST
|
Thank you! I tested flushing the cursor at different intervals without changes in the total time: int num = 0; JOptionPane.showMessageDialog(jPanel, coords.size()+" links to update"); for(LineInfo lineInfo:coords) { Coord cF = lineInfo.cF; Coord cT = lineInfo.cT; double fCost = cF.equals(c)?0:algo.getCost(cF); double tCost = cT.equals(c)?0:algo.getCost(cT); double cost = (fCost+tCost)/2; featureBuffer.setShapeByRef(lineInfo.p); featureBuffer.setValue(costIndex, cost); cursor.insertFeature(featureBuffer); if(++num%100==0) cursor.flush(); } cursor.flush(); Cleaner.release(cursor);
... View more
11-20-2014
10:03 PM
|
0
|
3
|
745
|
POST
|
Thank you for your help. Currently I'm deleting all the features and inserting them again using a feature buffer, like this: lines.deleteSearchedRows(null); IFeatureClass featureClass = lines.getFeatureClass(); IFeatureCursor cursor = featureClass.IFeatureClass_insert(true); int costIndex = featureClass.findField("Distance"); IFeatureBuffer featureBuffer = featureClass.createFeatureBuffer(); for(LineInfo lineInfo:coords) { Coord cF = lineInfo.cF; Coord cT = lineInfo.cT; double fCost = cF.equals(c)?0:algo.getCost(cF); double tCost = cT.equals(c)?0:algo.getCost(cT); double cost = (fCost+tCost)/2; featureBuffer.setShapeByRef(lineInfo.p); featureBuffer.setValue(costIndex, cost); cursor.insertFeature(featureBuffer); } cursor.flush(); Cleaner.release(cursor); Where "lines" is the Feature Layer. Do you see a problem with this code? should it be faster? Thank you again
... View more
11-16-2014
08:09 PM
|
0
|
5
|
745
|
POST
|
Dear ESRI developers, We are developing a simple AddIn for arcMap for the first time using arcObjects in java. The application consists basically on the following steps: Obtain a Network layer which was loaded in arcMap Construct a graph using the network layer to run graph algorithms on it Construct and add a different layer which shows one line for each edge of the graph When a new calculation is required by the user run the graph algorithm. Refresh graphically the lines of the new layer according to the graph algorithm results We are asking for your help because we have computation time problems with the step 5. There are more than 27000 lines or edges. To update the color of the lines representing edges we have tried the following strategies: Create a Feature layer with polylines, adding a new numerical field with values between 0-10. Assign a ClassBreaksRenderer to this layer. When the user requires a new calculation the numerical field must be updated (27000 updates) so the renderer will use a different color for the lines of the feature layer. Create a graphic layer with Line elements. Create a collection of Symbols (20 different colors from a ramp). When the user requires a new calculation a new symbol is assigned to the line Elements (27000 assignments) so they will be painted with new colors according to the calculation. The process A takes almost 3 minutes and the process B takes almost 2 minutes. This is without using any type of parallelization. Measuring the computation time for the method A the slow action is to update the rows of the FeatureClass (6 milliseconds per feature). I tried the update cursor and the search cursor with similar results. Measuring the computation time for the method B the slow action is to assign the symbol to the Line element (5 milliseconds per element). We think the problem is that there are many communications with the arcMap framework. So if you have any idea how this process can be speeded up it would be very helpful. We’d like this refreshing process can be performed as fast as possible… Maybe 10 seconds? Do you think it is possible? Thank you very much for your help.
... View more
11-10-2014
05:52 PM
|
0
|
7
|
3001
|
POST
|
Dear ESRI developers, We are developing a simple AddIn for arcMap for the first time using arcObjects in java. The application consists basically on the following steps: Obtain a Network layer which was loaded in arcMap Construct a graph using the network layer to run graph algorithms on it Construct and add a different layer which shows one line for each edge of the graph When a new calculation is required by the user run the graph algorithm. Refresh graphically the lines of the new layer according to the graph algorithm results We are asking for your help because we have computation time problems with the step 5. There are more than 27000 lines or edges. To update the color of the lines representing edges we have tried the following strategies: Create a Feature layer with polylines, adding a new numerical field with values between 0-10. Assign a ClassBreaksRenderer to this layer. When the user requires a new calculation the numerical field must be updated (27000 updates) so the renderer will use a different color for the lines of the feature layer. Create a graphic layer with Line elements. Create a collection of Symbols (20 different colors from a ramp). When the user requires a new calculation a new symbol is assigned to the line Elements (27000 assignments) so they will be painted with new colors according to the calculation. The process A takes almost 3 minutes and the process B takes almost 2 minutes. This is without using any type of parallelization. Measuring the computation time for the method A the slow action is to update the rows of the FeatureClass (6 milliseconds per feature). I tried the update cursor and the search cursor with similar results. Measuring the computation time for the method B the slow action is to assign the symbol to the Line element (5 milliseconds per element). We think the problem is that there are many communications with the arcMap framework. So if you have any idea how this process can be speeded up it would be very helpful. We’d like this refreshing process can be performed as fast as possible… Maybe 10 seconds? Do you think it is possible? Thank you very much for your help,
... View more
11-09-2014
07:59 PM
|
0
|
1
|
3207
|
Online Status |
Offline
|
Date Last Visited |
11-11-2020
02:23 AM
|