Mit folgender einfachen Klasse kann man aus einer Adresse die Längen-/Breitengrade ermitteln. Genutzt wird die Nominatim API. Nutzungsbedingungen der Nominatim API.
abstract class Nominatim { public static function getLongLatFromAddress(string $strAddress): array { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://nominatim.openstreetmap.org/search?q=' . urlencode($strAddress). '&format=json&polygon=1&addressdetails=1'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_REFERER, 'https://sonnenberggmbh.de/'); $output = curl_exec($ch); curl_close($ch); $output = @json_decode($output, true); if (is_array($output) && isset($output[0])) return [ 'long' => $output[0]['lon'], 'lat' => $output[0]['lat'], 'raw' => $output ]; else return [ 'long' => null, 'lat' => null, 'raw' => null ]; } }
Anwendung:
$result = Nominatim::getLongLatFromAddress('Burgscheidungen'); echo "Längen-/Breitengrad: ".$result['long'].' / '.$result['lat'];