Mapbox Vector Tiles (MVT) haben durch ihre geringe Größe den Vorteil, dass sie in der Visualisierung optimal eingesetzt werden können. Die On-the-fly-Generierung ermöglicht eine zusätzliche Filterung mit Parametern der allgemeinen Datenschnittstelle, mit der die Inhalte an die spezifischen Anforderungen angepasst werden können.
Es muss eine Konfiguration hinterlegt werden, damit die Anfrage von Geodaten aktiviert ist.
Anfragen von Daten im Format MVT werden über die MVT-Schnittstelle durchgeführt, deren Route sich unter /mvt/v1/...
befindet.
Anfragen mit Filtern und Einschränkungen funktionieren analog zu den Anfragen von GeoJSONs. Die in den MVTs codierten Attribute entsprechen ebenfalls den Attributen der gesendeten GeoJSONs.
Der Name des Daten-Layers in den Tiles lautet standardmäßig "dataCycle". Mit dem optionalen Parameter layerName
, der bei Anfragen mitgeschickt werden kann, ist es mögliche einen eigenen Namen zu vergeben.
Zur Authentifizierung empfiehlt sich die Verwendung eines API-Token, es können aber prinzipiell alle für die Datenschnittstelle angebotenen Authentifizierung-Mechanismen genutzt werden.
Zu beachten ist, dass eine implizite Filterung auf Geo-Objekte aktiv ist. Es werden keine Daten ohne Koordinaten ausgegeben.
Es können Einzelobjekte oder Ergebnisse von Suchen bzw. Inhaltssammlungen abgefragt werden. Dafür sind die Routen /mvt/v1/things/<THING-ID>
und /mvt/v1/endpoints/<ENDPOINT-ID>
vorgesehen.
Anfragen können als GET oder POST-Methoden gesendet werden.
Für die Einbindung der MVT in eine Kartenanwendung muss die URL nach folgendem Schema aufgebaut sein:
https://<URL>/mvt/v1/endpoints/<ENDPOINT-ID>/{z}/{x}/{y}.pbf
Für eine Anfrage über /mvt/v1/endpoints/<ENDPOINT-ID>
kann die Bounding Box (BBox) für die Summe der zurückgegebenen Objekte abgefragt werden. Dafür muss der Parameter bbox
im JSON-Body mitgegeben werden.
curl --request POST \
--url https://<URL>/mvt/v1/endpoints/<ENDPOINT-ID> \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/json' \
--data '{
"bbox": true
}'
cluster
(default: false)Gibt an, ob Ergebnisse geclustered werden sollen
clusterLines
(default: false)Gibt an, ob auch Linien geclustered werden sollen
clusterItems
(default: false)Gibt an, ob für die Inhalte in einem Cluster zusätzliche Attribute ausgeliefert werden sollen,
wie z.B. @type, name, ...
clusterMaxZoom
(default: null)Gibt die maximale Zoomstufe an, für die geclustered werden soll
POST https://<URL>/mvt/v1/endpoints/<ENDPOINT-ID>/{z}/{x}/{y}.pbf
{
"cluster": true,
"clusterLines": true,
"clusterItems": true,
"clusterMaxZoom": 11
}
GET https://<URL>/mvt/v1/endpoints/<ENDPOINT-ID>/{z}/{x}/{y}.pbf?cluster=true&clusterLines=true&clusterItems=true&clusterMaxZoom=11