Zum Hauptinhalt springen

Editor-Referenz

product="editor" integriert die Kartenbearbeitungswerkzeuge von Kaleidr in Ihre Seite. Der Editor erstellt eine eigene Karte im Mount-Ziel und legt seine Bedienfelder darüber. Er läuft in Ihrem Dokument, nicht in einem iframe.

Der eingebettete Editor speichert Änderungen nur im Arbeitsspeicher der Seite. Ein Speichern, Exportieren oder Veröffentlichen aus dem Embed ist nicht möglich; es gibt auch keinen Änderungs-Callback. Ein Neuladen oder handle.destroy() verwirft die Bearbeitungen.

SchlüsselVeröffentlichbarer Schlüssel (kld_pk_live_…). Erforderlich.
Berechtigungdesign. Standardmäßig in neuen Schlüsseln enthalten.
TarifJeder Tarif, auch Free.
DarstellungIn Ihrer Seite.
SpeicherungKeine.
InstanzenEine pro Seite.
CSPSiehe Editor-Abschnitt unter Content Security Policy.

Eine Anleitung finden Sie unter Editor einbinden.

Funktionsumfang​

EnthaltenNicht enthalten
Text auf der Karte platzierenRegisterkarte Daten und Datensatz-Upload
Bild: Bilder auf der Karte platzierenStudio-Designkatalog mit Musterkarten und Stiltypen
MarkerKI-Bedienfeld
Popup3D-Modellbibliothek
Hintergrund: Fläche hinter der KarteTeilen und Veröffentlichen
Layer: Beschriftungen der Basiskarte, 3D-Gebäude, Licht und GeländeProjekte: Karten speichern, öffnen und auflisten
Design: Basiskartenmerkmal, Kategorie oder Region auswählen und umgestaltenAnmeldung
Legende: Beschriftungs- und Legendeneinstellungen

Die linke Spalte entspricht der Werkzeugleiste des Editors von oben nach unten. Design ist im Embed das Werkzeug zur Umgestaltung; der Designkatalog von Studio ist nicht enthalten.

Einbindung​

const handle = Kaleidr.mount('#editor', {
product: 'editor',
publishableKey: 'kld_pk_live_…',
styleId: 'kaleidr-night',
center: [-0.1276, 51.5072],
zoom: 12,
});
<kaleidr-map product="editor" publishable-key="kld_pk_live_…"
style-id="kaleidr-night" center="-0.1276,51.5072" zoom="12"
style="display:block; height:640px"></kaleidr-map>

Das Mount-Ziel muss eine Höhe haben. Der Editor nutzt 100 % seiner Breite und Höhe. Er fügt dem Ziel eigene Elemente hinzu, ohne vorhandene Elemente zu entfernen. Nutzen Sie daher ein leeres Ziel.

Konfigurationsoptionen​

Mount-OptionAttributTypStandardwertErforderlichBeschreibung
productproduct'editor'keinerjaWählt den Editor.
publishableKeypublishable-keyZeichenfolgekeinerjakld_pk_…-Schlüssel mit Berechtigung design. Ein Serverschlüssel kld_sk_… wird im Browser noch vor einer Anfrage abgelehnt.
styleIdstyle-idZeichenfolgeStandardbasiskarte Ihrer Organisation, sonst kaleidr-morningneinStil-ID wie kaleidr-night oder vollständige Stil-URL. Siehe Stil-IDs. Beim Mount festgelegt.
centercenter[longitude, latitude]; als Attribut "longitude,latitude"[0, 0]neinAnfangsmittelpunkt.
zoomzoomZahl2neinAnfangszoom. Funktioniert ohne center.
pitchpitchZahl, Grad0neinAnfängliche Neigung.
bearingbearingZahl, Grad0neinAnfangsausrichtung.
themethemeObjekt oder JSON-Zeichenfolge eines ObjektskeinerneinBis zu 17 benannte Schlüssel. Siehe Theme-Schlüssel. Nur beim Mount gelesen.
apiBaseapi-baseURLhttps://api.kaleidr.com/inference-apineinZiel des Sitzungsaustauschs. Muss /inference-api enthalten. In Produktion nicht erforderlich.
tileBasetile-baseURLhttps://tile.kaleidr.comneinHost, über den Stil-IDs aufgelöst werden. In Produktion nicht erforderlich.
basebaseURLhttps://cdn.kaleidr.comneinUrsprung, von dem das SDK editor.js lädt. Nur der Ursprung zählt; akzeptiert werden ausschließlich die unter Base-Überschreibung genannten Ursprünge.
enabledflagbooleschkeinerneinMount-spezifischer Teil der Aktivierungssperre.

