Well, I took a slightly different approach to this. It was just a fun exercise, but I display all my data (about 140,000 points) in Bing Maps using an HTML5 canvas.
I preloaded all the data to the client. Then I optimized the drawing process so much that I attached it to the "Viewchange" event (which constantly fires during the process of changing the view).
I wrote about this on my blog. You can check it out here .
There is no interaction in my example, but can be easily done (should be a good topic for a blog post). Thus, you must manually process the events and look for the corresponding points yourself or, if the number of points to draw and / or the zoom level was below a certain threshold, display the usual buttons.
Anyway, another option, if you are not limited to Bing Maps, is to use similar Leaflet . It allows you to create a canvas layer, which is a tile-based layer, but rendered on the client side using an HTML5 canvas. This opens up new possibilities. See, for example, this map in GisCloud .
Another option, although more suitable for static data, uses the UTFGrid method. The guys who developed it can explain it better than me, but it scales as many points as possible if you want with a phenomenal performance. It consists in the fact that you have a layer with your information and an accompanying json file with something like an ascii-art file that describes functions on tiles. Then, using a library called wax , it provides a complete mouse click, mouse click events on it without any impact on performance.
I am also blogging about this.
source share