Yesterday and today I built a working GeoJSON tiler using node.js, connect, polymaps.js, postgis, and some elbow grease. It is up and running on my development server, and I will be pushing up the building blocks to github when I clean them up a little bit.
One thing that was completely stumping me was that I was trying to use polymaps together with a jsonp service. For some reason I don’t yet understand, that did not work. Admittedly, my jsonp connection was a hack using the jQuery ajax call. It worked for most of the tiles, but consistently certain tiles on the map refused to display, even though I was certain those tiles had valid GeoJSON information in them. With the exact same code and servers, but served from the same domain, the tiles loaded great. I guess I will have to dig into the alternative to jsonp that the polymaps documentation recommends.
My current working implementation lives at http://lysithia.its.uci.edu/map/index.html. It may not live there for very long, as I need that server for other things. It only contains highway data for California, data that we pulled from OpenStreetMap data and massaged into lines. It only has California as our lab is California Traffic Management Labs, not World or US traffic management labs!
All in all, I’m pretty happy with how tiling on the fly works, and with how modern browsers and computers can handle lots of json data to render and manipulate in a slippy map. Not too long ago similar quantities of data would have thrown off one of those “a script on the page is taking too long …” type of errors.