Mostly, the performance of the dynamic layer depends on its ZoomGridList you use in your application. The optimal value for the Latitudes and Longitudes count depends on the viewport size of the map control and the min zoom level of the zoom grid.
I think that the dynamic layer will have best performance when the square size for request will be approximately equal to the viewport size (of course if you want to reduce a number of requests to the service, then you can use more large square size).
The count could be calculated using the following way:
1. For example the viewport size is 1024x1024.
2. The map size is 512x512 when the zoom level is 1, 1024x1024 for 2 and 2048x2048 for 3 etc. The map size is calculated as 2 ^ (zoom level + 8).
3. When the zoom level is 3, then the count could be calculated as 2048 / 1024 = 2. I.e. count is calculated as map size/ viewport size.
The dynamic layer adds/removes items dynamically. It works with squares which are calculated according to its ZoomGridList. When a square appears within the visible area of map then the dynamic layer adds its items onto the view. When a square gets out from visible area then the dynamic layer removes its items. During the panning a few squares can change its visibility. When squares contain a lot of points (1000 or more) then this process takes a long time.
I have attached a sample solution. It calculates the ZoomGridList values automatically according to the approach above. The example generates collection of 100000 random locations which is used in the ItemsRequest implementation to retrieve locations within the requested square.
I hope it helps.
the Telerik team
Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking
system and vote to affect the priority of the items