Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
171 commits
Select commit Hold shift + click to select a range
712d19f
Style of change timeframe similar to OSM website
rene78 Dec 28, 2021
a66e66f
Minor visual changes on zoom-in infotext
rene78 Dec 28, 2021
6c7b3d8
Tooltips improved
rene78 Dec 29, 2021
06c18e2
Tooltip for select element added
rene78 Dec 29, 2021
175afed
Merge branch 'tyrasd:gh-pages' into gh-pages
rene78 Dec 29, 2021
58035b6
Add button to hide sidebar
rene78 Jan 3, 2022
4799214
Show sidebar when selecting changeset on map
rene78 Jan 3, 2022
011df56
Loading animation (spinner) added
rene78 Jan 4, 2022
3be60c8
Spinner and zoom-in message no longer blurred
rene78 Jan 4, 2022
5e55c84
Meta tags for social media links & More Favicons
rene78 Jan 4, 2022
2579d5d
Links to images in meta tags corrected
rene78 Jan 4, 2022
1911b16
Links to favicons fixed
rene78 Jan 4, 2022
24b8ee0
Links to images in meta tags simplified
rene78 Jan 4, 2022
5e7d21c
Toggle display of sidebar with "t" key
rene78 Jan 4, 2022
69e8d3e
Toggle sidebar as function (DRY)
rene78 Jan 4, 2022
87f2fc4
Toggle display of sidebar with <Spacebar> key
rene78 Jan 6, 2022
f32df11
Comment out console.log
rene78 Jan 6, 2022
80233e6
Prevent default, i.e. "page down" for spacebar
rene78 Jan 6, 2022
03f7721
Highlight changeset on mouseover
rene78 Jan 7, 2022
c9e3b0b
Website title shortened
rene78 Feb 2, 2022
54a48ff
Highlighting color changed to blue
rene78 Feb 8, 2022
050447e
Link to GitHub repository when clicking on clock
rene78 Feb 9, 2022
8e37488
Underline color inherited
rene78 Mar 10, 2022
2dede4a
Revert "Underline color inherited"
rene78 Mar 10, 2022
12c4de2
"Back to top" button added
rene78 Apr 17, 2022
0dab426
Remove unnecessary CSS declarations
rene78 Apr 18, 2022
fbaa1d5
Checkbox to stop automatic changeset download
rene78 May 19, 2022
d1a9364
downloads --> download
rene78 May 19, 2022
0d42d81
stopDownloadCheckbox - code simplification
rene78 May 20, 2022
2df3e98
Activate gesture handling only on small screens
rene78 Jun 11, 2022
f5448fd
"Speech bubble" icon for changesets with comments
rene78 Jun 13, 2022
788a948
Speech bubble: Syntax error fixed
rene78 Jun 13, 2022
0fae95a
Cursor changed to default for arrow/speech bubble
rene78 Jun 13, 2022
740c82a
Large screen size starting at 601px
rene78 Jun 20, 2022
74d8d62
Make heading more compact on mobile
rene78 Jun 20, 2022
910d1cd
Center the heading on small screens
rene78 Jun 20, 2022
1e3abc8
"Zoom to changeset" button implemented.
rene78 Jun 22, 2022
5004667
Eye icon added. Looks a bit weird though.
rene78 Jun 22, 2022
058abea
Color of eye changed to grey
rene78 Jun 22, 2022
d49d07d
- Zoom to changeset button design updated
rene78 Jun 23, 2022
bf6e03e
Started to implement achavi functionality
rene78 Jun 28, 2022
0d8e60b
First iteration of tag comparison table added
rene78 Jul 2, 2022
c07ee1c
style.css removed
rene78 Jul 3, 2022
dbc964b
Size of popup adapts to map-container size
rene78 Jul 3, 2022
69fb1a0
No speech bubble glyphicon on Android. SVG used.
rene78 Jul 4, 2022
056e227
.cloneNode() --> .cloneNode(true)
rene78 Jul 4, 2022
7ef12bb
Some table styling
rene78 Jul 4, 2022
edf1a98
temporarily use example.xml for test on mobile
rene78 Jul 4, 2022
d59be30
Table styling
rene78 Jul 4, 2022
4091fe3
Layout and usability of table improved
rene78 Jul 5, 2022
dfae10c
Increase line weight when hovering over element
rene78 Jul 5, 2022
da3233b
Change from example.xml to overpass server
rene78 Jul 5, 2022
46d596e
bug.xml removed. Was only for testing.
rene78 Jul 5, 2022
3c98812
- Pic of app added to readme
rene78 Jul 5, 2022
0e2b4eb
- RMB menu: Open with OSM/GMaps
rene78 Jul 7, 2022
4132f55
- Cleanup of site.css
rene78 Jul 7, 2022
587cbd3
- Auto download on pan/zoom removed. Button instead
rene78 Jul 9, 2022
0b9951b
Minor updates on table layout
rene78 Jul 9, 2022
e2ffb83
Vandalism Checker implemented.
rene78 Jul 10, 2022
81a0108
Traffic light design slightly updated
rene78 Jul 11, 2022
32c7b56
Vandalism Checker - algorithm improved
rene78 Jul 11, 2022
bc81f33
leaflet-osm.js commented out. Not needed (?)
rene78 Jul 12, 2022
92fd6bb
leaflet-hash updated with calvinmetcalf's version
rene78 Aug 2, 2022
ed3a73e
substr --> substring
rene78 Aug 3, 2022
6e3f001
Server link uncommented.
rene78 Aug 3, 2022
30cb61c
leaflet-hash called correctly
rene78 Aug 3, 2022
db764fa
- "history.replaceState" after page load.
rene78 Aug 5, 2022
5adbf1d
Comment clarified
rene78 Aug 5, 2022
e149d8a
"cursor: help" for traffic light
rene78 Aug 6, 2022
1c4bd46
RMB --> Open OSM with same zoom level
rene78 Aug 8, 2022
a1d1a75
Infomessage "Changeset has x comments"
rene78 Aug 9, 2022
6b52118
- Scale added to map
rene78 Aug 9, 2022
160461b
No pointer events for loading spinner
rene78 Sep 2, 2022
fa9cfcd
partially working approach for https://github.com/tyrasd/latest-chang…
arminus Sep 18, 2022
1a3c2ce
Fixed https://github.com/tyrasd/latest-changes/issues/18
arminus Sep 19, 2022
aa451f3
Fixed https://github.com/tyrasd/latest-changes/issues/18
arminus Sep 19, 2022
5d8c107
Updated readme
arminus Sep 20, 2022
6b7caab
click handler was broken
arminus Sep 22, 2022
a2b3be4
also hide/show map features for the filter
arminus Sep 22, 2022
1a78762
Merge pull request #1 from arminus/gh-pages
rene78 Nov 29, 2022
0094a3d
Filter changesets
rene78 Nov 29, 2022
b97381d
- onlyRed filter button: No hover effect
rene78 Nov 30, 2022
0413752
Deactivate demo changeset
rene78 Nov 30, 2022
51bd7fc
- Social media picture updated
rene78 Nov 30, 2022
bed300d
Transparent background for social media pic
rene78 Nov 30, 2022
bfe846f
Some padding left of clock symbol added
rene78 Nov 30, 2022
4d94189
CSS Updates on filter toolbox
rene78 Dec 1, 2022
2c866f4
Aligned filter toolbox with button above
rene78 Dec 1, 2022
a80579f
Table & sidebar button design
rene78 Dec 2, 2022
96562c6
clock-with-circular-arrow-symbol: Color changed
rene78 Dec 2, 2022
e53b82c
Filter changesets if input field has no focus.
rene78 Dec 3, 2022
e123e4e
Readme updated
rene78 Dec 3, 2022
eeeba9b
Readme changed a bit more
rene78 Dec 3, 2022
6e46432
Pinch-to-zoom disabled
rene78 Dec 20, 2022
cfa7ea7
Trying to correct wrong link in webmanifest
rene78 Dec 21, 2022
53eb555
Clock with circular arrow: Fill black on hover
rene78 Jan 10, 2023
d535365
overpass query improved & icon display on Safari
rene78 Jan 18, 2023
63e2f4d
Merge branch 'gh-pages' of https://github.com/rene78/latest-changes i…
rene78 Jan 18, 2023
b7e7bdb
Load overpass query instead of example
rene78 Jan 18, 2023
c30d85a
Readme updated
rene78 Feb 3, 2023
6d17362
Use preferred tile.openstreetmap.org URL
dypa Sep 1, 2023
865613e
Merge pull request #2 from dypa/gh-pages
rene78 Sep 7, 2023
c840f93
URL of OSM API updated
rene78 Jan 14, 2024
f33a2cd
Merge branch 'gh-pages' of https://github.com/rene78/latest-changes i…
rene78 Jan 14, 2024
321c13c
Example response from the OSM API added
rene78 Jan 23, 2024
e538f60
- Highlight non-hovered location of moved element
rene78 Apr 5, 2024
38f888d
Small updates & cleanups
rene78 Apr 6, 2024
d064026
Highlighting color of lines (continue on line 390)
rene78 Apr 10, 2024
69fc8bf
Some improvements regarding highlighting of twin geometry
rene78 Apr 23, 2024
4ad2e4f
Vandalism Checker turns red if new ID warnings >3
rene78 Apr 26, 2024
dd17aca
When comparing lengths of elements round to 1 decimal instead of 0.
rene78 Apr 26, 2024
8f5fb9b
Show time passed since creation instead of timestamp for newly create…
rene78 Apr 26, 2024
f7f4193
Text of Vandalism Checker slightly updated
rene78 Apr 27, 2024
17a50d4
Canvas renderer added to create wider selection area. Useful especial…
rene78 May 22, 2024
4b88390
Readme slightly updated
rene78 May 23, 2024
afb75ae
Cleanup
rene78 May 23, 2024
2bc4a52
Allow zoom levels up to 21 even though tiles are only available until…
rene78 Aug 4, 2024
78955d4
Sort function for GeoJSON added
rene78 Feb 9, 2025
126384b
- Also highlight elements which only got moved
rene78 Feb 16, 2025
f5bf60d
Function added to explanation
rene78 Feb 16, 2025
4699e74
Credit added
rene78 Feb 16, 2025
e8b4c42
Assign unique Leaflet layer IDs using OSM feature IDs with 'o'/'n' su…
rene78 Feb 19, 2025
43a0f77
Truncate user name in changesets list
rene78 Mar 9, 2025
50944da
<= instead of <
rene78 Mar 9, 2025
a2135e8
User name truncation with help of text-overflow css property
rene78 Mar 10, 2025
860155c
Refactor: Replace D3 v3 with targeted modules and vanilla JS
rene78 Apr 24, 2025
dc11713
Minor code cleanup
rene78 Apr 25, 2025
5a7e50e
- All relevant information to render changeset data goes into variabl…
rene78 Jun 23, 2025
0f704c8
- Move creation of 'changesets' object into onEachFeature
rene78 Jul 1, 2025
fc567d6
- Save result of geometry length comparison in variable to save on co…
rene78 Jul 2, 2025
6d3ce75
Rounded rgb values in 'interpolateColor' function.
rene78 Jul 8, 2025
e3b9491
Remove hover expansion and explain interpolateColor()
rene78 Jul 10, 2025
1e34987
Add a blank tile layer
rene78 Jul 11, 2025
691c2d9
Move spinner loading animation up on mobile phones in portrait mode
rene78 Jul 11, 2025
fbe52d6
Added missing image for Leaflet map
rene78 Jul 12, 2025
061a8fe
Readme updated
rene78 Jul 12, 2025
7310b76
Minor update to he markdown table
rene78 Jul 12, 2025
4b954f2
Minor code cleanups
rene78 Jul 26, 2025
bf8272d
Bug fixed
rene78 Jul 26, 2025
7ad949d
'debugging' changed back to 'false'
rene78 Jul 26, 2025
9ed050a
console.log commented out
rene78 Jul 26, 2025
afeddff
Renamed '.changesets' to '.sidebar'
rene78 Jul 26, 2025
377269f
CSS Grid for .result & Expand button for each changeset
rene78 Jul 28, 2025
e82fe78
Expand/collapse functionality implemented
rene78 Jul 29, 2025
48f1be3
Top left logo simplified & 1 tooltip removed
rene78 Jul 29, 2025
abc1fd3
Tooltip for arrow added
rene78 Jul 29, 2025
3f0cf1e
Started to add changeset details
rene78 Jul 30, 2025
0f635c8
Started to implement changeset information table.
rene78 Jul 31, 2025
2bf439e
CSS Grid for .result & Changeset table improved
rene78 Aug 1, 2025
1fb1ba9
Minor changes
rene78 Aug 1, 2025
02b0e0e
Minor UI changes
rene78 Aug 1, 2025
87db62a
Bug in hyperlink fixed
rene78 Aug 1, 2025
2f3d542
Fixed a bug in highlightSearchTermInText()
rene78 Aug 2, 2025
325dfa3
Space removed
rene78 Aug 2, 2025
2035f55
Fetch extended user data
rene78 Aug 4, 2025
cdc2a4a
Fix some minor UI glitches
rene78 Aug 5, 2025
6c74f1a
fix: Prevent race condition from stale UI events on reload
rene78 Aug 6, 2025
12ea251
Screenshot of site for readme.md updated
rene78 Aug 6, 2025
e1b0ab2
Some comments updated
rene78 Aug 7, 2025
c5f1bf8
Update tooltip on changeset comment depending on CS details are expan…
rene78 Aug 14, 2025
89864de
Minor updates in HTML meta tags
rene78 Aug 24, 2025
9aaa12f
Fix: Prevent crash from GeoJSON with null coordinates
rene78 Sep 19, 2025
9412f7b
Changed Overpass API server instance
rene78 Oct 9, 2025
fb476d0
Back to '//overpass-api.de/api/'. '//overpass.private.coffee/api/' wo…
rene78 Oct 10, 2025
43f2382
stop using the outdated /browse path
deevroman Oct 20, 2025
9377276
fix(UI): Improve text wrapping and result highlighting
rene78 Nov 16, 2025
af75dc1
Add OSM discussion to changeset detail if available
rene78 Dec 11, 2025
ef31ecd
Simplify 'Title' tag
rene78 Dec 14, 2025
545e772
Merge pull request #4 from deevroman/deevroman-patch-2
rene78 Dec 14, 2025
a9306c3
Add OSM Wiki links and auto-linkify URLs
rene78 Dec 18, 2025
950af4c
Minor UI details
rene78 Dec 19, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.DS_Store
44 changes: 37 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,43 @@
# OSM Latest Changes
![Intro Pic][social-media-pic]
# Introduction
*OSM Latest Changes* is a web application that helps to check recent OSM changes within a certain cartographic boundary, for example your home town. It displays all changesets in a list and on a map. The elements can be selected on the map whereby a tag comparison table opens up that highlights all created, modified or deleted tags. Furthermore a "Vandalism Checker" helps to find suspicious edits.