shareId, map, mapTarget, contained und viewerBase beeinflussen einen Editor-Mount nicht. Es gibt keine Option styleUrl; übergeben Sie eine URL als styleId.

Basiskarte​

Der Editor wählt die Basiskarte in dieser Reihenfolge:

  1. styleId, falls angegeben.
  2. Die Standardbasiskarte Ihrer Organisation, falls festgelegt.
  3. kaleidr-morning.

Die Basiskarte lässt sich nach dem Mount nicht ändern, und handle.setStyle wird im Editor nicht unterstützt. Um sie zu wechseln, zerstören Sie den Editor und mounten erneut. Dabei gehen die Änderungen verloren.

Kamera​

  • Bei center steht der Längengrad zuerst.
  • Jeder Wert darf eine Zahl oder eine numerische Zeichenfolge sein.
  • Ist eine Mount-Option keine endliche Zahl, wird sie ignoriert und der Standardwert verwendet. Die Konsole zeigt beispielsweise [kaleidr:editor] ignored zoom: abc is not a finite value — using 2 instead.
  • Ungültige Kameraattribute des Elements werden ohne Meldung verworfen und durch den Standard ersetzt.

Theme-Schlüssel​

theme ist ein Objekt mit den unten aufgeführten Schlüsseln. Jeder Wert ist eine Zeichenfolge mit einem CSS-Wert. Nicht gelistete Schlüssel und andere Werte als nicht leere Zeichenfolgen werden ohne Meldung ignoriert: fontSizeBase: 14 bewirkt nichts; fontSizeBase: '14px' funktioniert.

SchlüsselGestaltungBeispiel
brandColorPrimäre Schaltflächen, Fokusringe, aktives Werkzeug.'#0b5fff'
brandColorHoverHover-Zustand von brandColor.'#0847c2'
brandColorOnText und Symbole über brandColor.'#ffffff'
textColorFließtext und Überschriften.'#111827'
textColorMutedSekundärtext wie Bildunterschriften.'#6b7280'
surfaceColorHintergrund von Karten und Dialogen.'#ffffff'
borderColorRahmen und Trennlinien.'#e5e7eb'
glassBgHintergrund halbtransparenter Felder: Seitenleiste und Ausklappmenüs. Für flache Optik Volltonfarbe angeben.'rgba(255,255,255,0.8)'
glassBlurbackdrop-filter dieser Felder.'blur(12px)'
cardRadiusEckenradius von Karten und Dialogen.'12px'
buttonRadiusEckenradius von Schaltflächen und Chips.'8px'
listRadiusEckenradius von Listenzeilen.'6px'
fontPrimaryHaupt-font-family.'"Inter", system-ui, sans-serif'
fontMonoNicht proportionale font-family.'ui-monospace, monospace'
fontSizeBaseGrundschriftgröße.'14px'
sidebarRailWidthBreite der Seitenleiste.'64px'
quickActionsWidthBreite der schwebenden Schnellaktionsleiste.'320px'
Kaleidr.mount('#editor', {
product: 'editor',
publishableKey: 'kld_pk_live_…',
theme: {
brandColor: '#0b5fff',
brandColorOn: '#ffffff',
fontPrimary: '"Inter", system-ui, sans-serif',
buttonRadius: '8px',
},
});

