Do GraphicsLayers use WebGL, or only FeatureLayers?

363
0
01-21-2019 10:00 AM
NathanSummers1
New Contributor III

My codebase currently uses 3 client-side/local-data FeatureLayers in anticipation of needing to draw Polygon, Polyline, and Point data.

However, I'm considering changing this to a single GraphicsLayer, which may give me future flexibility to differentiate and highlight certain data.

We're often dealing with 10,000 - 100,000 polygons, so performance is important (especially if it avoids us writing any clustering/aggregation routines).

I'd love to see a more definitive list of criteria to use when choosing between the two for client-side rendering.

4.10 docs:

Create a FeatureLayer with client side graphics | ArcGIS API for JavaScript 4.10 

The bottom of this page says GraphicsLayers do not support popupTemplates, but 

GraphicsLayer | API Reference | ArcGIS API for JavaScript 4.10 

suggests popupTemplates are supported.

The same GraphicsLayer page also states: "It is generally preferred to construct a FeatureLayer with its source property when working with client-side graphics since the FeatureLayer has more capabilities than the GraphicsLayer, including rendering, querying, and labeling."

FeatureLayer has more capabilities of 'rendering'?  Really?  Is this 'simpler out of the box' capabilities?  Surely people use GraphicsLayer becuase it has greater rendering capabilities?

Ultimately this line really looks like it's saying 'There's no reason to use a GraphicsLayer'.

Finally, all the articles and questions I can find announcing WebGL refer specifically to FeatureLayers.

If it's true that WebGL is not available on GraphicsLayers, what is the reason for that?

Is it to do with the optimisation of knowing there's only one symbol/renderer on a FeatureLayer?  Less WebGL context switching?

Ultimately, how can I tell if I should switch to GraphicsLayer?

The best resource (which I didnt see when I originally chose FeatureLayers) is on the Layers docs page:

Layer | API Reference | ArcGIS API for JavaScript 4.10 

it's a good summary, but I need that little bit more info!

Many thanks,

Nathan.

 

0 Replies