Improving the Performance of Complex Features in ArcGIS Online

I have recently been moonlighting in Esri UK’s Technical Support, and many of the questions I responded to were regarding the performance of feature services in ArcGIS Online.

A feature service with very complex geometry (lots of wiggly bits!) can be very slow, as every time you pan/zoom the map all of the vertices need to be redrawn. I have been experimenting with a number of workflows to increase the performance of your ArcGIS Online feature services whilst maintaining the integrity of your data.

Workflow 1: Generalization

  1.  In Desktop search for “Generalize
  2. Select “Generalize (Editing)” from the generated list
  3. Using the wizard, generalize your features
  4. Try a number of different generalize tolerances
  5. Check how they look! You want to find the balance between maximum generalization and minimum data loss.
  6. Load into ArcGIS Online.

 Workflow 2: Visibility Thresholds (& Generalization)

  1.  In Desktop search for “Generalize
  2. Select “Generalize (Editing)” from the generated list
  3. Using the wizard, generalize your features
  4. This time, generalise your features to the maximum (maybe ~100m)! Having your data looking good when you are zoomed out is all you are concerned about
  5. Load this very generalized version into ArcGIS Online
  6. Load a non-generalized version into ArcGIS Online
  7. Create a new map and add both copies of your data; the very generalized and the not generalized
  8. Set up visibility thresholds for your layers. For the very generalized version, only make it visible at small to mid scale. For the non-generalized version, only make it visible when the user is zoomed quite far into the map. 

Now what you have are two layers, which should blend seamlessly when zoomed into. At the smaller scales, when all of the data is being drawn, you are only seeing the very generalized version so it is more performant, but because you are zoomed out the user can’t tell how generalized the data is! Then when the user zooms in, the very generalized layer will switch off and the non-generalized layer will switch on. As you are zoomed in, ArcGIS Online will not be drawing so many vertices so it will be more performant and you will still have the original level of detail.

Workflow 3: Tile Package

  1. In ArcGIS Desktop 10.1, ensure run-time tools are enabled; Customize -> ArcMap Options -> Enable ArcGIS Runtime Tools
  2. In Desktop,  create a Tile Package from your data; File -> Share -> Tile Package
  3. Create an appropriate cache of your data at the appropriate scale levels. Please pay attention to the size of the cache because it can be massive (terabytes) at large scales and those are not necessary).
  4. In Desktop, share your original feature layer (not generalized) as a feature service; Share -> Service -> Feature Access
  5. In ArcGIS Online, in the My Content page, upload your Tile Package; Add Item -> The Item is: On my Computer, ensure that the “Publish this file as a map service” check button is ticket
  6. Open your map service in a new map
  7. Click on your map service in the “Details” window in the map, click on the new item which appears below it
  8. Choose “Enable Pop-ups”.
  9. Select your original feature service from the list. This means that when you query your map service layer, you are really querying your original feature service but the layer will render much, much faster because it has been cached!

Hopefully these three workflows will be useful to anyone wishing in increase the performance of their maps being displayed in ArcGIS Online!