Update: Color-coded representation of the age of photos

A recent update to the website, mapillary.com, now includes a toggleable option that uses three different colors—red, yellow, and green—to indicate the age of recordings. I find this new feature very helpful for planning my next trips. What do you think of it?

Note: It’s possible that the red and green colors are currently reversed in the labeling of this function.

2 Likes

It looks as reversed to me as well. cc @nikola wdys?

BR, Yaro

Good catch! The feature is not new, but the UI has been updated a little bit. @nikola - the text labels are reversed indeed :slight_smile:

Thanks for reporting! The labels should now be in the correct order.

2 Likes

Labels are fixed. :+1:
Now got 3 same console errors though.

ERROR TypeError: can't access property "forEach", this.users is undefined
    getMap2CoverageNeededFilters https://www.mapillary.com/app/main.287502a10e04ddfd.js:169
    getFilters https://www.mapillary.com/app/main.287502a10e04ddfd.js:169
    applyFilters https://www.mapillary.com/app/main.287502a10e04ddfd.js:169
    applyFilters https://www.mapillary.com/app/main.287502a10e04ddfd.js:169
    refresh https://www.mapillary.com/app/main.287502a10e04ddfd.js:169
    start https://www.mapillary.com/app/main.287502a10e04ddfd.js:169
    next https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    _next https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    next https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    yl https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    _next https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    next https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    _subscribe https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    _trySubscribe https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    _trySubscribe https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    subscribe https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    K https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    subscribe https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    yl https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    Kt https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    subscribe https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    K https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    subscribe https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    start https://www.mapillary.com/app/main.287502a10e04ddfd.js:169
    tz https://www.mapillary.com/app/main.287502a10e04ddfd.js:180
    next https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    _next https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    next https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    eTe https://www.mapillary.com/app/main.287502a10e04ddfd.js:5
    _next https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    next https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    AT https://www.mapillary.com/app/main.287502a10e04ddfd.js:5
    _next https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    next https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    mo https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    _next https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    next https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    next https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    K https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    next https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    next https://www.mapillary.com/app/main.287502a10e04ddfd.js:5
    next https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    _next https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    next https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    pn https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    _next https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    next https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    l https://www.mapillary.com/app/main.287502a10e04ddfd.js:5
    fire https://www.mapillary.com/app/main.287502a10e04ddfd.js:2095
    _render https://www.mapillary.com/app/main.287502a10e04ddfd.js:2095
    _frame https://www.mapillary.com/app/main.287502a10e04ddfd.js:2095
    0 https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    invokeTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    onInvokeTask https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    invokeTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    runTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    invokeTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    invoke https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    0 https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    v https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    scheduleTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    onScheduleTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    scheduleTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    scheduleTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    scheduleMacroTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    We https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    u https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    r https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    frame https://www.mapillary.com/app/main.287502a10e04ddfd.js:2095
    triggerRepaint https://www.mapillary.com/app/main.287502a10e04ddfd.js:2095
    _update https://www.mapillary.com/app/main.287502a10e04ddfd.js:2095
    Map https://www.mapillary.com/app/main.287502a10e04ddfd.js:2095
    fire https://www.mapillary.com/app/main.287502a10e04ddfd.js:2095
    fire https://www.mapillary.com/app/main.287502a10e04ddfd.js:2095
    fire https://www.mapillary.com/app/main.287502a10e04ddfd.js:2095
    fire https://www.mapillary.com/app/main.287502a10e04ddfd.js:2095
    _tileLoaded https://www.mapillary.com/app/main.287502a10e04ddfd.js:2095
    request https://www.mapillary.com/app/main.287502a10e04ddfd.js:2095
    en https://www.mapillary.com/app/main.287502a10e04ddfd.js:2095
    b https://www.mapillary.com/app/main.287502a10e04ddfd.js:2095
    invoke https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    onInvoke https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    invoke https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    run https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    H https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    invokeTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    onInvokeTask https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    invokeTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    runTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    m https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    promise callback*g https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    scheduleTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    onScheduleTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    scheduleTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    scheduleTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    scheduleMicroTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    H https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    A https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    Y https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    promise callback*609/de/</z/f.prototype.then/< https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    f https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    then https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    b https://www.mapillary.com/app/main.287502a10e04ddfd.js:2095
    pe https://www.mapillary.com/app/main.287502a10e04ddfd.js:2095
    N https://www.mapillary.com/app/main.287502a10e04ddfd.js:2095
    pn https://www.mapillary.com/app/main.287502a10e04ddfd.js:2095
    invoke https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    onInvoke https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    invoke https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    run https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    H https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    invokeTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    onInvokeTask https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    invokeTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    runTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    m https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    promise callback*g https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    scheduleTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    onScheduleTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    scheduleTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
main.287502a10e04ddfd.js:1:66398

Got another console error.

