Nominatim reverse - choisir parmi plusieurs valeurs
Posté : 05 janv. 2023, 10:21
J'utilise Nominatim Reverse pour récupérer le nom d'un lieu à partir de coordonnées GPS ($latdepart3 et $londepart3) à partir de ce code :
Problème :
Selon la taille du lieu (de la grande ville au hameau), les données restituées changent.
La valeur à récupérer peut être celle correspondant à, par ordre décroissant de taille :
- city
- town
- village
- hamlet
Dans tous les cas, dans la page restituée, une seule de ces informations figure (exemple : https://nominatim.openstreetmap.org/rev ... sdetails=1).
Comment puis-je modifier ce code pour obtenir la bonne donnée, quelque soit la restitution ?
Merci d'avance,
Code : Tout sélectionner
<?php
$latdepart3 = round($latdepart2, 5);
$londepart3 = round($londepart2, 5);
function getAddress($RG_Lat,$RG_Lon)
{
$json = "https://nominatim.openstreetmap.org/reverse?format=jsonv2&lat=".$RG_Lat."&lon=".$RG_Lon."&zoom=10&addressdetails=1";
$ch = curl_init($json);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:59.0) Gecko/20100101 Firefox/59.0");
$jsonfile = curl_exec($ch);
curl_close($ch);
$RG_array = json_decode($jsonfile,true);
return $RG_array['address']['village'];
//$RG_array['address']['town'];
//$RG_array['address']['city'];
//$RG_array['address']['hamlet'];
}
$addr = getAddress($latdepart3,$londepart3);
update_field('depart', $addr);
?>
Selon la taille du lieu (de la grande ville au hameau), les données restituées changent.
La valeur à récupérer peut être celle correspondant à, par ordre décroissant de taille :
- city
- town
- village
- hamlet
Dans tous les cas, dans la page restituée, une seule de ces informations figure (exemple : https://nominatim.openstreetmap.org/rev ... sdetails=1).
Comment puis-je modifier ce code pour obtenir la bonne donnée, quelque soit la restitution ?
Merci d'avance,