Aller au contenu principal

Exemples Python

Ces exemples utilisent la bibliothèque requests.

pip install requests

Géocodage direct​

import os
import requests

API_KEY = os.environ["GEOCODEME_API_KEY"]
BASE_URL = "https://api.geocodeme.net/v1"


def geocode(query: str, limit: int = 1) -> dict:
response = requests.get(
f"{BASE_URL}/geocode",
params={"q": query, "limit": limit},
headers={"X-Api-Key": API_KEY},
)
response.raise_for_status()
return response.json()


result = geocode("1 rue de Rivoli, Paris")
location = result["results"][0]
print(f"{location['lat']}, {location['lon']}")

Géocodage inverse​

def reverse_geocode(lat: float, lon: float) -> dict:
response = requests.get(
f"{BASE_URL}/reverse",
params={"lat": lat, "lon": lon},
headers={"X-Api-Key": API_KEY},
)
response.raise_for_status()
return response.json()


result = reverse_geocode(48.8566, 2.3522)
# /v1/reverse renvoie un objet "result" unique (ou None), pas un tableau
if result["result"] is not None:
print(result["result"]["display_name"])

Map matching​

def match_route(coordinates: list, profile: str = "car") -> dict:
response = requests.post(
f"{BASE_URL}/match",
json={
"coordinates": coordinates,
"profile": profile,
"geometries": "geojson",
},
headers={"X-Api-Key": API_KEY},
)
response.raise_for_status()
return response.json()


result = match_route([
[2.3522, 48.8566],
[2.3488, 48.8534],
[2.3470, 48.8521],
])
print(f"Distance: {result['distance_meters']}m (confidence: {result['confidence']})")

Snap to road​

def snap_to_road(lat: float, lon: float) -> dict:
response = requests.get(
f"{BASE_URL}/nearest",
params={"lat": lat, "lon": lon},
headers={"X-Api-Key": API_KEY},
)
response.raise_for_status()
return response.json()


result = snap_to_road(48.8566, 2.3522)
snapped = result["snapped"]
if snapped is not None:
print(f"Nearest road: {snapped['name']} ({snapped['distance_meters']}m away)")