i am currently trying to figure out how the map services could be compared, or more precisely, how easy it would be to identify a common functional core of all (or most) services and then automatically translate map URIs. the goal is to translate a Google Maps URI into a Yahoo Maps URI and it still generates the same map. the functional core seems to be pretty small:
- coordinates: all services i found use WGS84 decimal coordinates. this is nice, because this means that no coordinate transformations are required.
- geocoding: all services perform geocoding, but some do it with pure strings (such as Google and Yahoo), while others require form-based data for street, city, zip, country (e.g., Mapquest).
- map types: all services support various map types, street maps and satellite images are supported everywhere (hybrid views and physical maps are available through some services as well).
- zooming: surprisingly, all services support a similar number of zoom levels, ranging from 19 to 14 levels. this seems to be a natural choice for a map service.
- overview: some services support little overview maps in one corner of the map, but only google seems to allow to control that feature by URI.
this seems to be the feature set that is supported across most services. i looked a bit closer at Ask Maps, Google Maps, Mapquest, Windows Live Maps, and Yahoo Maps. none of these services seems to have a published documentation of how URIs work, so they have to be reverse-engineered. i found a description of the google parameters, but that was all i could locate.
some services are consciously opaque. for example, generating a link for Map24 requires using a link assistant
, which basically is a small web form. this form generates a URI in a scrambled form, so that it is impossible to parse the URI or generate these URIs. map24 probably does this for a reason, but whenever i see something that really tries to be intransparent, i walk away.
while looking for more info about map service URIs, i found jumptomap.com. they do not parse existing URIs, but they allow the creation of service-independent URIs, which then offer a choice of map services. unfortunately, they try to be smart and do some geocoding themselves, but non-standard addresses such as south hall, berkeley ca
seem to be a bit too much for them (it works fine in google, but jumptomaps transforms it into 1-South-Ct--Berkeley--CA--94563--US, which is quite a bit away). too bad, because the idea really is nice, it lets users choose their map service, instead of locking them in to the service chosen by the link creator.
i am currently working on a first version of a translation table between map service URIs. the project is called MapMapper
and already has a project web site, which sometime soon should be more than just an empty directory...
Comments
You can follow this conversation by subscribing to the comment feed for this post.