Codes sources pour l’API de géocodage
Les premiers tests
Pour tester nos API, le premier réflexe a avoir est certainement de saisir des requêtes directement dans la barre d’URL de votre navigateur. Vous visualiserez ainsi les résultats sous forme de données brutes, ce qui peut être utile avant de passer au prototypage d’une application.
En ligne de commande sous Linux
Voici un script shell qui utilise le programme wget pour interroger l’API de géocodage avec le protocole HTTP. Cela fonctionne en ligne de commande sous Linux, mais également avec un système Unix ou Mac.
1
2
|
#!/bin/bash wget "http://maps.open-street.fr/api/geocoding/?address=1%2C+rue+de+la+paix%2C+75002%2C+Paris%2C+France&sensor=false&key=cle-fournie" |
Voici un script équivalent mais qui utilise curl pour interroger l’API
1
2
|
#!/bin/bash curl "http://maps.open-street.fr/api/geocoding/?address=1%2C+rue+de+la+paix%2C+75002%2C+Paris%2C+France&sensor=false&key=cle-fournie" |
Avec le langage PHP
Voici un script PHP plus complet, qui interroge l’API de géocodage, puis décode le format json en array PHP pour accéder aux données. On peux exécuter ce script soit en ligne de commande, soit en navigant sur la page hébergée sur un serveur web qui supporte PHP.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
<?php // Adresse à géocoder: $stringAddress = "1 rue de la paix 75002 Paris France" ; // Encodage HTML de l'adresse: $stringAddressUrlEncoded = urlencode( $stringAddress ); // Définition du serveur: $stringServer = "http://maps.open-street.fr/" ; // Définition du début de la requête: $stringUrl = "api/geocoding/" ; // Clé OpenStreet ne permettant que des recherches 'rue de la paix à Paris': $stringOpenStreetKey = "cle-fournie-par-pcstreet" ; // Constitution de la ligne d'interrogation: $stringFullUrl = $stringServer . $stringUrl . "?address=" . $stringAddressUrlEncoded . "&sensor=false&key=" . $stringOpenStreetKey ; // Récuperation du contenu JSON: $stringContentJson = file_get_contents ( $stringFullUrl ); // Décodage du contenu JSON: $arrayJson = json_decode( $stringContentJson , true); // Affichage de l'adresse normalisée: echo $arrayJson [ 'results' ][0][ 'formatted_address' ][0]; // Affichage de la latitude: echo $arrayJson [ 'results' ][0][ 'geometry' ][ 'location' ][ 'lat' ]; // Affichage de la longitude: echo $arrayJson [ 'results' ][0][ 'geometry' ][ 'location' ][ 'lng' ]; |