Looking at Freeway Ramps
The last year has seen an explosion in online mapping services that function like full-blown applications. While end-user functionality has flourished, the mapping itself has been pretty stagnant.
I find it interesting to look at how different services render freeway ramps in urban areas. Ramps are interesting for two reasons: 1) they curve a lot and 2) they often interact with other roadway elements. Perhaps there's even a third reason in there right now: they often look like crap.
That said, this will very much be a picture of how things stand right now. Tomorrow any of these players could come out with something looking a whole lot better. This is how things look today, on March 22, 2006.
A Little Background
My name is Eric Richardson, and I work for Cartifact, a custom mapping company in Los Angeles. My title is Lead Developer. I come from a tech background, but I've always enjoyed maps. Now I work with them, or at least with the code to display and manipulate them. Definitely check out our interactive map of Downtown L.A. if you're interested in what we do.
Drawing Ramps
In order to render accurate freeway ramps you need a couple things.
First, you need good geometry data. You either need bezier curves or you need really dense point samples. Otherwise you're going to get some sort of polygon instead of a circle (or whatever other shape you actually need). People notice that. It just doesn't look good.
Second, you need stacking information. That is, when two roads or ramps or whatever cross each other, which one's on top? Or are they both on the same level? Instinctually, we sort of have a picture of how we picture highways intersecting. If the rendering if off from that, it better be off in the direction of reality rather than in that of laziness.
All of the major players in online mapping these days are using data from Navteq. You can see that by the copyright information at the bottom of the screen. That would seem to imply that everyone has the same raw material to start with. Yet somehow they end up with very different results. The four examples below all show the intersection of the 10 freeway and the 110 freeway, just south of Downtown Los Angeles.
Windows Live Local
You can see my point about curve data pretty quickly here. The full image gives an even better example, but even in the thumbnail you can instantly see that Microsoft is rendering straight lines between pretty spaced out points in their ramps.
Even worse, though, what's up with the 10 (the east/west freeway)? It's fully stair-stepped. MS is using really poor point data and making no attempt to correct or round it.
Stylistically, MS cuts the borders off their lines anywhere two lines intersect, whether there is a physical connection there or not. This can deceive the viewer into thinking roads connect to freeways where they actually don't. It also just looks a little odd where for instance the ramp color runs across Venice with no borders.
Verdict: Horrible.
Yahoo
Immediately you notice that Yahoo's ramp curves are smooth compared to the MS ones. That's a normal feature, not an exceptional one, though you might not know it using only the MS maps as reference.
Yahoo does the same as MS with regard to removing borders, though their color scheme makes in work slightly better, in my opinion.
You might not notice it at first since the border removal makes intersecting ramps appear to be on the same level, but Yahoo is using some sort of stacking data. Ramps appear under some freeways and over others. This gives rise to a bit of ugliness, though, where one ramp ends in the middle of a freeway line instead of blending into its edge. Yuck. Stacking information also gets lost where highways cross thanks to the same border removal.
Verdict: Eh, not awful.
Ask.com
Ask's map is Yahoo's map with thicker lines.
Somehow all of Ask's stuff looks jagged to me. I feel like they turned all anti-aliasing off for their render. Those freeway shields are ugly.
In the same vein, Ask does an interesting thing with putting a texture into their parks (not represented in the linked map, but you can see it here). Interesting idea, but they choose an awful texture that doesn't even tile properly and is way too harsh. That sort of sums up my thoughts on their maps: interesting, but harsh.
Verdict: Came to the game late, brought nothing good to map rendering.
Google bucks all of the above trends. First, the implement stacking order while keeping borders on the line elements, giving the viewer a visual idea of what's on top based on what cuts across what.
Yet they still manage to take out borders at intersection points where two lines actually do connect. That's a pretty impressive feat, and the trouble of doing it is likely why the others remove borders any time two lines touch (perhaps by just rendering all borders below all line innards).
Google also visually distinguishes between ramps that connect highways together and entrance/exit ramps. The former stays the same color and weight as the highway elements, while the latter is lighter in both color and weight. That's a nice visual touch, though I don't care for their orange highways in general.
Verdict: Nowhere near hand-drawn, but definitely getting there.
Conclusion
No application is really drawing nice ramps yet, but the smarts you can see in Google's maps show that the data has the potential to support some nice visuals. Having played with doing this sort of thing in an application for work I can tell you that it's no easy task. The data may be there, but it's not straight-forward.
Someday I would imagine that the shapefiles for these highways will be in 3d and it'll be possible to do a fully dimensioned render and style a 2d view appropriately. Then these things will really look nice. Well before then someone's going to come out with something that looks really nice in all but the corner cases, though. The programmers working on this stuff are too clever not to.
Right now, though, for a really nice map you're going to have to have one drawn by hand.
