Aller au contenu

Places

Lister et rechercher des lieux, puis en lire le détail.

Lister les lieux d’une zone

GET/v1/places

Renvoie les lieux les plus proches du centre de la boîte.

Accès requis
places:read
Réponse
application/geo+json

Exemples

cURL

curl --get "$ATLAS_API_URL/v1/places" \
  --header "Authorization: Bearer $ATLAS_API_KEY" \
  --data-urlencode 'bbox=-15.99,18.07,-15.95,18.11' \
  --data-urlencode 'categories=healthcare' \
  --data-urlencode 'lang=fr' \
  --data-urlencode 'limit=100'

Node.js

const url = new URL("/v1/places", process.env.ATLAS_API_URL);
url.search = new URLSearchParams({
  bbox: "-15.99,18.07,-15.95,18.11",
  categories: "healthcare",
  lang: "fr",
  limit: "100",
}).toString();

const response = await fetch(url, {
  headers: { Authorization: `Bearer ${process.env.ATLAS_API_KEY}` },
});
const body = await response.json();
if (!response.ok) throw new Error(`ATLASMR ${response.status} ${body.code}`);
console.log(body.meta.status, body.features.length);

PHP

<?php

$url = getenv('ATLAS_API_URL') . '/v1/places?' . http_build_query([
    'bbox' => '-15.99,18.07,-15.95,18.11',
    'categories' => 'healthcare',
    'lang' => 'fr',
    'limit' => '100',
], '', '&', PHP_QUERY_RFC3986);

$curl = curl_init($url);
curl_setopt_array($curl, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('ATLAS_API_KEY')],
]);
$body = json_decode(curl_exec($curl), true, 512, JSON_THROW_ON_ERROR);
$status = curl_getinfo($curl, CURLINFO_RESPONSE_CODE);
if ($status !== 200) {
    throw new RuntimeException("ATLASMR {$status} {$body['code']}");
}
echo $body['meta']['status'], ' ', count($body['features']), PHP_EOL;

Les exemples lisent ATLAS_API_URL et ATLAS_API_KEY depuis l’environnement de votre serveur.

Paramètres

Paramètres /v1/places
ParamètreRèglesDescription
bboxObligatoireRequête
  • Boîte
  • west,south,east,north en WGS84, 2° au plus de chaque côté
Zone à lister.
categoriesFacultatifRequête
  • Liste
  • Valeurs : healthcare, shopping, food, education, administration, transport, worship, accommodation
  • Séparées par des virgules, chacune une fois
  • 200 caractères au plus
Ne garder que ces catégories.
langFacultatifRequête
  • Langue
  • Valeurs : fr, ar
  • Par défaut : fr
Langue préférée du nom affiché.
limitFacultatifRequête
  • Entier
  • De 1 à 500
  • Par défaut : 200
Nombre maximal de lieux renvoyés.

Réponse

Dans une collection, id, geometry et properties décrivent chaque élément de features.

Réponse /v1/places
ChampDescription
featuresLes résultats, dans l’ordre de l’API.
idRéférence de source osm:{type}/{id}. Ce n’est pas un identifiant durable.
geometry.coordinatesPosition [longitude, latitude] en WGS84.
properties.displayNom à afficher (text, language, source_tag, fallback), ou null pour un lieu sans nom.
properties.category.codelocality.<type> pour une localité, sinon une catégorie de lieu.
properties.position.kindOrigine de la position : point OSM, ou point calculé pour une surface.
meta.statusok avec des résultats, sinon no_match ; empty_catalog pour un catalogue de localités vide.
meta.matchedNombre de lieux correspondants avant la limite.
meta.truncatedtrue quand matched dépasse limit : réduisez la zone ou filtrez.
meta.catalog.noticesAvertissements sur le catalogue, à refléter dans votre interface.
meta.attributionMention à afficher partout où vous montrez ces données.

Erreurs

Toutes les erreurs suivent le format Problem Details.

Lire un lieu

GET/v1/places/osm/{type}/{id}

Renvoie un lieu par sa référence OSM, avec ses détails de source autorisés.

Accès requis
places:read
Réponse
application/geo+json

Exemples

Construisez le chemin avec properties.reference.type et properties.reference.id d’un résultat de liste ou de recherche.

Paramètres

Paramètres /v1/places/osm/{type}/{id}
ParamètreRèglesDescription
typeObligatoireChemin
  • Texte
  • Valeurs : node, way
Type de l’élément OSM.
idObligatoireChemin
  • Entier
  • Entier positif de 20 chiffres au plus
Identifiant de l’élément OSM.
langFacultatifRequête
  • Langue
  • Valeurs : fr, ar
  • Par défaut : fr
Langue préférée du nom affiché.

Réponse

Réponse /v1/places/osm/{type}/{id}
ChampDescription
idRéférence de source osm:{type}/{id}. Ce n’est pas un identifiant durable.
geometry.coordinatesPosition [longitude, latitude] en WGS84.
properties.displayNom à afficher (text, language, source_tag, fallback), ou null pour un lieu sans nom.
properties.namesNoms fournis par la source, par étiquette de langue, jamais traduits.
properties.category.codelocality.<type> pour une localité, sinon une catégorie de lieu.
properties.infoDétails de source autorisés, comme horaires ou téléphone, tels que la source les écrit.
meta.catalog.noticesAvertissements sur le catalogue, à refléter dans votre interface.
meta.attributionMention à afficher partout où vous montrez ces données.

Erreurs

Toutes les erreurs suivent le format Problem Details.

Avertissements et attribution

Chaque réponse liste ses avertissements dans meta.catalog.notices :

experimental_catalog
Catalogue expérimental : son contenu et sa forme peuvent changer.
partial_coverage
Couverture partielle : un lieu absent peut exister.
unverified_source
Données de source que ATLASMR n’a pas vérifiées.
not_linked_to_map_release
Non lié à la version de la carte : positions et noms peuvent différer du fond de carte.

Les données viennent d’OpenStreetMap, sous licence ODbL 1.0. Affichez cette mention, avec son lien, partout où vous les montrez :

© OpenStreetMap contributors

Places — Documentation développeur ATLASMR