ThinkGeo.com    |     Documentation    |     Premium Support

Plotting 1500 Points on Map

 I was playing around with the Map Suit Web Edition .Net Component and as a part of my trial I tried to plot around 1500 points (latitude and longitude) from database using InMemoryMarkerOverlay object on page load of my page. It took a long time to render and display the page when I ran it. It also threw an javascript pop up saying "the Sript on this page is running slow and may make the page unresponsive. Do you want to stop running the script?". Once it renders the map after a long time, the next hurdle was to zoom into the map. It took a while too. 


My question: Is there a better way to plot these many points from Database? 


Here is the code for plotting a point:


 


 


InMemoryMarkerOverlay marker = new InMemoryMarkerOverlay("marker" + index);


        marker.Features.Add(new Feature(longitude, latitude));


        marker.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;


        marker.ZoomLevelSet.ZoomLevel01.DefaultMarkerStyle.Popup.BorderWidth = 1;


        marker.ZoomLevelSet.ZoomLevel01.DefaultMarkerStyle.Popup.BorderColor = GeoColor.StandardColors.Black;


        marker.ZoomLevelSet.ZoomLevel01.DefaultMarkerStyle.Popup.BackgroundColor = GeoColor.StandardColors.LightBlue;


        marker.SuppressingGridSize = 50;


        Map1.CustomOverlays.Add(marker);


 


 



Some additional information:


I researched on the forum for some solution to my problem and saw a post which was suggesting doing SuppressingGridSize = 50;


I did it and seems like  it didn't help at all. 



I don’t know exactly your scenario but as a quick suggestion I am wondering why you are using an InMemoryMarkerOverlay to display 1500 points. That seems to me to be an overkill. Why don’t you use a regular InMemoryFeatureLayer if all you are doing is to plot lat/long points on your map? 
 I hope I am understanding well your requirements.

Hi Val,  
           Thanks for your reply. As I mentioned in my earlier posts, I was just trying to play around with the API and try to explore the available functions. I used InMemoryMarkerOverlay just because it was used in some of the samples.  If I have to talk about actual requirements. I will be tracking 300 trucks per day on the map and each truck will at least have a couple of thousand points to be plotted throughout the day. To plot such huge data, what object should I be using? Could you give me a sample which I can refer to? 
  
 Thanks 
 Ryan 
  
              
  

 


Ryan,
I think your requirement is very similar to one of our source kit “Vehicle Tracking”, maybe you are interested in it gis.thinkgeo.com/Products/Ex...fault.aspx . Just as Val suggested, the InMemoryFeatureLayer is a better choice than InMemoryMarkerOverlay if you just want to display the trace of the trucks. For each truck, I think you can use a LayerOverlay to host the truck and its trace. If you want to update one truck’s trace, you just need to update one layerOverlay. In this way, it will be more efficiently.
Any questions please let us know. Thanks.
Johnny

Ryan, 
  
   As to what Johnny said here are two links to demos of the Jump Start Kit.  The difference is that we have two projects, one that does most of the features on Ajax on the client side and another that is server side centric.  It’s a good way to start off your project and it can get you up and running quickly. 
  
 Client Side: 
 vehicletracking.thinkgeo.com/ajax/ 
  
 Server Side: 
 vehicletracking.thinkgeo.com/server/ 
  
 David