nrenner / achavi Goto Github PK
View Code? Open in Web Editor NEWachavi - Augmented OSM Change Viewer - alpha
License: MIT License
achavi - Augmented OSM Change Viewer - alpha
License: MIT License
Follow-up for #26:
Link to OSMCha in error message when querying a changeset failed, e.g.:
But only if chached json exists:
Really like this project, to show progress in mapping parties. Can we add a timeline slider? Maybe specify the time upper and lower time limit.
The permanent link works (as in: creates a correct permanent link), but when you load it it will not zoom to the area in the link but will always zoom to the whole changeset + a buffer area. The latter should be avoided when there is a map position in the url
An example of this is:
http://www.openstreetmap.org/changeset/28764270
http://nrenner.github.io/achavi/?changeset=28764270
what happens is that a spinner appears for a while and then stops, with no obvious error message. Nothing appears to be displayed on the screen. I'm guessing that something underneath is failing, but it'd be nice to know what.
Could you add a link to edit in JOSM when the user clicks in a feature. You could show the link in the window that shows the tags and changeset.
Planning to try CSS filters where available instead of opacity to darken the OSM base map. Probably along with a slider to make it adjustable. Again, after switch to Leaflet.
latest-changes seems to be faster for area queries than achavi. Evaluate if this query produces the same result and indeed is faster (and why - maybe because not using changed
?) and could be used instead.
[adiff:"' + last_week + '"][bbox:' + bbox + '][out:xml][timeout:22];
way->.ways;
(
.ways >;
node;
);
out meta;
.ways out geom meta;
Recently, a version number was added to the generator string, e.g. <osm version="0.6" generator="Overpass API 0.7.54.12 054bb0bb">
. Unfortunately, this change breaks Achavi. The following patch should fix it:
diff --git a/js/FormatRegistry.js b/js/FormatRegistry.js
index 59c350c..1c534b2 100644
--- a/js/FormatRegistry.js
+++ b/js/FormatRegistry.js
@@ -36,7 +36,7 @@ FormatRegistry.prototype.getFormatType = function(doc) {
// special cases with common root node name but different content
if (type === 'osm') {
var generatorAttribute = doc.documentElement.getAttribute('generator');
- if (generatorAttribute && generatorAttribute === 'Overpass API') {
+ if (generatorAttribute && generatorAttribute.indexOf('Overpass API') == 0) {
type = 'osmDiff';
} else {
var node = doc.documentElement.firstChild
Hi,
Achavi is an excellent tool! Have you thought about add some satellite layers? It would be very practical to verify if the changes on the map match with a satellite image.
It makes impossible to do anything useful
Xiaomi redmi 4, android 6.0.1 MMB29M
I try to import my xml-s. It sometimes works, but there are examples when the page loads the nodes from my xml but the center of the maps at 0,0 (?), and when I slowly move the map ro the place I need, the nodes disappear. :(
A problematic version:
[timeout:255]
[adiff:"2015-11-10T02:00:00Z","2015-11-25T02:00:00Z"];
area(3600021335)->.searchArea;
(
node["amenity"="place_of_worship"]["religion"="christian"]["denomination"~"catholic"](area.searchArea);
way["amenity"="place_of_worship"]["religion"="christian"]["denomination"~"catholic"](area.searchArea);
relation["amenity"="place_of_worship"]["religion"="christian"]["denomination"~"catholic"](area.searchArea);
);
out body meta;
>;
out meta skel qt;
A working version:
[timeout:255]
[adiff:"2015-11-18T02:00:00Z","2015-11-25T02:00:00Z"];
area(3600021335)->.searchArea;
(
node["wheelchair"](area.searchArea);
way["wheelchair"](area.searchArea);
relation["wheelchair"](area.searchArea);
);
out body meta;
>;
out meta skel qt;
https://overpass-api.de/achavi/ is down.
Hi, since some days i cannot see all changes of a changeset in achavi anymore. E.g. in this CS https://nrenner.github.io/achavi/?changeset=122026313 i have changed two POIs, but only the one in the bottom left is marked blue.
I would have expected, that the second POI in the upper right corner would also be blue, because it was changed.
I'm not sure, if this is the right repository,
but lately achavi reports/displays in many cases alert messages such as:
"osmDiff: runtime error: Query run out of memory using about 2048 MB of RAM."
Example: https://overpass-api.de/achavi/?changeset=62679580
Maybe it's the result of #39 ?
Steps to reproduce:
I think, the "problem" is, that the CS is centered for the View.
Imho it should center only if not other parameters are given (like https://nrenner.github.io/achavi/?changeset=55824788)
Hello,
Selecting the "blank" layer makes impossible to zoom at more than 14 (or 15).
Is it normal behaviour ?
Regards,
Is it possible to support uploading local files and then create/render a diff from them, please?
For example, suppose I see one user with 1000 small changesets and I would like to review them; doing this one-by-one with achavi would be inefficient (not due to achavi, but due to the amount of changesets with small changes).
Now suppose that I download all of his osmChanges, merge them with osmium merge-changes -F osc -f osm -o merged.osc <all his osmchanges.osc>
and open this local file with the achavi interface.
We would be able to view the before and after of all his 1000 changesets, in just one single page.
This would help a lot (really a lot) with things like openstreetmap/iD#2251 (comment) and https://lists.openstreetmap.org/pipermail/talk/2018-January/080040.html
Could it be possible to do something like this? :-)
We are supposed to zoom in to our area of interest.
But the map is too dark to see it.
Attic data only goes back 2012-09-12T06:55:00Z
(license change), see Augmented Diffs wiki page.
I looked at this changeset in Achavi.
Here the same changeset in OSM
Two tags of the node were changed. But achavi showed only one, namely "operator", but not "uid"
https://nrenner.github.io/achavi/?changeset=25069734
Use url: '//www.openstreetmap.org/api/0.6/changeset/' + id,
instead of url: 'http://www.openstreetmap.org/api/0.6/changeset/' + id,
Regarding changeset: https://www.openstreetmap.org/changeset/41088164
I got no object visualization for:
https://overpass-api.de/achavi/?changeset=41088164
Is it a defect achavi-viewer?
Even osmcha doesn't show anything:
https://osmcha.mapbox.com/changesets/41088164
Or is it a defect changeset at all?
Edit: btw.: the osmhv-viewer seems working for this particular changeset, see:
https://osmhv.openstreetmap.de/changeset.jsp?id=41088164
When using tools, e.g. with localization active in a language that doesn't use Western Arabic Numerals (0123456789) but Persian (۰ ۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹) or Eastern Arabic (See wikipedia article) ones this can result in Achavi links with IDs written in these numerals being created, e.g. https://overpass-api.de/achavi/?changeset=%DB%B1%DB%B1%DB%B8%DB%B6%DB%B2%DB%B3%DB%B3%DB%B1%DB%B7
It would be great if Achavi accepts this number format, too.
See also the bug report in the Rovas JOSM plugin
https://gitlab.com/JOSM/plugin/RovasConnector/-/issues/15
It is very hard to point mouse cursor at a feature, because all lines are just a pixel wide. Could you please increase "hot" area to 3 pixels? If possible, without increasing visible line widths.
When setting a time range not stopping at "now", achavi doesn't respect that value but serves changes up to the most recent changeset. This has been observed at both master and development branch. The screenshot is taken from https://nrenner.github.io/achavi/?zoom=14&lat=52.51061&lon=13.39195&layers=B000000TTTFT
Greetings Nmxcgeo
Add or document a way, via a URL, to start at a certain coordinate, instead of needing to be zoomed in by hand from the world view.
There was something usefull with this ability
http://demo.3liz.com/lizwatch/index.php/view/map
It doesn't work anymore but it gives some ideas.
If you want to check how it worked choose some dates between 2011 & 2012.
There is a "select in JOSM" link, please also add a link to edit in iD - useful for quickly checking part of the map or for those who don't use JOSM.
Since active development happens in the gh-pages
branch, please mark that one as default and delete the master
branch.
Hi,
I could be nice to display something (a popup) when the overpass api return an error. Actually no thing append on api error.
Cheers
As Overpass API does not support querying for changesets, achavi queries by timeframe and bbox of the changeset and filters the result by changeset id on the client. This does not work when there are multiple changesets modifying the same objects, because adiff
returns aggregated changes.
Example (from mmd-osm):
Modified way 31664569 (added nodes) in changeset 27183569 is not shown in achavi.
This changeset is a weird example because it seems all created objects (esp. new builings) were uploaded twice in changesets 27183569 and 27183716. So visualization in achavi is not as wrong as it looks at first sight.
changeset 27183569:
OSM API: https://www.openstreetmap.org/api/0.6/changeset/27183569/download
<modify>
<way id="31664569" changeset="27183569" timestamp="2014-12-02T16:40:01Z" version="4" ...
https://overpass-api.de/api/interpreter?data=
[adiff:"2014-12-02T16:36:27Z","2014-12-02T17:40:02Z"];
(node(bbox)(changed);way(bbox)(changed););
out meta geom(bbox);
&bbox=6.7306185,49.2351097,6.7979623,49.2734277
<action type="modify">
<old><way id="31664569" version="3" timestamp="2012-05-23T17:05:18Z" changeset="11682467" ...
<new><way id="31664569" version="5" timestamp="2014-12-02T17:31:16Z" changeset="27184613" ...
Because a later change is included in the adiff result, version 4 and 5 are aggregated under changeset 27184613. This is why filtering for changeset 27183569 in achavi does not include this way.
Overlapping changesets by the same user (first closed after the third):
changeset id="27183569" created_at="2014-12-02T16:36:28Z" closed_at="2014-12-02T17:40:02Z"
changeset id="27183716" created_at="2014-12-02T16:44:09Z" closed_at="2014-12-02T17:07:43Z"
changeset id="27184613" created_at="2014-12-02T17:31:12Z" closed_at="2014-12-02T17:31:18Z"
Object timestamps in changeset 27183569 range from 2014-12-02T16:36:36Z to 2014-12-02T16:40:02Z, i.e. there are no overlapping uploads, the changeset just timed out an hour later.
Passing a modified query without timeout to achavi shows the correct changes.
Other examples in this changeset are way 250937385 (tags modified twice) and node 1564054893 (moved twice).
See also wiki page Overlapping changesets analysis of some first search for further examples. It seems to indicate that this might happen more often than I first thought.
Improvements on #18.
Brainstorming:
What are minimal requirements before releasing? How not to turn it into a second Overpass Turbo?
The query https://overpass-api.de/api/interpreter?data=[adiff:%222018-08-12T11:35:26Z%22,%222018-08-12T12:35:32Z%22];(node(bbox)(changed);way(bbox)(changed););out%20meta%20geom(bbox);&bbox=-0.1388597,23.1423715,113.3875121,51.5797481 results in HTTP 200
<?xml version="1.0" encoding="UTF-8"?>
<osm version="0.6" generator="Overpass API 0.7.55.4 3079d8ea">
<note>The data included in this document is from www.openstreetmap.org. The data is made available under ODbL.</note>
<meta osm_base="2018-08-14T09:02:02Z"/>
<remark> runtime error: Query run out of memory using about 2048 MB of RAM. </remark>
</osm>
but achavi does not report an error.
I suggest to separate the changes layer to a changes and a created layer.
I also suggest to draw a distinction between the two types of deleted. For deleted elements the <action>
object has a <new>
object. In that the <node>
osm element has a visible
marker. If the element is deleted from the osm database then visible="false"
. If the element is not delete, but the element does not match the adiff query at the second time then visible="true"
. (See more: Augmented_Diffs) I think it is important to know whether an osm element is absolutely deleted or only does not match my filter criterions. (This issue is probably related with the usage of?url=my_own_adiff_xml_results
only.)
Often I want to jump on a particular point on the planet. Currently if have to scroll and move the tiles around until i found it. Including a quick nominatim support would be a win for your nice gui!
See nominatim query field at overpass turbo, for example.
It would be very useful if there would be a possibility to hide the edits of one or more users by setting a filter with usernames.
When I am looking at my "home region", it would be very useful if I could hide my edits, so that I only see the acitivities of other mappers.
For checking vandalism or mistakes made by newbies, it would be useful if edits of even more users could be set as hidden. Then I could ignore the edits of myself and users which I trust, so that I only see suspicious changes.
On https://nrenner.github.io/achavi/
We see the date, then box 1, then box 2.
Box 1 has a mouseover, saying what it is for.
Box 2 doesn't. So it is not clear what to type in it.
I think it would increase achavi's usability if mouse-over elements in changesets were a bit thicker to have a larger target over which I'd get diff popup. Right now it feels like I have to hunt for that specific 1 pixel.
Line and node sizes similar to osmcha or iD would be pretty nice.
When I zoom out to see a full European country all the nodes preserve a minimum marker size so at to make it easy to click on it. But ways and relations has no minimum marker size, so it become an almost impossible task to click on the only pixel in the image when the way or relation is small as a house.
(It can be an other excuse to work on the leaflet version. ;) ).
These work fine,
https://overpass-api.de/achavi/ - production (master)
https://nrenner.github.io/achavi/ - development, test (gh-pages)
But one day one might want to visit just
https://nrenner.github.io/
which fails.
For some reasons this changeset is not rendered in achavi, only bounding box is visible: http://www.openstreetmap.org/changeset/12930420
Changesets which only modify relations do not have a bbox.
URL: https://overpass-api.de/achavi/?changeset=48727731
Browser: Firefox v53
OS: Ubuntu
I visited the above URL and see the map of the world, but don't see the changeset requested. Looking at the browser console: I see the following error output:
window.controllers is deprecated. Do not use it for UA detection. OpenLayers.js:438:474
patched OpenLayers.Request.issue olex.js:1117:5
"requesting https://www.openstreetmap.org/api/0.6/changeset/48727731" Loader.js:254:5
request: timer startedLoader.js:255
error loading "https://www.openstreetmap.org/api/0.6/changeset/48727731" (0 ) Loader.js:241:9
Loader.prototype.failure https://overpass-api.de/achavi/js/Loader.js:241:9
Loader.prototype.GET/xhr.onerror https://overpass-api.de/achavi/js/Loader.js:299:9
Works find on Chrome/Ubuntu.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.