v1
POST
Requêtes spatiales
Les requêtes spatiales trouvent des enregistrements par localisation géographique. Tous les endpoints spatiaux utilisent POST avec un corps JSON et nécessitent au minimum la portée read-only.
POST /v1/records/query/bbox
Trouver des enregistrements dans une bounding box (rectangle sur la carte).
Corps de la requête
{
"min_lng": -74.01,
"min_lat": 40.70,
"max_lng": -73.95,
"max_lat": 40.80,
"form_id": "frm_xyz",
"limit": 100
}
| Champ | Requis | Description |
|---|---|---|
min_lng |
Oui | Longitude ouest |
min_lat |
Oui | Latitude sud |
max_lng |
Oui | Longitude est |
max_lat |
Oui | Latitude nord |
form_id |
Non | Filtrer par formulaire |
project_id |
Non | Filtrer par projet |
limit |
Non | Résultats max (par défaut 50, max 500) |
Exemple
curl -X POST \
-H "X-API-Key: mk_live_..." \
-H "Content-Type: application/json" \
-d '{"min_lng": -74.01, "min_lat": 40.70, "max_lng": -73.95, "max_lat": 40.80}' \
"https://<ref>.supabase.co/functions/v1/api-gateway/v1/records/query/bbox"
POST /v1/records/query/radius
Trouver des enregistrements dans un rayon (cercle) à partir d'un point central.
Corps de la requête
{
"lng": -73.985,
"lat": 40.758,
"radius_meters": 500,
"form_id": "frm_xyz"
}
| Champ | Requis | Description |
|---|---|---|
lng |
Oui | Longitude du centre |
lat |
Oui | Latitude du centre |
radius_meters |
Oui | Rayon de recherche en mètres |
form_id |
Non | Filtrer par formulaire |
project_id |
Non | Filtrer par projet |
limit |
Non | Résultats max (par défaut 50, max 500) |
Exemple
curl -X POST \
-H "X-API-Key: mk_live_..." \
-H "Content-Type: application/json" \
-d '{"lng": -73.985, "lat": 40.758, "radius_meters": 500}' \
"https://<ref>.supabase.co/functions/v1/api-gateway/v1/records/query/radius"
POST /v1/records/query/intersects
Trouver des enregistrements qui intersectent avec n'importe quelle géométrie GeoJSON (polygone, ligne, etc.).
Corps de la requête
{
"geometry": {
"type": "Polygon",
"coordinates": [[
[-73.99, 40.75],
[-73.98, 40.75],
[-73.98, 40.76],
[-73.99, 40.76],
[-73.99, 40.75]
]]
},
"form_id": "frm_xyz"
}
| Champ | Requis | Description |
|---|---|---|
geometry |
Oui | Objet géométrie GeoJSON |
form_id |
Non | Filtrer par formulaire |
project_id |
Non | Filtrer par projet |
limit |
Non | Résultats max (par défaut 50, max 500) |
Exemple : Trouver des enregistrements dans un polygone
curl -X POST \
-H "X-API-Key: mk_live_..." \
-H "Content-Type: application/json" \
-d '{
"geometry": {
"type": "Polygon",
"coordinates": [[[-73.99,40.75],[-73.98,40.75],[-73.98,40.76],[-73.99,40.76],[-73.99,40.75]]]
}
}' \
"https://<ref>.supabase.co/functions/v1/api-gateway/v1/records/query/intersects"
Réponse (tous les endpoints spatiaux)
{
"ok": true,
"data": [
{
"id": "rec_abc123",
"type": "record",
"form_id": "frm_xyz",
"properties": {"inspector_name": "Jane Smith"},
"geometry": {"type": "Point", "coordinates": [-73.985, 40.758]},
"created_at": "2026-02-15T14:30:00Z",
"status": "active"
}
]
}
Cas d'utilisation
- Cartes de tableau de bord : Charger les enregistrements visibles dans la vue carte actuelle avec bounding box
- Alertes de proximité : Trouver les inspections à moins de 1 km d'un nouveau bon de travail avec rayon
- Analyse de zones : Trouver tous les enregistrements dans un polygone de limite réglementaire avec intersection
Besoin d'aide avec l'API ? Contactez notre équipe support.