Sunday, February 5, 2012

Fast display of data in a map

Recently the HTML5 bandwagon has gained a lot more traction, and I'm going to develop a prototype for a map with fast client-side drawing on top of it, using some of the goodies that HTML5 provides us.

The basic idea is:
  • Bing Maps or Leaflet mapping-wise
  • Html5 Canvas to draw the data (points, heatmaps, grids, whatever)
  • Html5 websockets to fetch the data
  • NodeJS to create an ultra-fast server to return the data to the client (without HTTP protocol overhead, just a plain TCP socket).
  • MongoDB to handle the data.
Also, I want to be able to handle thousands (if not millions) of coordinates at once.

There are some variants that I would like to try, particularly:
  • Fetch all data to client-side vs fetch only the visible data incrementally.
  • Use the Leaflet CanvasLayer vs a "manual" canvas on top of the bing maps div.
  • MongoDB spatial indexes
  • The server requests with/without throttling
  • Use Map/Reduce on MongoDB to minimize the data transfer / processing.
  • Fast algorithms to handle the data on javascript.

I'll soon write some posts on the subject.

No comments:

Post a Comment