Shows recent changes on OpenStreetMap.
![Picture of App][screenshot]

Objects that have been modified (or created or deleted) during the last week (or month or day) are displayed alongside with their [changeset](https://wiki.openstreetmap.org/wiki/Changeset) meta data.
# Visualization
Newer edits are displayed in more saturated colors than older modifications. Deleted objects as well as the "previous state" of modified map features are displayed semi-transparently. Intermediate states of objects that have been modified more than once in the selected time period are not shown.

Newer edits are displayed in more saturated colors than older modifications. Deleted objects as well as the "previous state" of modified map features are displayed semi-transparently. Intermediate states of objects that have been modified more than once in the selected time period are not shown. The site currently doesn't show OSM modifications of relation objects.
# How to use
1. Zoom to the area of interest and click the *Get Changesets* button to see the changes of the last 7 days (or 1 day, 3 days, 1 month).
2. Analyse changesets by...
- filtering for suspicous edits (hover over red traffic light to get infos)
- selecting elements on the map and see tag modifications
3. Bookmark the URL to regularly come back and monitor your area of interest.

This is based on an earlier prototype by [@lxbarth](https://github.com/lxbarth), see http://www.openstreetmap.org/user/lxbarth/diary/19185 for background.
## Vandalism Checker
A simple tool that verifies the integrity of downloaded changesets. It calculates the total number of elements, tags and iD warnings added and deleted in each changeset. If the net change is below a specified threshold (currently -3), a red traffic light alert is triggered to notify users about the suspicious changeset.

## Running
### Examples
| Type | Case | Sum | Result |
|---------------|---------------------------------------------------------------------------------|--------|:-------------:|
| Element | A user added **one** new supermarket and deleted **two** roads. | -1 | 🟢⚫️ |
| Tag | A user added **three** tags to a restaurant but deleted **seven** of a library. | -4 | ⚫️🔴 |
| iD Warning | A user fixed **one** iD warning but caused **five** new ones. | -4 | ⚫️🔴 |

Just `git clone` and [boot up a quick development server](https://gist.github.com/tmcw/4989751).
# Limitations
- The site currently doesn't show OSM modifications of relation objects.
- Too many or too large download requests can cause the Overpass server to deny the request.

# Running
Just `git clone` and [boot up a quick development server](https://gist.github.com/tmcw/4989751). If you use *Visual Studio Code* you can alternatively install the *Live Server* extension.

# History
## 2013
It was first [prototyped](https://osmlab.github.io/latest-changes/) by [@lxbarth](https://github.com/lxbarth) and [@tmcw](https://github.com/tmcw) during the [Chicago Hack weekend](https://wiki.openstreetmap.org/wiki/Chicago_Hack_Weekend_April_2013) on the 26th-28th April 2013 (see [diary entry of lxbarth](http://www.openstreetmap.org/user/lxbarth/diary/19185) for background). This was conceived to be an enhancement to the OSM history tab with other notable users of the community working on coming up with a solution for a history tab that visualizes local changesets in an easy to understand way.
## 2013-2021
A hacked version of this prototype has been created with aims into saving bandwith and rendering time. Furthermore it allows lower zoom levels. It will show changes made in the last 24h, 3 days, 7 days or 30 days. Those enhancements were mainly implemented by [@tyrasd](https://github.com/tyrasd)
## 2022-now
As of July 2022 another [updated version](https://www.openstreetmap.org/user/rene78/diary/399505) has been created, that offers added functionality, i.e. a tag comparison table, a vandalism checker and a filter functionality.

[social-media-pic]: img/SocialMedia-Latest-Changes.png "Intro Pic"
[screenshot]: img/multi-devices.png "Picture of the App"
Binary file added css/images/layers-2x.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added css/images/layers.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading