ThinkGeo.com    |     Documentation    |     Premium Support

How to add Images for InmemoryMarker overlay Features

InMemoryMarkerOverlay    markerOverlay = new InMemoryMarkerOverlay();


For(i=0;i<Dt.Rows.Count;i++)//her Dt rows count is 5000


{


                     if (pplong != 0 && pplat != 0)


                        {
                            string name = Convert.ToString(Dttt.Rows["ImageName"].ToString());
                         
                            Feature vehicle = new Feature(pplong, pplat, pid);
                                  markerOverlay.Features.Add(vehicle);   
                            }
}
 Map1.CustomOverlays.Add(markers);
How to assign Different image for every marker.i Have 5000 markers .i need to add 5000 Different  images on the map.how to add this all images on Map

 


 Hi raja,
Actually, I don’t recommend you loading more than 5000 markers with more than 5000 different images in the map using MarkerOverlay. Just as you know,  we generate the information of the MarkerOverlay, such as each marker’s position, marker’s icon, offset and others, on server side, and then send these information in JSON format to client side to create the HTML DOM elements (a DIV containing an image representing the marker), but the page will becomes really slow if we load a huge number of DOM elements. Additionally, loading more than 5000 image for one time will consume lots of internet speed, it will also cause the application loading slower.
I my opinion, here are some hints which might be helpful for you:
1.       Load all these markers in InMemoryFeatureLayer , and showing these different icons using PointStyle. Ideally, we can create a CustomPointStyle inherited from PointStyle, and overwrite the DrawCore() method.
2.       Still loading these points and icons using MarkerOverlay, but do some optimization, just shown as following:
a.       Using ClusterMarkerStyle to filter the overlapped markers to improve the performance
b.      Create a CustomPointMarkerStyle which is inherited from PointMarkerStyle, and then overwrite the method “GetMarkers()” method, in which, we can apply different images based on the column values of the feature which contains the coordinates and attributes of the marker.
c.       Maybe you can try ValueMarkerStyle and ClassBreakMarkerStyle, here is a demo for showing ValueStyle wiki.thinkgeo.com/wiki/File:ServicesEditionSample_ValueStyleWithCountries_CS_100123.zip
And more details on ClassBreakStyle, please check at wiki.thinkgeo.com/wiki/ThinkGeo.MapSuite.Core.ClassBreakStyle
 
Thanks,
Johnny