We were using Bing maps to place pins on a map when a user loads a page.

The number of pins has grown significantly so we started to cluster the pins to reduce the load on the client. Now even clustering is placing too much load on the client.

I'm asking a general question of what to do next. It would seem that a server-side solution is required as expecting the client to do all of the processing with an ever-increasing (over 50000) number of pins seems to be a road to nowhere.

The website is written in ASP.Net Mvc. Can anyone point me in the right direction?


The Bing Maps client SDK can render large volumes of pushpins, however there are some limits. Pushpin rendering performance has been improving with each update, however it is limited to about 10,000 before there is a noticeable performance hit. There are a couple of ways to improve performance:

  • Disable vector labels on the map. Bing Maps V8 uses vector labels which have collision detection with pushpins such that the labels move or hide if a pushpin overlaps it. You can disable this and have the labels rendered directly on the map tiles for increased performance by setting the liteMode map option to true. Here is some info on vecto labels: https://msdn.microsoft.com/en-us/library/mt750538.aspx
  • The built in pushpin class has a lot of extra features which add some overhead. If you want to use the same pushpin icon for all pins, you can render 100,000+ pushpins on the client using a custom overlay. Here is a code sample: http://bingmapsv8samples.azurewebsites.net/#Canvas%20Layer

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.