Status
automated voice on the Utility Service phone is creepily alive
Location
1055 N Nelson St, Arlington, VA
Subscribe to GeoRSS Subscribe to KML


Web

University Campus Maps?

Published in Geo, Maps, Metacarta


Why is it that most major universities maps are still relegated to the old scanned paper copy? Check out the beauty that is University of Michigan’s Campus map. It’s amazing that a major university still uses GIF images for their campus maps.

Now, they know what mapping is, check out their cool transit services. There is even a 3D Atlas of Ann Arbor in Google Earth.

It’s not hard to make this into a more usable dynamic map. I used the MetaCarta’s Map Rectifier to take the campus map image, rectify it using several control points (intersections and circles work great for this) and created a slippy campus map.

University of Michigan OpenLayers Map

You can play with the actual Campus Map here on MapSomething. The next steps would be searchable campus directory, click on buildings to get info on rooms, open times, phone numbers, a way to upload your schedule and have it plan out your route, etc.

Maybe I should send this on over to the School of Information or the Community Information Corps


Google GeoRSS & Open-Source map utilities

Published in Geo, GeoRSS, Google


I was gone for 5 days to the Ontario Curling Association’s Colts Provincial Playdowns, the top-tier competition after playing down against 130 other curling teams. We held our own, but the competition was very stiff.

It was a tough time to be away, a lot of amazing news came out. First and foremost is that Google adds support for GeoRSS. This is exciting news because it demonstrates the maturity and interest in the syndication of geographic content in blogs, CMS’s, sites, and news.

This will also add a little bit of more difficulty moving forward in GeoRSS. Now that a major company has added support, and assumedly a lot more developers will add support now as well, then the specification has to be much more cognizant of future changes, users, and upgrades. Before, the specification was really guided by the majority of developers using the standard itself. If some spec was changed, we all went out and updated our libraries. Now, however, we really need to denote versions, and how users can update their tools to accomodate both the new version and backwards compatibility.

On top of that exciting news, Google also open-sourced part of the GoogleMaps library. See the
gmaps-utility-library-dev FAQ. Currently this is limited to the GMarkerManager, but demonstrates their interest in opening the library up for interesting projects, ideas, and hacks.


Geo Twittering

Published in Geo, Mashup


The geowanking community has taken notice of the Twitter service. If you’re not aware, Twitter is a simple service to share what you’re doing. Twitter just lets you post a line of text, and you can do it via SMS, IM, their web interface, or any number of libraries that are popping up.

There are already two twitter-map mashups: TwitterMap, and GeoTwitter. GeoTwitter is a simple “red-dot” map, which parses a twitterer’s home location and plots that using Googlemaps XML.

TwitterMap is much more full featured. It actually polls the current public profile feed looking for “lat: lng:” specification of your current position, and then puts that on a full-frame map, with different colors depending on how long since you’ve updated. The problem is that Twitter has gotten very popular, and updates happen frequently. TwitterMap only polls the public list every so often, so there’s a 1 in 20 chance your post will actually be grabbed.

The developer, Patrick Kollitsch is hard at work on an updated version that should fix this issue and have more features to boot.

I definitely like the idea of showing a fading history of when the person last updated, or to see a trail of their travels. Also, seeing the user’s community of friends with lines linking them - especially if mixed into the history, so see as they come together and apart, would be very cool.

More to come on possible geocoding & picoformat ideas around Twitter, and like services (dodgeball, plazes, et al.)

Update (3/28/07): another TwitterMap has shown up that offers a very simple and effective interface. It also offers TwitterVision, which is a semi-realtime updating of twits as the show up and their location.


Web Mapping Standards - pah!

Published in Geo, Google


Marc at Geonames points out that Google has a request for feature requests their mapping API. He supports the ‘Compatibility with other map APIs‘.

I disagree. If a mapping API vendor is required to (or tries to) stay within an agreed upon ’standard’ API, then that could stifle features/innovation. They would have to all agree on a standard to, say, add polygonal overlays, or moving objects (e.g. tracking realtime position of other vehicles)

However, when this ‘abstraction of API’ is relegated to other projects (as he points out Mapstraction, OpenLayers, and MyMap do this, they don’t just attempt it) then each of them can decide if they are a minimal set implementation (only allow what all allow), or a maximum set, or somewhere in between.

What is better if they just support mapping using data format standards. They should all consume open/non-partisan standards such as GPX, GeoRSS, GML, etc. That way someone doesn’t necessarily need to know the entire API if they can just load and map their common data source.

Is there a way to vote for the anti-request. :)

cross-posted from comments on Geonames


Sunlight Datakit - Congress in your App

Published in Mashup, Programming, Ruby, Web


Sunlight Labs has released a public API, their Sunlight Datakit. It’s a straight-forward, simple API for getting access to their Civic data, like Congressional Representatives, zipcodes, timezones, and some geographic information.

There is some basic information about elected representatives that makes politico mashups easier: the ability to tie a name to a state, the district and zip codes that they represent, their office telephone number, and so on. We have put together a simple labs “datakit” that does this for us, drawing from several publicaly available data sources. We are making this fully available and have provided a fully documented API for the methods we have developed for those sources. Find out about the datakit here.

Of course, any API needs a nice little client to tie it into your applications. Here is my Ruby client. It’s very simple, because is uses the fallback method_missing to handle any function passed to the class. This also allows the class to be extended by implementing specific methods if more processing of the response is needed.

require 'open-uri'
require 'rexml/document'
require 'cgi'
SUNLIGHT_HOST = 'http://sunlightlabs.com/datakit/'

class Sunlight
  def self.method_missing(service_method, *args)
    params = args[0].collect {|k,v| CGI.escape(k.to_s) + '=' + CGI.escape(v.to_s)}.join('&')
    url = SUNLIGHT_HOST + service_method.to_s + "?" + params
    open(url).read.split("|")
  end
end

resp = Sunlight.getDistrictFromZip5({:zip => 20740})
puts resp.inspect
  # MD:5
  # MD:4

resp = Sunlight.getRepresentativeNameFromCityState({:city => 'Detroit', :state => "MI"})
puts resp.inspect
  # Kilpatrick, Carolyn C.
  # Conyers, John  Jr.
  # Levin, Sander M.
  # McCotter, Thaddeus G.
  # Dingell, John D.

The Sunlight Datakit currently offers the following functions. Check out the documentation for information on the parameters and returned values.

  • getDistrictFromZip5
  • getStateFromZip5
  • getDistrictFromZip9
  • getStateFromZip9.php
  • getRepresentativeNameFromDistrict
  • getRepresentativePhoneNumberFromDistrict
  • getRepresentativeRoomNumberFromDistrict
  • getCityFromZip5
  • getCityStateFromZip5
  • getLatitudeFromCityState
  • getLongitudeFromCityState
  • getZipCodesFromCityState
  • getTimezoneFromCityState
  • getRepresentativeNameFromCityState
  • getRepresentativeNameFromState
  • getStateAbbreviationFromStateName
  • getStateNameFromStateAbbreviation