跳至主要内容

Viewer

Viewer 可將你在 Kaleidr Studio 發佈的地圖嵌入自己的網頁。地圖在 Kaleidr 託管的 iframe 中呈現,因此網頁不必載入地圖函式庫,也不需要 API 金鑰。只要已發佈地圖的 ID 即可。

若地圖已在 Studio 中建立,而你想提供訪客查看,例如商店搜尋器、校園地圖、活動路線或文章中的資料地圖,請使用 Viewer。

概覽​

問題回答
需要什麼?已發佈地圖的 ID。不需要 API 金鑰或工作階段。
哪些方案?包括 Free 的所有方案。發佈需要 Kaleidr 帳戶。
如何顯示?透過 https://map-embed.kaleidr.com 提供的 iframe。
顯示什麼?作者發佈的地圖:標記、路線、設定樣式的圖層,以及在 Studio 資料面板上傳的資料集和影像覆蓋層。
如何嵌入?使用一般 <iframe> 或 SDK 的 <kaleidr-map product="viewer"> 元素。
如何計費?每次檢視都計入地圖擁有者組織的一次地圖載入。
網頁能操作地圖嗎?可設定及移動相機,並接收載入完成與錯誤訊息。除此之外不支援其他操作。

最簡嵌入​

<script src="https://cdn.kaleidr.com/embed/v1/kaleidr.js"></script>
<kaleidr-map product="viewer"
share-id="YOUR_MAP_ID"
style="display:block; height:480px"></kaleidr-map>

將 YOUR_MAP_ID 替換為發佈後 Studio 嵌入程式碼中顯示的 ID。元素預設為 display:block,所以 height 會生效。範例也明確設定 display:block,以支援 Safari 16.4 之前的版本;這些版本會讓元素保持行內顯示並忽略 height。

如果無法在網頁加入指令碼(例如網站建立工具、CMS 或支援 HTML 的電子報工具),請改用 Studio 產生的 iframe:

<iframe
src="https://map-embed.kaleidr.com/embed/YOUR_MAP_ID"
width="100%"
height="480"
style="border:0;"
loading="lazy"
referrerpolicy="no-referrer-when-downgrade"
allow="geolocation; microphone; fullscreen; clipboard-write"
title="Kaleidr map"
></iframe>

兩種方式顯示同一張地圖。嵌入已發佈地圖說明何時應選擇哪種方式。

運作方式​

  1. 你在 Studio 發佈地圖。Studio 會指派 ID 並提供嵌入程式碼。
  2. 網頁載入該程式碼。SDK 元素或一般 iframe 會指向 https://map-embed.kaleidr.com/embed/YOUR_MAP_ID。
  3. iframe 中的網頁擷取並繪製已發佈地圖,以及作者上傳的資料集和影像覆蓋層。若地圖有允許的網域清單,會先檢查你的網頁網域是否在清單內。
  4. 地圖繪製完成時,iframe 會向網頁傳送 kaleidr-embed:ready 訊息。若無法繪製,則傳送 kaleidr-embed:error,並在地圖位置顯示簡短說明。

你的網頁不會收到地圖資料,也無法存取 iframe 內部。地圖函式庫、樣式及網路要求都在 iframe 內,因此內容安全政策只需要允許該框架。

訪客可以執行的操作​

  • 平移、旋轉與傾斜地圖,並使用地圖上的縮放按鈕、雙指縮放或滾輪調整比例。指標位於地圖上方時捲動會縮放地圖,與 Studio 中相同;指標位於地圖之外時,捲動會移動網頁。
  • 瀏覽器請求權限後,使用定位按鈕顯示自己的位置。
  • 若作者在 Studio 啟用了地點彈出視窗,點選地圖即可開啟。
  • 閱讀地圖圖例,以及底部的資料來源與署名。
  • 向 Kaleidr AI 詢問地圖相關問題:若作者在 Studio 的 Kaleidr AI 圖塊中開啟了 Control Tower,可使用 Ask Kaleidr 面板;若開啟了 Popup Window,可在彈出視窗中提問。參閱已發佈地圖上的 Kaleidr AI。

嵌入地圖為唯讀。訪客無法編輯地圖,也不會儲存任何訪客操作。

網頁可以執行的操作​

  • 設定初始相機:使用 center、zoom、pitch 與 bearing。預設採用作者儲存的視圖;網頁傳入的各個相機欄位具有優先權。
  • 稍後移動相機:使用 handle.setCamera(...),或更改元素的相機屬性。
  • 得知地圖載入或失敗:監聽 iframe 傳送的兩種訊息。
  • 移除地圖:使用 handle.destroy() 或移除元素。

地圖擁有者的控制項​

這些控制項位於 Studio,而不是嵌入程式碼內:

  • 發佈與取消發佈。 已發佈地圖顯示 Studio 目前儲存的內容,所以儲存的修改會在下次載入嵌入地圖時公開,不需要重新發佈。重新發佈 會記錄新的發佈版本,但保留相同連結。若要私下修改,應先取消發佈,完成後再發佈。取消發佈 會停止地圖的所有嵌入,再次發佈則還原相同的嵌入 URL。參閱取消發佈地圖。
  • 上傳的資料。 已發佈地圖顯示的資料集和影像覆蓋層會提供給訪客。若要停止提供,可在資料面板刪除資料集,或取消發佈地圖。分享連結在取消發佈後仍然有效;刪除資料集也會從分享連結移除該資料。已發佈地圖為公開內容,請只發佈任何人都能閱讀的資料。參閱已發佈地圖的上傳資料。
  • 允許的網域。 限制可顯示地圖的網站。檢查依據網頁傳送的 Referrer,因此未傳送 Referrer 的網頁無法顯示受網域限制的地圖。
  • Kaleidr AI。 在地圖的 Kaleidr AI 圖塊中開啟 Ask Kaleidr 面板(Control Tower)與彈出視窗中的 AI 聊天(Popup Window)。

限制​

  • Viewer 不使用金鑰,所以金鑰層級的允許來源限制不適用。請使用地圖的允許網域。
  • 網頁無法讀取地圖圖層、加入標記或接收點擊事件。
  • 嵌入內容不會自行調整高度,請為元素或 iframe 設定高度。
  • 當擁有者組織用完當期地圖載入額度時,嵌入位置會顯示額度訊息,直到額度重設。
  • 訪客會完整下載地圖顯示的每個資料集,因此使用大型表格的地圖載入速度較慢。

後續步驟​