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'];