Verhalten:

  • Das Theme ist keine Sammlung beliebiger CSS-Eigenschaften. Ein Schlüssel wie '--my-color' wird ignoriert.
  • Die Werte werden bei gemountetem Editor am Wurzelelement des Dokuments gesetzt, damit Dialoge sie an jeder Darstellungsstelle übernehmen. Beim Zerstören werden die vorherigen Werte wiederhergestellt.
  • Das Theme wird einmal beim Mount gelesen. handle.setTheme wird vom Editor nicht unterstützt; eine Änderung am theme-Attribut nach dem Mount führt nur zu einer Warnung.
  • Ist theme eine Zeichenfolge, muss sie JSON enthalten, das mit { beginnt. Alles andere wird mit Konsolenwarnung ignoriert.

Steuer-Handle​

Kaleidr.mount gibt das Handle synchron zurück. Siehe Handle-Matrix für alle Produkte.

MitgliedIm Editor
handle.product'editor'
handle.setCamera(camera)Bewegt die Karte des Editors.
handle.setTheme(theme)Nicht unterstützt. Gibt eine Warnung aus und bewirkt nichts.
handle.setStyle(style)Nicht unterstützt. Gibt eine Warnung aus und bewirkt nichts.
handle.destroy()Entfernt den Editor samt Karte, stellt Theme-Werte wieder her, stoppt Sitzungserneuerungen und verwirft die Änderungen.

Das Handle hat kein map-Mitglied. Ihre Seite kann nicht auf das interne Kartenobjekt des Editors zugreifen.

setCamera(camera)​

handle.setCamera({ center: [2.3522, 48.8566], zoom: 12, duration: 1000 });
FeldTypBeschreibung
center[number, number]Längengrad, Breitengrad.
zoomZahlZoomstufe.
pitchZahlNeigung in Grad.
bearingZahlDrehung in Grad.
durationZahlAnimationsdauer in Millisekunden. Weglassen oder 0 bedeutet Sprung ohne Animation.

Aufrufe während des Editor-Ladens werden gepuffert und nach dessen Start ausgeführt.

Elementattribute nach dem Mount​

Bei einem gemounteten <kaleidr-map product="editor"> verschiebt eine Änderung von center, zoom, pitch oder bearing die Karte ohne Animation. Änderungen an style-id, theme oder anderen Attributen haben keine Wirkung.

Lebenszyklus​

EreignisErgebnis
Kaleidr.mount(...) oder Verbindung des ElementsSitzungsaustausch und Laden von editor.js starten parallel. Der Editor beginnt, sobald beides abgeschlossen ist.
handle.destroy() oder Entfernen des ElementsEditor und Änderungen verschwinden.
Element wird zu anderem übergeordneten Element verschobenEs wird zerstört und neu gemountet. Änderungen gehen verloren.
Zweiter Editor wird bei bereits vorhandenem Editor gemountetNicht unterstützt. Zerstören Sie zunächst den ersten.
Seite wird neu geladenÄnderungen gehen verloren.

Was in Ihrer Seite ausgeführt wird​

Anders als die iframe-Produkte wirkt sich der Editor auf seine einbettende Seite aus:

  • Er lädt editor.js, ein mehrere Megabyte großes Bundle, von https://cdn.kaleidr.com.
  • Er fügt dem Dokument seine Stylesheets per JavaScript hinzu.
  • Er ruft Stil, Tiles, Sprites und Schriftarten der Basiskarte von https://tile.kaleidr.com ab. Stil-, Sprite- und Schriftartenanfragen enthalten Ihren veröffentlichbaren Schlüssel als Query-Parameter key, damit der Host Ihre Seite erkennt. Tile-Datenanfragen haben keinen Schlüssel. Das Sitzungstoken erscheint niemals in einer URL.
  • Er startet Karten-Webworker über blob:-URLs.
  • Während des Mounts legt er Theme-Werte am Wurzelelement des Dokuments fest.

Die passenden CSP-Anweisungen finden Sie unter Content Security Policy.

Konsolenmeldungen​

MeldungBedeutung
[kaleidr:editor] [editor-embed] attach() requires an { apiKey }Kein Schlüssel übergeben. Nichts wird angezeigt.
[kaleidr:editor] kaleidr session exchange failed (<status>)Sitzungsaustausch wurde verweigert. Der Grund steht in der Antwort im Netzwerk-Tab. Bei 403 steht der Code in detail, etwa insufficient_scope bei fehlendem design; bei 429 in error.
CORS-Fehler für …/sdk/sessions, dann [kaleidr:editor]-Fetch-FehlerSchlüssel unbekannt oder widerrufen oder Seitenursprung nicht zugelassen.
[kaleidr:editor] Kaleidr: a server key (kld_sk_…) must never be used in the browser — it is a standing secret. …Serverschlüssel übergeben. Keine Anfrage gesendet.
[kaleidr:editor] ignored <field>: <value> is not a finite value — using <default> instead.Eine Kameraoption bei Kaleidr.mount war keine Zahl. Elementattribute erzeugen diese Meldung nicht.
[kaleidr:editor] <message>Interne Kartenfehlermeldung, etwa nach fehlgeschlagenem Stil- oder Tile-Ladevorgang.
[kaleidr] theme string must be JSON …; named string themes are not supported. Ignored.theme war eine Zeichenfolge ohne JSON-Objekt.
[kaleidr] theme JSON parse failed (…); ignored.theme war ungültiges JSON.
[kaleidr] setTheme() is not supported on product "editor" — the call is a no-op. …setTheme aufgerufen oder theme nach Mount geändert.
[kaleidr] setStyle() is not supported on product "editor" — the call is a no-op. …setStyle wurde aufgerufen.

Nicht verfügbar​

  • Bearbeitungen speichern, exportieren oder veröffentlichen.
  • Änderungsereignis, Bereit-Ereignis oder Fehler-Callback.
  • Zugriff auf Kartenobjekt, eigene Layer oder gezeichnete Inhalte.
  • Basiskarte oder Theme nach dem Mount ändern.
  • Mehr als ein Editor auf einer Seite.

Verwandte Seiten​