While I was reading O’Reilly Radar, I noticed the article by Artur Bergman that discusses some of the developments at the iPhoneDevCamp over last weekend. The most interesting part of that article for me was the discussion of Safari’s handling of calls to Google Maps:
Most offensive is, however, Apple’s claim to integrate with Google Maps, which means Safari intercepts requests to “http://maps.google.com/” and sends them to the Google Maps application. No other high-end phone manufacturer even comes close to this level of arrogance.
I hadn’t thought about the Google Maps Widget integration in that way before, so I decided to test the iPhone’s behavior while trying to use my Google Maps Mashup RinkAtlas.com. RinkAtlas demonstrates the exact behavior on the iPhone that Artur is talking about. When you get to the point of generating directions to a hockey rink in RinkAtlas, we make a call to Google Maps and pass the two encoded endpoints. The iPhone redirects this request to the Google Maps Widget running locally.
I’m pleased to note that the Google Maps Widget handles all of the parameters passed correctly, including the ones where I spoof URI options to get around API calls that didn’t exist when I wrote that part of RinkAtlas. I’ll eventually (hopefully) get around to extending RinkAtlas to include the directions live on our site using the new Google Maps Directions API, but Artur’s analysis is absolutely correct.
I’m not as upset as Artur is about Safari redirecting calls to the Google Maps website, but I can see how this wouldn’t be ideal if the Google Map Widget ever fell behind in terms of its API support. I also know that Google talked extensively about how the ability to call specific versions of the Google Maps API was a feature that developers on the cutting edge should use. I think this approach has been undermined by Apple’s interception of calls to the Google Maps Website.