<kaleidr-map> — das Element
Die deklarative Fassade. Element einfügen und Attribute setzen; es wird beim Verbinden gemountet und beim Entfernen abgebaut.
<kaleidr-map product="viewer" share-id="abcd1234" style="height:480px"></kaleidr-map>
Attributtabelle
Geprüft gegen kaleidr-sdk/packages/embed/src/element.ts. Attributnamen
verwenden kebab-case; die entsprechenden Kaleidr.mount(...)-Optionsnamen in
kaleidr.js verwenden camelCase.
| Attribut | Produkte | Erforderlich | Standard | Bedeutung |
|---|---|---|---|---|
product | alle | ja | — | chat | viewer | editor | tile |
publishable-key | chat, editor, tile | ja* | — | kld_pk_live_…; wird zur Laufzeit gegen ein Session-Token ausgetauscht |
api-key | chat, editor, tile | — | — | Veralteter Alias; akzeptiert auch älteres kld_live_… |
share-id | viewer | ja | — | Veröffentlichte Karte / Share-ID; fehlt sie, wird beim Bundle-Laden ein Fehler ausgelöst |
map-id | viewer | — | — | Alias für share-id |
style-id | tile, editor | optional | tile: Viewer-Standard; editor: Org-Standard → kaleidr-morning | Basemap-Style-ID oder (Editor) vollständige Style-URL |
map-target | chat | optional | — | CSS-Selektor für das Host-Kartenelement |
contained | chat | optional | false | Dockt das Panel im Mount-Element an, statt es auf document.body schweben zu lassen |
center | viewer, tile, editor | optional | — | lon,lat |
zoom | viewer, tile, editor | optional | editor: 2 | Initialer Zoom |
pitch | viewer, tile, editor | optional | 0 | Initiale Neigung |
bearing | viewer, tile, editor | optional | 0 | Initiale Ausrichtung |
theme | chat, editor | optional | — | JSON-CSS-Token-Objekt als String |
doorway | alle | optional | Produktstandard | iframe | attach-Überschreibung |
base | alle | optional | https://cdn.kaleidr.com | CDN-Origin für lazy geladene Bundles (/embed/v1/*.js) |
viewer-base | viewer, tile | optional | https://map-embed.kaleidr.com | Origin, den das iframe lädt — unabhängig vom Bundle-CDN |
api-base | chat, editor, tile | optional | https://api.kaleidr.com/inference-api | Muss /inference-api enthalten. Ein reiner Origin wie https://api.kaleidr.com liefert beim Session-Austausch 404. Gilt für jedes Produkt mit Session-Austausch (chat, editor, tile). |
tile-base | editor | optional | https://tile.kaleidr.com | Tile-CDN zur Auflösung von Katalog-style-id-Werten |
flag | alle | optional | — | Dormancy-Überschreibung pro Element |
* Erforderlich für autorisierte/abgerechnete Nutzung. Viewer benötigt keinen Schlüssel; das Übergeben eines Schlüssels an ein
Viewer-Embed wird mit product_not_allowed abgelehnt.
Gib dem Element eine Höhe (Inline-style oder CSS). Jedes Produkt füllt seinen
Container; ein iframe-Produkt in einem nicht dimensionierten Container fällt auf
feste 500px zurück, damit es sichtbar bleibt.
Handle matrix
Verhalten wie unter /embed/v1/ ausgeliefert. Nicht unterstützte Kombinationen werfen keinen Fehler —
das SDK protokolliert eine [kaleidr]-Warnung und kehrt zurück. Das ist Vertragsbestandteil des Major-Alias v1;
das Entfernen aufrufbarer Methoden wäre eine verhaltensbrechende Änderung.
| Methode | chat | viewer | editor | tile |
|---|---|---|---|---|
destroy() | ja | ja | ja | ja |
setCamera(camera) | no-op | ja | ja | ja |
setTheme(theme) | ja (live) | n/a | nur beim Mounten | n/a |
setStyle(styleId) | n/a | n/a | n/a | nur bei tile verfügbar |
Chat steuert die Kartenkamera nicht — verwende nach Kaleidr.mount(...)
die Kamera-API deiner Karteninstanz. Live-setTheme für Editor folgt in einer späteren SDK-
Version; theme beim Mounten funktioniert bereits.
Live-Updates
center, zoom, pitch und bearing werden beobachtet und rahmen viewer,
editor und tile ohne erneutes Mounten neu ein. Änderungen an theme aktualisieren Chat live;
beim Editor bleibt das Theme auf den Mount-Zeitpunkt beschränkt.
Chat + map-target
Chat hängt sich an deine aktive Karte an, die ein String-Attribut nicht transportieren kann. Es gibt zwei Möglichkeiten, sie bereitzustellen:
- Imperativ (empfohlen):
Kaleidr.mount(el, { product: 'chat', publishableKey, map, contained: true }). - Deklarativ: Speichere deine Karteninstanz auf dem Host-Element als
hostEl.__kaleidrMap__ = mapund setze anschließendmap-target="#host".
Ohne Karte läuft Chat headless (keine Karteninteraktionen).