AnsweredAssumed Answered

AddOverlay Performance

Question asked by krisculin on Sep 17, 2020
Latest reply on Oct 5, 2020 by krisculin

Hello,

We are in the process of porting our application from ArcMap to ArcGIS Pro. 

 

We have a need to dynamically embellish the map display.  We have several variations of this; we’ll do things like display a different symbol over a subset of point features, draw a thicker line over polylines/polygons, or add polygons to highlight a region around some features, etc.  The data we are using to determine the display is external to ArcGIS Pro.  These embellishments are often fairly short-lived.

 

In our ArcMap implementation we are making use of AfterDraw (AfterDraw event IActiveViewEvents_AfterDraw).  In ArcGIS Pro, we are trying to use Overlays.  The api’s appear to be fairly comparable and offer similar benefits: we can dynamically add/remove the “afterdraw/overlay” to the map pretty seamlessly, there is no impact on undo/redo, we have a good variety of options for displaying points/polylines/polygons.

 

The problem we are bumping into under ArcGIS Pro is related to performance when creating overlays.  As you can see from these timings, things get fairly slow at 5K overlays, and become unusable pretty quickly.

 

Number of Overlays

Create Overlay: ArcGIS Pro

Create AfterDraw:

ArcMap

1,000

0m 05s

 0m 1s

5,000

0m 26s

 0m 1s 

10,000

0m 50s

 0m 1s 

20,000

1m 31s

 0m 1s 

50,000

4m 23s

 0m 1s 

100,000

9m 02s

 0m 3s

550,000

~45 m

 0m 8s

 

The timing for 550k elements in ArcGIS Pro is an estimate.  Logically, 9 minutes at 100k will take approximately 45 minutes at 550k.  it is possible that it takes less or more than 45 minutes.  I just don't have the time to sit and wait until it finishes to find out for sure.

 

I've attached an ArcGIS Pro add-in showing the code I use to add the overlays to the map.  Perhaps someone can review to ensure we are not doing anything wrong.  Note: For this add-in I've only created point overlays, but we do make use of polylines and polygons as well.  Also note that for the add-in, the color is uniform across all points.  However, we have use cases where the color will be different so we cannot use a single pointSymbol/SymbolReference in all cases.

 

The add-in requires no geodatabase or external datasource.  It will simply create the overlays over any map you select.  I used the geographic center of the United States as the starting point.  We do not rely on 3D maps for our software so please use a 2D map when running the add-in.

 

TIA,

Kris

Attachments

Outcomes