New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Is it possible to search objects in a changeset ? #162

Open
pyrog opened this Issue Dec 18, 2014 · 7 comments

Comments

Projects
None yet
5 participants
@pyrog

pyrog commented Dec 18, 2014

I would like to search all or some object in a changeset.

<osm-script>
  <id-query ref="507464799" type="changeset"/>
  <print/>
</osm-script>

Is it possible with Overpass ?

@mmd-osm

This comment has been minimized.

Show comment
Hide comment
@mmd-osm

mmd-osm Dec 18, 2014

Contributor

First of all: filtering on or querying of changesets is not possible at this time.

Maybe you should check out achavi, which works with a combination of OSM main db and overpass:

Example: http://nrenner.github.io/achavi/?changeset=27183569

Step 1: Request Changeset metadata

http://www.openstreetmap.org/api/0.6/changeset/27183569

Result:

<?xml version="1.0" encoding="UTF-8"?>
<osm version="0.6" generator="OpenStreetMap server" copyright="OpenStreetMap and contributors" attribution="http://www.openstreetmap.org/copyright" license="http://opendatacommons.org/licenses/odbl/1-0/">
  <changeset id="27183569" user="FahRadler" uid="344561" created_at="2014-12-02T16:36:28Z" closed_at="2014-12-02T17:40:02Z" open="false" min_lat="49.2351097" min_lon="6.7306185" max_lat="49.2734277" max_lon="6.7979623" comments_count="0">
    <tag k="source" v="Bing"/>
    <tag k="created_by" v="JOSM/1.5 (7643 de)"/>
    <tag k="comment" v="Addition from Bing / Fieldwork"/>
  </changeset>
</osm>

Step 2: Use changeset metadata to request changes in bbox in this timeframe

bbox -> 6.7306185,49.2351097,6.7979623,49.2734277
data -> [adiff:"2014-12-02T16:36:27Z","2014-12-02T17:40:02Z"];(node(bbox)(changed);way(bbox)(changed););out meta geom(bbox);

I believe this is not 100% accurate if some other user happens to do some changes in the same timeframe/bbox, as overpass will only return the last change in that timeframe. Maybe @nrenner can comment on this?

In addition to that, @drolbr is also working on tool support in this area iirc, but this is not yet (officially) available.

Contributor

mmd-osm commented Dec 18, 2014

First of all: filtering on or querying of changesets is not possible at this time.

Maybe you should check out achavi, which works with a combination of OSM main db and overpass:

Example: http://nrenner.github.io/achavi/?changeset=27183569

Step 1: Request Changeset metadata

http://www.openstreetmap.org/api/0.6/changeset/27183569

Result:

<?xml version="1.0" encoding="UTF-8"?>
<osm version="0.6" generator="OpenStreetMap server" copyright="OpenStreetMap and contributors" attribution="http://www.openstreetmap.org/copyright" license="http://opendatacommons.org/licenses/odbl/1-0/">
  <changeset id="27183569" user="FahRadler" uid="344561" created_at="2014-12-02T16:36:28Z" closed_at="2014-12-02T17:40:02Z" open="false" min_lat="49.2351097" min_lon="6.7306185" max_lat="49.2734277" max_lon="6.7979623" comments_count="0">
    <tag k="source" v="Bing"/>
    <tag k="created_by" v="JOSM/1.5 (7643 de)"/>
    <tag k="comment" v="Addition from Bing / Fieldwork"/>
  </changeset>
</osm>

Step 2: Use changeset metadata to request changes in bbox in this timeframe

bbox -> 6.7306185,49.2351097,6.7979623,49.2734277
data -> [adiff:"2014-12-02T16:36:27Z","2014-12-02T17:40:02Z"];(node(bbox)(changed);way(bbox)(changed););out meta geom(bbox);

I believe this is not 100% accurate if some other user happens to do some changes in the same timeframe/bbox, as overpass will only return the last change in that timeframe. Maybe @nrenner can comment on this?

In addition to that, @drolbr is also working on tool support in this area iirc, but this is not yet (officially) available.

@pyrog

This comment has been minimized.

Show comment
Hide comment
@pyrog

