Hello,
I need to represent 1000 lat/lon points on our map. We have objects that that hold the data for each point. The points need to be represented as circles of various diameters, filled in with various colors, and have an outline of various colors and various widths, all dictated by the data.
Right now I am creating a PointShape for the lat/lon, then creating an EllipseShape using the PointShape, and the required circle width. I am then creating a new InMemoryFeatureLayer, and adding the EllipseShape to its InternalFeatures. I then set the layer's DefaultAreaStyle.FillSolidBrush.Color, DefaultAreaStyle.OutlinePen.Color, and DefaultAreaStyle.OutlinePen.Width based on the data for the point, and add the InMemoryFeatureLayer to a LayerOverlay.
The problem comes when the map draws this LayerOverlay. It takes quite a long time, upwards of 15 seconds to show up. This delay is also apparent every time the map is moved or scaled. I imagine that is due to the fact that each point/ellipse is in a layer of its own, and not features within a single layer. The need to draw them with different color combinations and outline pen widths seems to necessitate the multiple layers.
What is the best way for me to get this on screen with a faster draw rate? Can I somehow use columns, or is there another solution? I am considereing creating a new InMemoryFeatureLayer whenever a new fill color/outline pen color/outline pen width is encountered, and making sure each ellipse gets put into that corresponding layer. That should reduce the amount of InMemoryFeatureLayers greatly.
Any thoughts would be helpful
Thanks,
Dib