Error: layers.mapillary-map2-user.filter[1][1][1]: 'undefined' value invalid. Use null instead.
    Dp https://www.mapillary.com/app/main.287502a10e04ddfd.js:2095
    Wn https://www.mapillary.com/app/main.287502a10e04ddfd.js:2095
    _validate https://www.mapillary.com/app/main.287502a10e04ddfd.js:2095
    setFilter https://www.mapillary.com/app/main.287502a10e04ddfd.js:2095
    setFilter https://www.mapillary.com/app/main.287502a10e04ddfd.js:2095
    init https://www.mapillary.com/app/main.287502a10e04ddfd.js:59
    next https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    _next https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    next https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    r https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    _next https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    next https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    _subscribe https://www.mapillary.com/app/main.287502a10e04ddfd.js:5
    _trySubscribe https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    _trySubscribe https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    subscribe https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    K https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    subscribe https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    Xh https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    _next https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    next https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    next https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    K https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    next https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    next https://www.mapillary.com/app/main.287502a10e04ddfd.js:5
    next https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    _next https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    next https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    pn https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    _next https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    next https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    l https://www.mapillary.com/app/main.287502a10e04ddfd.js:5
    fire https://www.mapillary.com/app/main.287502a10e04ddfd.js:2095
    _render https://www.mapillary.com/app/main.287502a10e04ddfd.js:2095
    _frame https://www.mapillary.com/app/main.287502a10e04ddfd.js:2095
    0 https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    invokeTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    onInvokeTask https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    invokeTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    runTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    invokeTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    invoke https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    0 https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    v https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    scheduleTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    onScheduleTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    scheduleTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    scheduleTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    scheduleMacroTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    We https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    u https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    r https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    frame https://www.mapillary.com/app/main.287502a10e04ddfd.js:2095
    triggerRepaint https://www.mapillary.com/app/main.287502a10e04ddfd.js:2095
    _render https://www.mapillary.com/app/main.287502a10e04ddfd.js:2095
    _frame https://www.mapillary.com/app/main.287502a10e04ddfd.js:2095
    0 https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    invokeTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    onInvokeTask https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    invokeTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    runTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    invokeTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    invoke https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    0 https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    v https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    scheduleTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    onScheduleTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    scheduleTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    scheduleTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    scheduleMacroTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    We https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    u https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    r https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    frame https://www.mapillary.com/app/main.287502a10e04ddfd.js:2095
    triggerRepaint https://www.mapillary.com/app/main.287502a10e04ddfd.js:2095
    _render https://www.mapillary.com/app/main.287502a10e04ddfd.js:2095
    _frame https://www.mapillary.com/app/main.287502a10e04ddfd.js:2095
    0 https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    invokeTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    onInvokeTask https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    invokeTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    runTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    invokeTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    invoke https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    0 https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    v https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    scheduleTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    onScheduleTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    scheduleTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    scheduleTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    scheduleMacroTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    We https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    u https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    r https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    frame https://www.mapillary.com/app/main.287502a10e04ddfd.js:2095
    triggerRepaint https://www.mapillary.com/app/main.287502a10e04ddfd.js:2095
    _update https://www.mapillary.com/app/main.287502a10e04ddfd.js:2095
    Map https://www.mapillary.com/app/main.287502a10e04ddfd.js:2095
    fire https://www.mapillary.com/app/main.287502a10e04ddfd.js:2095
    fire https://www.mapillary.com/app/main.287502a10e04ddfd.js:2095
    fire https://www.mapillary.com/app/main.287502a10e04ddfd.js:2095
    fire https://www.mapillary.com/app/main.287502a10e04ddfd.js:2095
    _tileLoaded https://www.mapillary.com/app/main.287502a10e04ddfd.js:2095
    request https://www.mapillary.com/app/main.287502a10e04ddfd.js:2095
    en https://www.mapillary.com/app/main.287502a10e04ddfd.js:2095
    b https://www.mapillary.com/app/main.287502a10e04ddfd.js:2095
    invoke https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    onInvoke https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    invoke https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    run https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    H https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    invokeTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    onInvokeTask https://www.mapillary.com/app/main.287502a10e04ddfd.js:1
    invokeTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
    runTask https://www.mapillary.com/app/polyfills.edd58b8e96107806.js:1
main.287502a10e04ddfd.js:2095:605978

Activating the color-coded display function makes it easy to identify older Mapillary recording series. Finding a suitable route for new recordings isn’t as simple as it seems, so for me—for example, in the city of Munich—it would be easiest if I could select an old recording series and extract a GPX file from it for navigation. Then, for a new recording, I would simply have to follow the old GPX track. Is there a way to extract the GPX track from a historical Mapillary recording?

Even better would be a navigation aid for new recordings that works like the arcade game Pac-Man. If outdated recordings appear in an old city as red Pac-Man dots, I would simply have to follow them and collect points. Now that’s what I call fun through gamification!