Hierarchy or Order of Symbology in a layer

09-20-2019 01:17 PM
Status: Open
New Contributor II

Hierarchy or Order of Symbology in a layer is useful to reduce create multiple layers, improves the performance, reduce the data maintenance support,  present historical information on a map like layers. There are multiple uses for business and more business users will be happy with this capability in ArcMap, ArcGIS Online and  Portal for ArcGIS.


In ArcMap/ArcGIS Pro, it is already possible to control drawing order using What is symbol level drawing?—Help | ArcGIS Desktop / Symbol layer drawing—ArcGIS Pro | ArcGIS Desktop.

For the desktop part of the idea, can you explain how what you're requesting is different from symbol layer drawing?  We would need more details to even be able to understand what is being requested.



Thank you Kory for contact me on this, I would setup a meeting place if you

need more details. We have data in AGOL, the issue with the single

polygon/line layer we have different PV generation values approximately 6

values and the symbols defined on this layer using PV generation

attributes. In our data we have more than 2 PV generation values polygons

at same location, but users want to see the particular value of polygons on

top and remaining underneath of that based on the hierarchy of PV

generation values.



Kory Kramer    I would like to elaborate on this; It would be extremally useful to understand the way in which symbols within a layer (multiple values) are drawn by default - the main reason is drawing performance!  Using the Symbol Layer Drawing introduces an EXTREME performance penalty. The drawing performance functionality is only useful in cartographic applications where drawing performance isn't an issue. 

Where this becomes a problem is when publishing dynamic feature services to a Portal. The performance hit is so massive, the only known crude workaround is to split up the layer into multiple layers with definition queries and order them in the desired order within a layer group.  Unfortunately managing so many layers and potentially pop-ups becomes very cumbersome. 

If we knew what order symbols are drawn in Pro (without turning on the drawing order) we could potentially control this behaviour by creating a SQL View with a coded column (prefixed with a drawing order value) and then by adding this to the map drawing default drawing order would place the "coded" values in a specific order. However after running some tests I concluded that symbols are drawn in a random order and it the value in the attribute field is ignored. Ideally, if the default drawing order was the same order in which symbols are loaded into symbol classes pane - they are sorted in there, that would be best. Unfortunately, to force the symbols to actually draw in this order you have to turn the "drawing order" on - which, as I mentioned,  introduces a significant performance hit and depending on the number of symbols can slow things down exponentially. (from seconds to minutes)


Hi Jakub - there is an explanation in Symbol layer drawing—ArcGIS Pro | Documentation 

"Within each layer, the features draw in the order they are returned from the database. Even when a layer has more than one symbol class, such as different road types classified with unique values symbology, the features still draw in order regardless of their symbol class. (An exception to this is a layer drawn with proportional or graduated symbology, where features with larger symbols draw below those with smaller symbols.)"  

So you're ultimately asking to know (or control) the order that features are returned from the database I think.  If the above explanation doesn't help since you've said you have already done some testing, let me know and I can see if we can find out any more details about what affects the order features are returned from the database.


I would suggest that the rendering of features on map based on single or multiple fields using ascending or descending order, that would help us to manage symbology in order of display on map instead of creating multiple layers. In my case I have a polygon layer, at same location there are multiple polygons with different values and need to display in order of values changing every time. if you setup a meeting, I would like to demonstrate the examples working for one of the utility clients.