Notions de base
- URL de base
https://kulturdb.de/api/v1
- Accès
- en lecture seule (HTTP
GET), sans identifiant ni clé API
- Formats
- JSON (RFC 8259), GeoJSON (RFC 7946,
application/geo+json), jeu de caractères UTF-8
- Langue
- Les noms de champs, les valeurs de filtre et les textes sont en allemand.
/objekte/{id}?sprache=fr (ou sprache=en, sprache=nl) renvoie les termes de classification en français (ou en anglais, en néerlandais).
- Coordonnées
- WGS 84 (EPSG:4326), ordre dans GeoJSON
[longitude, latitude]
- Accès via un navigateur
- CORS activé (
Access-Control-Allow-Origin: *) – utilisable directement depuis des applications web
- Mise en cache
- Les réponses contiennent des en-têtes
Cache-Control (1 à 60 minutes)
- Erreurs
- statut HTTP approprié (
400 paramètres invalides, 404 introuvable) avec {"error": "…"}
- Gestion des versions
- La version fait partie du chemin d’accès (
/v1) ; les modifications susceptibles de perturber le fonctionnement des applications existantes n’apparaissent que dans une nouvelle version.
- URL des objets
- L’identifiant de l’objet est permanent :
https://kulturdb.de/objekt/{id}, page en français https://kulturdb.de/fr/objekt/{id}
Points de terminaison
GET /objekte.geojson
Objets sous forme de FeatureCollection GeoJSON – idéal pour les clients cartographiques (NETGIS, OpenLayers, Leaflet, QGIS). Tous les filtres peuvent être combinés.
| Paramètre | Valeur | Signification |
bbox | minLon,minLat,maxLon,maxLat | uniquement les objets situés dans les limites de la carte (WGS 84) |
limit | 1 – 50 000 | nombre maximal (valeur par défaut : 5 000) |
| + tous les filtres |
https://kulturdb.de/api/v1/objekte.geojson?bbox=6.62,49.74,6.66,49.77&limit=100
https://kulturdb.de/api/v1/objekte.geojson?objektart=Burgen
GET /objekte/{id}
Un seul objet avec ses coordonnées, une brève description, des photos et les crédits des photos. Facultatif sprache=fr, sprache=en ou sprache=nl : termes de classification et URL de la page dans cette langue. Exemple de réponse
https://kulturdb.de/api/v1/objekte/99
https://kulturdb.de/api/v1/objekte/99?sprache=fr
GET /punkte
Liste très compacte de points pour les cartes de regroupement comportant plusieurs milliers d’objets :
{"felder": ["id","lat","lon","titel","bereich","kategorie"], "bereiche": […], "kategorien": […], "daten": [[…], …]} –
bereich et kategorie correspondent aux index dans les listes bereiche et kategorien (-1 = aucun). Tous les filtres sont possibles.
https://kulturdb.de/api/v1/punkte?landkreis=Vulkaneifel
GET /vorschlaege
Recherche rapide (jusqu’à 10 résultats) pour les champs de saisie avec suggestions. Paramètre q : au moins 2 caractères.
https://kulturdb.de/api/v1/vorschlaege?q=porta
GET /
Aperçu lisible par machine de tous les points de terminaison.
https://kulturdb.de/api/v1
Exemples
QGIS
Couche › Ajouter une couche › Ajouter une couche vectorielle, type de source Protocole : HTTP(S), sous forme d’URI par exemple :
https://kulturdb.de/api/v1/objekte.geojson?landkreis=Trier-Saarburg&limit=50000
JavaScript
const res = await fetch('https://kulturdb.de/api/v1/objekte.geojson?objektart=Burgen');
const geojson = await res.json();
console.log(geojson.features.length + ' castles');
Leaflet
fetch('https://kulturdb.de/api/v1/objekte.geojson?gemeinde=Arzfeld')
.then((r) => r.json())
.then((data) => L.geoJSON(data, {
onEachFeature: (f, layer) => layer.bindPopup(
`<a href="${f.properties.url}">${f.properties.titel}</a>`)
}).addTo(map));
OpenLayers / NETGIS Client Suite
new ol.layer.Vector({
source: new ol.source.Vector({
url: (extent) => 'https://kulturdb.de/api/v1/objekte.geojson?bbox=' +
ol.proj.transformExtent(extent, 'EPSG:3857', 'EPSG:4326').join(','),
format: new ol.format.GeoJSON(),
strategy: ol.loadingstrategy.bbox
})
});
Exemple de réponse /objekte/99
{
"id": 99,
"titel": "Porta Nigra (1)",
"untertitel": null,
"ort": "Trier, Mitte-Gartenfeld",
"gemeinde": "Trier",
"ortsteil": "Mitte-Gartenfeld",
"landkreis": "Kreisfreie Stadt Trier",
"bereich": "Bau- und Kunstdenkmale",
"kategorie": "Wehrbauten und militärische Anlagen",
"objektart": "Stadtbefestigungen",
"epoche": "Kelten- / Römerzeit",
"zeit": "170 nach Chr.",
"url": "https://kulturdb.de/fr/objekt/99-trier-porta-nigra-1",
"bild": "https://kulturdb.de/media/thumbs/480/lazarus_porta-nigra_1912.jpg",
"lat": 49.759634,
"lon": 6.644084,
"beschreibung": "Am Nordende der Fußgängerzone. Beschreibung: Die sogenannte Porta Nigra gehört zu den am besten erhaltenen Stadttoren des römischen Reiches. Das mächtige Tor im Norden der Stadt wurde zusammen mit der Stadtmauer und weiteren Toren gleicher Art wohl im letzten Drittel des 2. Jahrhunderts n. Chr …",
"bilder": [
{
"url": "https://kulturdb.de/bilder/lazarus_porta-nigra_1912.jpg",
"quelle": "Max Lazarus: Die Porta Nigra in Trier, 1912. © Stadtmuseum Simeonstift Trier."
},
{
"url": "https://kulturdb.de/bilder/lazarus_porta-nigra2_1926.jpg",
"quelle": "Max Lazarus: Blick durch ein Fenster der Porta Nigra auf St. Gangolf, 1926. © Stadtmuseum Simeonstift Trier."
},
{
"url": "https://kulturdb.de/bilder/trier_porta_nigra_1.jpg",
"quelle": "Internet"
},
{
"url": "https://kulturdb.de/bilder/trier_porta-nigra_eby.jpg",
"quelle": "© David W. Eby, Homepage"
},
{
"url": "https://kulturdb.de/bilder/trier_porta_nigra_02_iduhr.jpg",
"quelle": "© Inge Duhr, Trier, 2020."
}
],
"stand": "2020-07-06"
}