Simon Willison’s Weblog

Yahoo!’s new twist on mapping APIs

One of the most exciting things I’ve seen at Yahoo! since starting here has finally been made public: the new Yahoo Maps. The map application itself differs from many other recent map sites in being rendered entirely in Flash. This leaves far more scope for interface niceties, but doesn’t it reduce the scope for hacking that made things like Google Maps so much fun?

Not at all. The maps team have produced a set of APIs that should make any geo-hacker very happy indeed. Take a look at these, all launched today:

  • Flash-ActionScript API, for embedding maps in your Flash applications. When you think about the number of talented Flash developers out there for whom an Ajax toolkit is of little interest, the potential for innovation here is enormous. Not to mention that custom vector overlays of map information are far better suited to Flash than to JavaScript.
  • Flash-JavaScript API, for embedding Flash maps within normal pages and driving them from regular JavaScript. You can also drop custom Flash widgets and markers in to the page from this API just by providing the URL of a SWF file, which should allow ActionScript programmers to achieve virtually anything they can imagine.
  • Flex API, for adding maps to Flex applications. I’m don’t know too much about Flex (which is billed by Macromedia as an “enterprise” development tool), but the syntax example is pretty compelling: <yahoo:YahooMap id="myMap" width="550" height="400" zoomLevel="3" latitude="37.77159" longitude="-122.401714" />
  • Don’t like Flash? There’s an Ajax JavaScript API as well, no Flash required. Create pannable, zoomable maps, drive them from JavaScript and add custom markers to them.

That’s the core APIs relating to maps, but geo-hackers will be pleased to hear about some of the related API and API improvements that have also been rolled out:

  • A Geocoding API. Geocoding is when you take an address (or partial address) in text format and turn it in to a latitude/longitude point or set of possible matches.
  • A Map Image API, which gives you direct access to the tile servers. Specify a point or address and some dimensions and get back a custom generated map image. This means you can build a mapping application without any client side scripting at all, or alternatively roll your own panning/zooming code in any language or platform you can think of.
  • A new version of the Local Search Web Service, which now returns specific location information as a lat/long pair.
  • A traffic API, providing traffic alert information for the location you specify. Again, lat/long is included.

I think you’ll agree that this is all extremely exciting stuff. You can see some of the applications people have already built with it in the applications gallery. I’m sure there will be plenty more added over the next few weeks as creative people (especially Flash developers who haven’t had access to tools like this before) get their teeth in to the new APIs.

Before I get your hopes up too much though, there are a few significant features that are currently missing from the current set of mapping tools.

  • It’s US only at the moment. This really sucks for the rest of the world. Personally I’d love to see at least country outlines added as soon as possible.
  • No aerial photos or satellite images.
  • There’s a slightly odd restriction on using the APIs for “real time” applications. My guess is that this is related to the license under which the map data itself has been procured, to protect someone else’s business model. On further reading, it seems that the Google Maps API has the same restriction.

This is Yahoo!’s new twist on mapping APIs by Simon Willison, posted on 3rd November 2005.

Tagged , , ,

Next: Social engineering and Orange

Previous: Taking charge of your own destiny

Previously hosted at http://simon.incutio.com/archive/2005/11/03/maps