Directions Magazine has an excellent introduction to GeoJSON. Open source tools like OpenLayers, GDAL/OGR, GeoServer and FeatureServer already supports the GeoJSON draft specification.
On the map above (number of Internet users), all countries are wrapped in a FeatureCollection. Each country is represented by a Feature containing MultiPolygon geometry and parameters. By using GeoJSON you are basically transferring vector data directly to the client instead of map images. This has several advantages:
- You can do client side processing of the data. One example is reprojecting of the data in the browser.
- The thematic display classifications or colour range can be changed without interfering the server.
- Possible to create a richer user interface (i.e. mouseover effects).
- No need for advanced map server software.
- Fast. The vector boundaries only needs to be downloaded once in a session.
The bottleneck is the vector rendering in the browser. The map above is rendered using a vector layer in OpenLayers. Depending on your browser, the polygons are rendered using SVG or VML. OpenLayers had great difficulties rendering my original world borders dataset. This dataset consists of 3775 polygons. By deleting "small" islands, I was able to reduce the number of polygons to 463. I have also greatly simplified the country borders, and reduced the number of lat/long decimals to two. The map now loads within a few seconds, even though it's a bit "shaky" in Internet Explorer. It works, but I find the boundaries oversimplified and not very useful.
Conclusion: GeoJSON has a lot of potential, but is currently not suitable for world maps due to browser restrictions.
UPDATE 6 APRIL 2008: Read follow-up post on Technical Ramblings
Data source for Internet users: UNdata