Today's 500 word post was just eaten by the Blogger spell-checker. I'm going to attempt to retrieve it, but it isn't looking good. The topic of the post was some major improvements I've made to the code base that make it much more generic and support two new features:
- Exclusions are now handled - if a polygon has an exclusion listed in the Census shape file, this is now handled. This turns out to be quite important for some areas. I'm working on a map of Washington state at the Block Group level and it turns out that in the rural parts of the state there are a couple of small towns that have a single Block Group surrounding the town and then separate, smaller Block Groups for the town itself. Before, these smaller Block Groups might have been covered up.
- A geography made up of multiple polygons now acts as one object in the KMZ output file.
In addition, I've made a number of enhancements under the hood. While I had been using some object-orientation before, I finally made the classes much more complete and generic so that it is much easier to add new geographies. For example, I created the
Polygonobject which encapsulates all of the information for a given polygon in one container:
attr_reader :id, :centerLon, :centerLat, :mainCoords, :exCoords
attr_writer :id, :centerLon, :centerLat
def initialize(id, centerLon, centerLat)
@id = id
@centerLon = centerLon
@centerLat = centerLat
@mainCoords = Array.new()
@exCoords = Array.new()
With these improvements, I hope to have some maps to share soon. When I am once again inspired, I will share a lot more detail about the process and recent improvements.