pyrog Dec 18, 2014

Thanks 😄
I didn't know before neither AChaVi, neither Attic data or diff/adiff.

First of all: filtering on or querying of changesets is not possible at this time.

But technically it is possible with date settings ? So maybe Roland could implement search by chanegeset in the future ?

 [date:"2012-09-14T15:00:00Z"]

pyrog commented Dec 18, 2014

Thanks 😄
I didn't know before neither AChaVi, neither Attic data or diff/adiff.

First of all: filtering on or querying of changesets is not possible at this time.

But technically it is possible with date settings ? So maybe Roland could implement search by chanegeset in the future ?

 [date:"2012-09-14T15:00:00Z"]
@mmd-osm

This comment has been minimized.

Show comment
Hide comment
@mmd-osm

mmd-osm Dec 18, 2014

Contributor

The problem with date is, that a changeset usually covers a timeframe of several seconds to hours with a number of changes (could be up to 2000 iirc). Date however looks at a point in time only.

Details for a single changeset are already provided by the main api: example http://www.openstreetmap.org/api/0.6/changeset/27183569/download (takes a while to load).

I still don't know what your use case is, could you elaborate a bit more, giving some more concrete examples?

Contributor

mmd-osm commented Dec 18, 2014

The problem with date is, that a changeset usually covers a timeframe of several seconds to hours with a number of changes (could be up to 2000 iirc). Date however looks at a point in time only.

Details for a single changeset are already provided by the main api: example http://www.openstreetmap.org/api/0.6/changeset/27183569/download (takes a while to load).

I still don't know what your use case is, could you elaborate a bit more, giving some more concrete examples?

@nrenner

This comment has been minimized.

Show comment
Hide comment
@nrenner

nrenner Dec 19, 2014

Step 3 in achavi is to filter the result by the changeset id, including referenced objects.

I believe this is not 100% accurate if some other user happens to do some changes in the same timeframe/bbox, as overpass will only return the last change in that timeframe.

You're right, this does not really work when an object is modified by multiple changesets in the same timeframe/bbox. Don't know how often this actually occurs and what to do about it.

nrenner commented Dec 19, 2014

Step 3 in achavi is to filter the result by the changeset id, including referenced objects.

I believe this is not 100% accurate if some other user happens to do some changes in the same timeframe/bbox, as overpass will only return the last change in that timeframe.

You're right, this does not really work when an object is modified by multiple changesets in the same timeframe/bbox. Don't know how often this actually occurs and what to do about it.

@pyrog

This comment has been minimized.

Show comment
Hide comment
@pyrog

pyrog Dec 19, 2014

I still don't know what your use case is, could you elaborate a bit more, giving some more concrete examples?

I have made a changeset that was reversed. I would like to get the iDs of theses objects to build some queries : how many objects by country with tags xx=yy, and so on…

I could do that with JOSM (with the reverse changeset plugin) but I prefer to make a query with Overpass turbo (see map and see datas in XML without the risk to alter them).

pyrog commented Dec 19, 2014

I still don't know what your use case is, could you elaborate a bit more, giving some more concrete examples?

I have made a changeset that was reversed. I would like to get the iDs of theses objects to build some queries : how many objects by country with tags xx=yy, and so on…

I could do that with JOSM (with the reverse changeset plugin) but I prefer to make a query with Overpass turbo (see map and see datas in XML without the risk to alter them).

@kolesar-andras

This comment has been minimized.

Show comment
Hide comment
@kolesar-andras

kolesar-andras Mar 18, 2015

Would be possible to filter objects by changeset id? Similar to user or type filter:

changeset:1234567

This data is available for overpass, returns with objects. Related to #189.

kolesar-andras commented Mar 18, 2015

Would be possible to filter objects by changeset id? Similar to user or type filter:

changeset:1234567

This data is available for overpass, returns with objects. Related to #189.

@drolbr

This comment has been minimized.

Show comment
Hide comment
@drolbr

drolbr Jul 18, 2018

Owner

There is now the evaluator changeset that solves part of the problem.

Owner

drolbr commented Jul 18, 2018

There is now the evaluator changeset that solves part of the problem.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment