EWinrichtungen mittels overpass-api finden

Hi,

seit vielen Jahren benutzte ich Nominatim, um z.B. zu prüfen, welche Schulen sich in einem bestimmten Bereich befinden. Dazu diente die Routine


<?php
$lat=51.22222;
$lon=6.77927;
$uk1=$lon-0.04300; // 3 KM
$uk2=$lat-0.02700; // 3 KM
$uk3=$lon+0.04300; // 3 KM
$uk4=$lat+0.02700; // 3 KM
$a = file_get_contents('http://nominatim.openstreetmap.org/search?viewbox='.$uk1.','.$uk2.','.$uk3.','.$uk4.'&bounded=1&format=json&polygon=0&addressdetails=1&q=schule&limit=999'); 
$b = json_decode($a);
echo "<pre>";
print_r ($b);
?>

Nun wurde ich aber von Nominatim gesperrt. Ich suchte daher nach einer Alternative, die ich wahrscheinlich mit overpass-api gefunden habe. So liefert mir die Routine


<?php
$lat=51.22222;
$lon=6.77927;
$uk1=$lon-0.04300; // 3 KM
$uk2=$lat-0.02700; // 3 KM
$uk3=$lon+0.04300; // 3 KM
$uk4=$lat+0.02700; // 3 KM
$a = file_get_contents('http://www.overpass-api.de/api/interpreter?data=[out:json];node[amenity=pharmacy]('.$uk2.','.$uk1.','.$uk4.','.$uk3.');out+999;');
$b = json_decode($a);
echo "<pre>";
print_r ($b);
?>

eine Ausgabe sämtlicher Apotheken.

Bisher habe ich herausgefunden, das die Schlüsselwörter für Schule, Kindergarten, Restaurant die Begriffe “school, kindergarten, restaurant” sind.

Aber leider finde ich keine Erklärung, wie die Schlüsselwörter von

medizinische Einrichtung (Arztpraxis oder Krankenhaus)
Supermarkt
Naherholungsgebiet

lauten. Falls es nicht möglich ist würde ich gerne wissen, ob es einen alternativen Geoserver mit Api Funktion gibt. Notfalls auch gegen Bezahlung. Die Seite

https://geocode.xyz

bietet z.B. die Möglichkeit an, Anhand der Adresse die Koordinaten per JSON zu ermitteln. Aber eben nicht die Möglichkeit, z.B. Schulen etc. zu finden.

Könnt Ihr mir helfen? Danke im voraus für Eure Hilfe

LG Jörg

Tipp: https://help.openstreetmap.org/questions/59788/calling-nominatim-with-file_get_contents

Hallo Jörg,

Hast du Nominatim bislang zu geschäftlichen oder dienstlichen Zwecken genutzt?

Viele Grüße

Michael

Es ist für eine gewerbliche Seite. Mit einem Script wurden die Daten von Nominatim ausgelesen und in eine Datei geschrieben. Leider habe ich erst jetzt gelesen, das nur max. eine Abfrage pro Sekunde erlaubt ist. Ich habe jedoch mehrere Abfragen ohne Pause durchgeführt (Schulen, Kindergarten etc.).

Wann immer ein Kunde die Seite aufgerufen hat, erschien die openstreetmap Karte (mit verlangtem Logo etc.) und z.B. Symbole für Schulen, dessen Koordinaten aus der besagten Datei gelesen wurden. Es wurden also keine weiteren Anfragen über Nominatim durchgeführt.

Hi,

habe hetzt mal den “User Agent” mit eingebaut und siehe da. Bisher arbeitet die Routine wieder problemlos. Ich hoffe, das es so bleibt. Auf jeden Fall habe ich nach jedem weiteren Nominatim Aufruf mittels


<?php
sleep(1);
?>

eine Verzögerung von einer Sekunde eingebaut. Und da Nominatim durch verschiedene Suchbegriffe bis zu 10 mal aufgerufen wird, ergibt sich eine Verzögerung von 10 Sekunden. Damit dürfte es keine weiteren Probleme geben, oder?

LG
Jörg

Tipp: Nominatim lokal aufsetzen, dann entfällt die Nutzungsbegrenzung.

https://geocoder.opencagedata.com