The solution was to combine Esri’s ArcGIS API for Silverlight with the Farseer Physics Engine. The Physics Engine allows symbols to be repositioned around the map without obscuring or overlapping other symbols. To prevent symbols from drifting off the map, a spring was attached to each symbol and to their respective state/country/blockgroup.
Use the table of contents on the left hand side of the application to toggle between demographic themes. The slider at the bottom of the table of contents will exaggerate the size of the dots on the map. Detailed information is displayed when the mouse is placed directly over a dot as pictured above. If a state dot is clicked, the map will display county demographic information for that state. Similarly, clicking on a county dot will reveal blockgroup data.
The live application can be accessed here.
The source code can be downloaded from here.
In summary, this Silverlight-based web application uses a open-source physics engine to reposition proportional symbols in a thematic map. The collision detection and mechanics of the physics engine allows us to preserve the symbol size and shape. In some applications this technique may be a good alternative to cartograms.
Contributed by Richie C.