Technical Bulletin: Campaign Contribution Maps 2008

The 2008 campaign contribution maps for Councilmember Kasie Hildenbrand, Councilmember Kevin Hart, and Mayor Tim Sbranti on Dublin Townhall were produced using a combination of web services and desktop software, all of which are free. This article explains in detail how each map was created. The technique outlined here can be generally applied to any large-scale Google Map mashup project.
1. Campaign contribution data for the newly elected councilmembers and mayor were obtained from City Hall and entered into a simple database. Extensive time and effort were spent on reconciling the names and addresses of contributors who donated to multiple campaigns, so only a single database record is created for a given donor.
2. A Google spreadsheet with just two columns, one for “Names” and another for “Addresses”, was generated for each campaign. Published RSS feeds of the Google spreadsheets were fed into this Yahoo! Pipe to geocode the addresses. The results were saved as KML files. KML stands for Keyhole Markup Language, and it is an XML-based language schema for expressing geographic annotation and visualization.
3. KMLCSV Converter, a Windows desktop software, was used to convert the KML files into CSV files, so the latitude and longitude data for each address may be incoporated into the database.
4. A five-column Excel spreadsheet containing “Names”, “Descriptions”, “Latitude”, “Longitude”, and “Icons” was created for each campaign. The “Descriptions” column contains the concatenation of donation amount, occupation, employer, and full address of each contributor. This concatenation can contain HTML tags and is what Google Maps will display in the placemarker popup. The value of the “Icons” column can be an integer that maps to an icon in this table, a URL of an icon stored on a website, or the word “none”.
5. KML files were generated from the Excel spreadsheets using the Excel To KML web service and uploaded into Google Maps.
Related Articles
No related articles.












