ThinkGeo.com    |     Documentation    |     Premium Support

Best way to add large numbers of markers 50k or more?

 I cannot seem to find a good example of a way to do this best. I know that SimpleMarkerOverlay will not work with this.  From what I have read seems like InMemoryMarkerOverlay is the way to go but it is very very slow loading this number of markers.


So is there a more efficent way to load this many markers on a map or do I need to go down a different path?


Thank,


  - Josh



Hello Josh, 
  
 Thanks for your post, there is a solution for your problem, you can add the markers to high zoomlevel to prevent load all markers at the beginning. 
  
 For example, zoomlevel1-10, show your inmemoryfeaturelayer, and zoomlevel 11-20 show your markers, just make sure at the first time of map load, doesn’t load the zoomlevel of your markers exist. 
  
 Please feel free to let us know your problems. 
  
 Regards, 
  
 Gary

 I know you are probably a busy person do you have any examples of this floating around here somewhere I may look at?


Thanks,


  - Josh



 Hello Josh,


 
Thanks for your understanding, I don't have time to do a complete sample for you, but here is some code you can see:

                InMemoryMarkerOverlay markerOverlay = new InMemoryMarkerOverlay();
                Marker marker = new Marker(-118, 30);
                marker.WebImage = new WebImage("../../theme/default/samplepic/circle.png");
                markerOverlay.Features.Add("Feature1", new Feature(-118, 30));
                markerOverlay.ZoomLevelSet.ZoomLevel11.DefaultMarkerStyle.WebImage.ImageWidth = 21;
                markerOverlay.ZoomLevelSet.ZoomLevel11.DefaultMarkerStyle.WebImage.ImageHeight = 25;
                markerOverlay.ZoomLevelSet.ZoomLevel11.DefaultMarkerStyle.WebImage.ImageOffsetX = -10.5f;
                markerOverlay.ZoomLevelSet.ZoomLevel11.DefaultMarkerStyle.WebImage.ImageOffsetY = -25f;
                markerOverlay.ZoomLevelSet.ZoomLevel11.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;

 
Then you just need to make sure your Map.CurrentExtent is not in the zoomlevel 11-20, otherwise ,improve your zoomlevel to 15-20 etc.
 
Regards,
 
Gary

 Gary,


  Thanks for the help that does help a bit I also found the "SuppressingGridSize" call and that seems to help a bunch too.


The map now pans and zooms fairly fast, my popups are working. Now to get dragging working as I had to switch from SimpleMarkerOverlay and get the inital calls from the database optimized and running a bit faster.


Thanks,


 - Josh



Hello Josh, 
  
 I’m glad it’s working now, and thanks for share your experience, please feel free to let us know your problems any time. 
  
 Regards, 
  
 Gary