Monday, June 6, 2011

MapQuest Open Map rendering problems in the USA

Well, you guys are probably wondering wondering why I'm writing this blog post. Well, I just felt like it because I'm active in the OSM community and I do want to see the data rendered properly if at all possible.

Anyways, here's are some of the major glaring rendering problems that I've noticed here on the USA map (http://open.mapquest.com/), in no particular order:
  1. Highway multiplex problems – This is personally one of my major annoyances of how MapQuest renders the data. They rely on the “ref=*” tags of the ways and this most of the time leads to no shields rendered at all. Sometimes it leads to having refs rendered with the incorrect highway shields. Either of those are really annoying. Here are some major examples of “rendering gone wrong”:
    1A. http://open.mapquest.com/link/7-cvFnPFj0 – While the highway name is shown (Penn-Lincoln Parkway West), it would also be helpful to show the highway shields that are on the highway. Right there, the “ref” tags are properly tagged (ref=I 376;US 22;US 30) in the OSM data. This also happens on all of I-99 because it's multiplexed with US-220 (ref=I 99;US 220) and also with US-322 for a segment (shows both areas: http://open.mapquest.com/link/3-jwvqATUu).
    1B. MapQuest renders Florida State Route A1A as just “1A”. Of course, pretty much all of Florida lacks the state tag in the ref's (not MapQuest's fault, it's the OSM data), still, it shouldn't always take the first or second letter away. Should only do that if it matches on of the state abbreviations, “US”, or “I” on the USA map. http://open.mapquest.com/link/2-tIvbuHFl (ref tag in OSM is “A1A”)
    1C. Here, two US highways mutliplex for awhile. However, they are rendered like they are State Highways instead of US Highways when they are tagged correctly in OSM data (ref=US 22;US 119): http://open.mapquest.com/link/4-gXaMRVED US-22 and US-119 should get separate shields here since there is enough space for it. Anyways, there are several other areas out there that you can see the same thing happening along US Highway multiplexes.
    1D. Here we have a US highway multiplexing with a State highway. However, they are “both” rendered as a State Highway. http://open.mapquest.com/link/2-ZcGR9DI6 (ref=US 22;PA 764)
    1E. Here we have a US highway multiplexing with an Interstate. Both are then rendered as an Interstate (which is incorrect, they “should” have two separate shields). http://open.mapquest.com/link/8-LAOEp0HM (ref=I 68;US 40) And here's another example of this where I-74 and US-74 multiplex. This looks really ugly seeing two “74's” in the Interstate shield: http://open.mapquest.com/link/1-EwcIWxCX (ref=I 74;US 74).
    1F. Here's a segment of highway that has 3 US Highway on it, yet, only two are shown and they are rendered as a State Highway. http://open.mapquest.com/link/2-otKX2OgR (ref=US 1;US 23;US 301) It seems that the middle route is completely ignored.
    1G. Here's a similar problem as 1F except it deals with an Interstate, US Highway, and a State Route. Here we have I-99, US-220, and PA-26 all on the same segment of highway. However, only I-99 and PA-26 are mentioned, and to boot, both are put together in an Interstate shield. http://open.mapquest.com/link/10-XdW1C8Jb (ref=I 99;US 220;PA 26)
    MapQuest, maybe it's time to start rendering by “relations” for highway shields. If the highway way doesn't have any route relation attached to it, *then* render by the ref tags.

  2. While MapQuest doesn't render highways with “highway=construction” as of yet, they do render the name of the highway still. This just makes the map look weird since they aren't showing the highway. Here's an example of this: http://open.mapquest.com/link/7-toNAWRmu This is the under-construction segment of the Mon/Fayette Expressway in PA. Here's the same area on the default OSM Mapnik rendering: http://www.openstreetmap.org/?lat=39.9934&lon=-79.91457&zoom=16&layers=M MapQuest, if you want to render the name, render the highway under-construction too. Otherwise, don't render the name on “highway=construction” ways.

  3. Rendering of “highway=motorway_junction” nodes shouldn't happen along “highway=construction” ways as well. It's just common sense. If you look at this view: http://open.mapquest.com/link/3-XTXyoGCE , you can see the just stick out very badly when they aren't attached to a highway. MapQuest, please don't render them on “highway=construction” ways unless you start rendering the “highway=construction” ways themselves as I mentioned in #2.

  4. Exit number have also been cut off in some places if they are longer than the “green box” that they get rendered in. I know in the non-open version of MapQuest, this doesn't happen. Thus, why does it happen in the Open map? Here's some examples:
    4A. 1B-1C doesn't fit in the box properly: http://open.mapquest.com/link/7-QJQLVNS6 (the 1B-C just below it almost does fit, but the “C” only half fits)
    4B. Here we have a 3-digit exit number with a letter (362A). It doesn't fully fit in the exit number box as the “3” and “A” both stick out making it look ugly: http://open.mapquest.com/link/8-6baEnnBx
    4C. Here we have an exit number that's even longer (23 A-B). When rendered, the “2” and “B” are completely outside the box. http://open.mapquest.com/link/2-9jKt29ct
    MapQuest, I know you can do this correctly as on your normal maps, you don't have this problem.

  5. The rendering of “highway=motorway_link” isn't constant. I've been noticing that when said “highway=motorway_link” is tagged with “bridge=yes” as well as the “highway=motorway” it's leaving being tagged the same, the “motorway_link” is rendered over-top of the “highway=motorway”. This type of rendering isn't consistent with the same situation when there is no “bridge=yes” tag involved. Here's a good example showing this: http://open.mapquest.com/link/3-xL7YIfzZ Exit #1B & #1D's ramps are rendered above the main highway unlike the ramp to the right of them joining I-279 SB and the HOV lanes in the middle of the highway.
    “highway=motorway_link” also doesn't even respect the layer tags when tagged with them (when they are bridges). Example of this can be found here: http://open.mapquest.com/link/8-q3PKQcwJ The two “motorway_link”s that you see in the middle of the interchange should be rendered below the segment of I-10 crossing them. I-10 is on layer=3, while the ramps are on layer=1 and layer=2.
Now, I may have other comments about rendering later, but these are some if not the most major problems I have noticed on MapQuest's Open map of the USA. If you want to comment about this, don't hesitate to make a post in my comments area. :)

– James Mast (rickmastfan67)

2 comments:

Anonymous said...

On point 3 - you shouldn't tag anything as highway=motorway_junction unless it's actually a junction that exists. If it's under construction, or planned, or whatever, then use a different tag. It's the principle of least surprise.

As for the other points, if you want to have a look at the logic, MapQuest make their stylesheets available at https://github.com/MapQuest/MapQuest-Mapnik-Style . I'm sure any suggested changes - especially for the regular expressions that deal with the shields - would be welcomed.

James Mast said...

Well, I'm not the only one that has tagged "highway=motorway_junction" on highway construction ways. I've seen it done in other places (can't remember off the top of my head where at the moment). But you normally don't see this problem on OSM itself since it doesn't render them unless there are additional tags attached (name=*;ref=*).

Well, the MapQuest tech Twitter person responded and they are looking into the stuff I mentioned in this post. I'm not really a guy that knows much about coding and stuff (can do really, [and I do mean really] really basic coding). Plus, that seems to only be the UK rendering at the link you provided since I can't find any info about any US Highways.