You are not logged in.
- Topics: Active | Unanswered
Announcement
Please create new topics on the new site at community.openstreetmap.org. We expect the migration of data will take a few weeks, you can follow its progress here.***
#1 2015-09-11 15:55:07
- tagtheworld
- Banned

- Registered: 2012-04-25
- Posts: 236
overpass-t: healthcare in spanien - timeout & exportfragen
hallo und guten Abend liebe Community,
bin soeben dabei eine Suche nach Hospitälern & Kliniken in West- und Südeuropa. Fokus:
Griechenland, Italien, Spanien, Portugal, Frankreich ....
früher hätte ich das mit osmconvert gemacht. aber es ist wohl einfacher mit overpass-turbo.
Ansatz: Das geht wohl auch über
amenity: healthcare=hospital - dachte ich wenigstens
Vor einiger Z eit hab ich folgendes noch mit overpass-turbo gemacht:
eine ADIFF z.B. vieles ging wunderbar mit Overpass API (momentan nur zurück bis Juni 2014 bis zum DB rebuild) Beispiel 1: Schulen in Argentinien am 1.6.2014:
[date:"2014-06-01T00:00:00Z"];area[name="Argentina"][boundary=administrative]->.a;(node(area.a)[amenity=school];way(area.a [amenity=school];);out center;
oder auch Beispiel 2: Änderungen an Schulen in Argentinien seit dem 1.7.2014 (mit Berücksichtigung gelöschter Objekte)
[adiff:"2014-07-01T00:00:00Z"];area[name="Argentina"][boundary=administrative]->.a;(node(area.a)[amenity=school];way(area.a)[amenity=school];);out center;
oder auch das:
[adiff:"2014-07-01T00:00:00Z"];area[name="Argentina"][boundary=administrative]->.a;(node(area.a)[amenity=school][website];way(area.a)[amenity=school][website];);out center;
wenn ich aber das nun umbaue - für meine neue Abfrage: dann funktioniert das nicht richtig
[adiff:"2014-07-01T00:00:00Z"];area[name="Spain"][boundary=administrative]->.a;(node(area.a)[amenity=hospital][website];way(area.a)[amenity=hospital][website];);out center;
ich denke mal dass ich etwas falsch mache. Sollte ich dieses "Umbauen" lieber lassen u über den Wizzard gehen?
Dachte dass ich es eben immer umbauen kann für die folgenden Laender: Griechenland, Italien, Spanien, Portugal, Frankreich ....
Was meint ihr denn? Freu mich auf einen Tipp.
viele Gruesse
Last edited by tagtheworld (2015-09-12 18:54:27)
https://wiki.openstreetmap.org/wiki/User:Tagtheworld - interested in all things concerning osm especially those related to the languages Perl, PHP, Python and the databases MySQL and Postgresql.
Offline
#2 2015-09-12 08:58:50
- tagtheworld
- Banned

- Registered: 2012-04-25
- Posts: 236
Re: overpass-t: healthcare in spanien - timeout & exportfragen
koennte das auch ohne adiff versuchen. Dann geht es ja auch leichter. Der Witz - mit dem Wizzard klemmt diese Suche immer wieder
https://wiki.openstreetmap.org/wiki/User:Tagtheworld - interested in all things concerning osm especially those related to the languages Perl, PHP, Python and the databases MySQL and Postgresql.
Offline
#3 2015-09-12 09:44:30
- ikonor
- Member
- Registered: 2010-11-08
- Posts: 637
- Website
Re: overpass-t: healthcare in spanien - timeout & exportfragen
Es gab wohl Probleme mit areas, da würde ich erst mal abwarten, bis das behoben ist:
http://wiki.openstreetmap.org/wiki/Overpass_API/status
mit dem Wizzard klemmt diese Suche immer wieder
Meinst Du speziell den Wizard um Abfragen per Suchbegriff erstellen zu lassen oder Overpass Turbo allgemein?
Kannst Du das genauer beschreiben (Vorgehen, Fehlermeldung, Ergebnis im Daten Tab)? Bei der Ausführung sollte es keinen Unterschied geben, das Backend ist dasselbe.
Offline
#4 2015-09-12 18:52:49
- tagtheworld
- Banned

- Registered: 2012-04-25
- Posts: 236
Re: overpass-t: healthcare in spanien - timeout & exportfragen
hallo und guten Abend Ikonor,
vielen Dank für Deine schnelle Antwort. Das ist alles sehr hilfreich. Also ich bin mit folgenden - Suche vorgegangen:
/*
This has been generated by the overpass-turbo wizard.
The original search was:
“hospital in Paris”
*/
[out:json][timeout:25];
// fetch area “paris” to search in
{{geocodeArea:paris}}->.searchArea;
// gather results
(
// query part for: “hospital”
node["amenity"="hospital"](area.searchArea);
way["amenity"="hospital"](area.searchArea);
relation["amenity"="hospital"](area.searchArea);
);
// print results
out body;
>;
out skel qt;
Das hat - wie gesagt Erfolg gehabt:
das folgende auch;:
/*
This has been generated by the overpass-turbo wizard.
The original search was:
“hospital in madrid”
*/
[out:json][timeout:25];
// fetch area “madrid” to search in
{{geocodeArea:madrid}}->.searchArea;
// gather results
(
// query part for: “hospital”
node["amenity"="hospital"](area.searchArea);
way["amenity"="hospital"](area.searchArea);
relation["amenity"="hospital"](area.searchArea);
);
// print results
out body;
>;
out skel qt;
mit dem dritten Versuch allerdings bin ich nicht weitergekommen - das hat einen Timeout ergeben. Wie soll ich hier vorgehen.
/*
This has been generated by the overpass-turbo wizard.
The original search was:
“hospital in france”
*/
[out:json][timeout:25];
// fetch area “france” to search in
{{geocodeArea:france}}->.searchArea;
// gather results
(
// query part for: “hospital”
node["amenity"="hospital"](area.searchArea);
way["amenity"="hospital"](area.searchArea);
relation["amenity"="hospital"](area.searchArea);
);
// print results
out body;
>;
out skel qt;
Die Fehlermeldung;
Ein Fehler ist während der Ausführung der Abfrage aufgetreten. Folgendes hat die API als Fehlermeldung zurückgegeben:
runtime error: Query timed out in "query" at line 12 after 26 seconds.
Frage - was kann ich hier tun - damit es nicht in einen timeout läuft. Gibt es Moeglichkeiten das zu umgehen?
Weiterhin: Wie kann ich das Ganze so filtern, dass ich
a. das ganze in einer Excel /( Calc-Tabelle) speichern kann - oder in einer MysqlDB.
Freue mich auf einen Tipp
Vg TagTheWorld ![]()
{
"version": 0.6,
"generator": "Overpass API",
"osm3s": {
"timestamp_osm_base": "2015-09-12T17:49:02Z",
"timestamp_areas_base": "2015-09-11T13:16:03Z",
"copyright": "The data included in this document is from www.openstreetmap.org. The data is made available under ODbL."
},
"elements": [{
"type": "node",
"id": 243487699,
"lat": 48.8389743,
"lon": 2.3594500,
"tags": {
"amenity": "hospital",
"name": "Clinique Paris V - Centre Médico Chirurgical",
"website": "http://www.generale-de-sante.fr/clinique-paris-v-paris"
}
},
{
"type": "node",
"id": 416548856,
"lat": 48.8660888,
"lon": 2.3735141,
"tags": {
"amenity": "hospital",
"name": "Clinique de Vinci (fermée)"
}
},
{
"type": "node",
"id": 977194624,
"lat": 48.8435512,
"lon": 2.3549103,
"tags": {
"amenity": "hospital",
"name": "Clinique Geoffroy Saint-Hilaire"
}
},
{
"type": "node",
"id": 1381921170,
"lat": 48.8415381,
"lon": 2.3513578,
"tags": {
"amenity": "hospital",
"name": "Centre municipal de santé"
}
},
{
"type": "node",
"id": 1462112612,
"lat": 48.8604665,
"lon": 2.2777715,
"tags": {
"amenity": "hospital",
"name": "Clinique de la Muette",
"website": "http://www.clinique-delamuette.fr"
}
},
https://wiki.openstreetmap.org/wiki/User:Tagtheworld - interested in all things concerning osm especially those related to the languages Perl, PHP, Python and the databases MySQL and Postgresql.
Offline
#5 2015-09-13 13:00:14
- ikonor
- Member
- Registered: 2010-11-08
- Posts: 637
- Website
Re: overpass-t: healthcare in spanien - timeout & exportfragen
mit dem dritten Versuch allerdings bin ich nicht weitergekommen - das hat einen Timeout ergeben. Wie soll ich hier vorgehen.
/*
This has been generated by the overpass-turbo wizard.
The original search was:
“hospital in france”
*/
[out:json][timeout:25];
// fetch area “france” to search in
{{geocodeArea:france}}->.searchArea;
...Die Fehlermeldung;
Ein Fehler ist während der Ausführung der Abfrage aufgetreten. Folgendes hat die API als Fehlermeldung zurückgegeben:
runtime error: Query timed out in "query" at line 12 after 26 seconds.Frage - was kann ich hier tun - damit es nicht in einen timeout läuft. Gibt es Moeglichkeiten das zu umgehen?
[timeout:25] gibt an wie hoch der Timeout ist:
http://wiki.openstreetmap.org/wiki/Over … QL#timeout
Standard ist 180 Sekunden, der Wizard setzt den mit 25 Sekunden recht niedrig. Die france Abfrage lief bei mir mehrere Minuten, also z.B. [timeout:25] auf [timeout:600] für 10 Minuten setzen.
Weiterhin: Wie kann ich das Ganze so filtern, dass ich
a. das ganze in einer Excel /( Calc-Tabelle) speichern kann - oder in einer MysqlDB.
siehe SimpleXMLElement::xpath - Daten einer OSM-Abfrage behandeln
Edit: topic -> post Link
Gruß,
Norbert
Last edited by ikonor (2015-09-13 13:02:57)
Offline
#6 2015-09-13 13:27:05
- ikonor
- Member
- Registered: 2010-11-08
- Posts: 637
- Website
Re: overpass-t: healthcare in spanien - timeout & exportfragen
oder auch das:
[adiff:"2014-07-01T00:00:00Z"];area[name="Argentina"][boundary=administrative]->.a;(node(area.a)[amenity=school][website];way(area.a)[amenity=school][website];);out center;
wenn ich aber das nun umbaue - für meine neue Abfrage: dann funktioniert das nicht richtig
[adiff:"2014-07-01T00:00:00Z"];area[name="Spain"][boundary=administrative]->.a;(node(area.a)[amenity=hospital][website];way(area.a)[amenity=hospital][website];);out center;
Das Problem ist, dass [name="Spain"] exakt nach diesem Tag sucht, das lautet aber "name=España". Eine Möglichkeit wäre ["name:de"=Spanien] zu nehmen, damit geht es:
[adiff:"2014-07-01T00:00:00Z"];area["name:de"=Spanien][boundary=administrative]->.a;(node(area.a)[amenity=hospital][website];way(area.a)[amenity=hospital][website];);out center;http://overpass-turbo.eu/s/bpT
Bei diff/adiff Abfragen ist das Ausgabeformat aber ein spezielles XML-Format, da Änderungen mit alter und neuer Version geliefert werden: Augmented Diffs.
Andere Formate werden eigenlich nicht unterstützt, json scheint aber zu gehen. Weiß nur nicht, was da genau geliefert wird und ob man das verwenden sollte.
Offline
#7 2015-09-13 15:08:02
- tagtheworld
- Banned

- Registered: 2012-04-25
- Posts: 236
Re: overpass-t: healthcare in spanien - timeout & exportfragen
hallo und guten Abend Ikonor
vielen Dank für deine Antwort u. die Hilfe - das ist super!! UND hilft sehr viel weiter...
LG TagTheworld
https://wiki.openstreetmap.org/wiki/User:Tagtheworld - interested in all things concerning osm especially those related to the languages Perl, PHP, Python and the databases MySQL and Postgresql.
Offline