I have a graphics layer and I'd like to add a graphic behind the existing graphics. I've come up with this:
graphicsLayer.add(overlay.graphic);
graphicsLayer.graphics.unshift(graphicsLayer.graphics.pop());
But I have to pan the markers off the screen and then pan them back into view before the 'unshift'-ed graphics display correctly. I've tried calling refresh without any affect:
graphicsLayer.refresh();
How can this be done without introducing a second graphics layer?
Best Answer
Graphics in a GraphicsLayer (as well as in a FeatureLayer) are dojx.gfx objects. Each Graphic has a getDojoShape method. This is the key to changing the drawing order of your graphics.
I put up a working example on jsfiddle: http://jsfiddle.net/fKwRn/
Click the map to add a point. The newest point is always added underneath the existing points.