Bing v8 Web Map Control Pushpins Update Performance RRS feed

  • Question

  • We are seeing performance problems in our map when using Bing Maps v8 control.  We have approximately 1500 pushpins with a variety of add, remove, and update/move at a rate of 10s per second.  In all browsers tested, this consumes a large amount of cpu and seems related to render updates for the pushpins.  In comparison, using the google map control or mapbox + leaflet uses anywhere from 5% to 50% of the cpu usage that the Bing Maps control does.  We did find that each of these maps perform differently under different browsers, but the bing map consistently performed poorly across browsers with regard to pushpin updates.  I've tested both release and experimental releases and would expect better performance than I'm currently seeing.

    What is the most efficient way to move a pushpin if needed?  What's the most efficient way to change the icon if needed?  I'm using setOptions and setLocation currently.  When I get an update I apply the update to the pushpin with the expectation that no change will be a no-op.  If that's a faulty assumption and I need to do my own check for change, how heavy is the cost to fetch the current information from the pushpin in comparison to fetching it from custom metadata on the pushpin?  Most of my changes are changes to the location or add/remove a pushpin.

    Wednesday, August 3, 2016 6:47 PM


  • Pushpin rendering performance in V8 is a work in progress. V8 renders data completely different for the other map controls you mentioned. Primarily it uses the HTML5 canvas rather than traditional DOM elements. This allows a lot more data to be rendered than in other map controls. However, in V8 we have introduced vector labels which hide and move such that they don't interfere with your pushpin data. This collision detection logic is likely part of the performance issue. More information on vector labels can be found here. You can disable the vector labels by setting the map option liteMode: true. This will provide some improvements, but won't be as good as it can be. We are working to improve this.

    Alternatively, if your pushpins are all the same I have a code sample that can easily render 60,000+ pushpin like objects on the map. This is uses the new Custom Overlay class which is currently in the experimental branch of V8 but will be in the main release branch within the next week. Send me an email at ricky_brundritt at and I will email over a draft copy of the code sample.

    [Blog] [twitter] [LinkedIn]

    Wednesday, August 3, 2016 11:15 PM