drolbr / Overpass-API

A database engine to query the OpenStreetMap data.
http://overpass-api.de
GNU Affero General Public License v3.0
716 stars 90 forks source link

Inconsistent results when a point is close to the border of the selected area #584

Open mvglasow opened 4 years ago

mvglasow commented 4 years ago

To reproduce

Run the following query multiple times, storing and comparing results:

[out:csv(ref, distance, ::lat, ::lon)];
area["admin_level"=2]["name:en"="Poland"]->.searchArea;
(
  node["highway"="milestone"](area.searchArea);
);
out body;
>;
out skel qt;

Expected result

The same result each time, unless the underlying OSM data have changed

Actual result

One entry keeps disappearing from the CSV file and then reappearing. Usually, when I launch a query, it is absent but appears when I repeat the query:

8   0   50.4297483  16.1975074

This point refers to km 0 of the national road 8, which is located just behind the Czech-Polish border, inside the selected area by just a tiny distance.

Further information

Tested against live overpass API within the last half hour; this has occurred since I added that particular point in JOSM a few weeks ago.

Apparently area selections are not fully repeatable, as borders vary slightly between calls. The pattern seems somewhat predictable, though: the point is absent from the first query, but repeating the query within a few minutes (at most) restores it. This has been fairly reproducible (I do not remember a single instance where the second attempt still did not restore that point).

mmd-osm commented 4 years ago

At the moment both production servers have different area versions, which explains the difference you're seeing.

The underlying issue for z.overpass-api.de has already been reported here: https://wiki.openstreetmap.org/wiki/Overpass_API/status

mvglasow commented 4 years ago

So, after reading the descriptions, I understand that the two servers have different geometries for the same area, but otherwise the same data inside the area, correct? That would explain what I am seeing, then.