We are using the ESRI Silverlight API. All works OK ... until I try to scale the number of icons to display/render. We need to be able to scale to 1000's of icons on a map at the same time. Example ... there are 9300 trees for this project .... and lots of buildings, electrical lines, power lines, high pressure lines, manhole covers, etc. Often many displayed at same time.
I built a simple spike to compare the rendering of ESRI Graphics Layer vs basic Silverlight Canvas.
There are two buttons, POINT PictureMarkerSymbol POINT Image
Both randomly render TreeIcons (Points) to the map. The resources are defined as, <Grid.Resources> <esri:PictureMarkerSymbol x:Name="TreeSymbol" Source="xxxxx" /> <Image x:Name="TreeIcon" Source="xxxxx" /> </Grid.Resources>
The button labeled "POINT PictureMarkerSymbol" directly calls the "TreeSymbol" resource above for each tree icon. The button labeled "POINT Image" calls "TreeSymbol" once ... gets its source ... and uses the source to build new PictureMarkerSymbol instances ... one for each new tree icon to be displayed. They should do about the same thing ... and that appears to be the case.
The TextBox is where you can enter the number of trees to randomly display. Try 10 ... 100 .... 1000. It is 1000 that really "hangs" ... sometimes 20+ seconds to render.
You can enter 10000 enter the TextBox and hit the "Web Images" button ... and it renders fast.
SOOOOOOOOOOOOO .... are we doing something wrong in how we are coding the display of tree icons in the above very simple project??? Is this just an ESRI performance issue? Only thing we can think of now is to group 1000 into ten groups of 100 ... and display one group at a time ... certainly not something that we planned to do.