Page 1 sur 1

Utilisier des informations contenu dans un objet JSON

Posté : 21 sept. 2019, 17:01
par Greemty
Bonjour,
je souhaite réaliser un site avec une carte, pour ce faire je dois géocoder des adresses ce que je pense avoir réussi mais les informations que je reçois sont sous la forme d'un objet JSON et j'aimerai récupérer seulement la latitude et la longitude de manière à pouvoir placer un marqueur sur ma carte. Voci mon code :

<?php
$requser = $bdd->prepare('SELECT * FROM infos WHERE id = ?');
$requser->execute(array(1));
$userinfo = $requser->fetch();
?>
<script>
/* Différents marqueurs */
var geocode = <?php echo $userinfo['cooradresselog1']; ?>;
var lat = geocode[0]["lat"][0];
var lon = geocode[0]["lon"][0];
var marker = L.marker([lon,lat]).addTo(map);
marker.bindPopup("").closePopup();
</script>

Les données stockées dans ma base de données sont les suivantes :

[{"place_id":"222927656","licence":"https:\/\/locationiq.com\/attribution","osm_type":"relation","osm_id":"145776","boundingbox":["49.2608124","49.2934736","-0.7275671","-0.6757378"],"lat":"49.2764624","lon":"-0.7024738","display_name":"Bayeux, Calvados, Normandy, Metropolitan France, 14400, France","class":"boundary","type":"administrative","importance":0.92352299096107,"icon":"https:\/\/locationiq.org\/static\/images\/mapicons\/poi_boundary_administrative.p.20.png"}]

Merci d'avance pour vos réponses !

Re: Utilisier des informations contenu dans un objet JSON

Posté : 21 sept. 2019, 20:53
par or 1
il faut commencer par décoder ce json https://www.php.net/manual/fr/function.json-decode.php
puis afficher le résultat permet de trouver comment accéder aux champs lat et lon

Re: Utilisier des informations contenu dans un objet JSON

Posté : 21 nov. 2019, 22:35
par zlepoizon
Je sais pas si c’est la bonne manière mais ça fonctionne. Remplacer * par le key de l’api

$json = file_get_contents("https://maps.googleapis.com/maps/api/ge ... gique&key=*********");

$parsed_json = json_decode($json);
// echo'<pre>';
// var_dump(json_decode($json));
// echo'</pre>';

echo $maLatitude= $parsed_json->{'results'}[0]->{'geometry'}->{'location'}->{'lat'};
// latitude

echo $maLongitude= $parsed_json->{'results'}[0]->{'geometry'}->{'location'}->{'lng'};
// longitude
?>