地圖是一種可在[[資料庫介紹|資料庫]]中使用的[[檢視|檢視]]類型。使用前需要安裝 [Maps 外掛程式](obsidian://show-plugin?id=maps)。 從檢視選單中選擇 ![[lucide-map.svg#icon]] **地圖** 即可將檔案顯示為互動式地圖,每個檔案都有對應的標記,並可預覽該檔案的屬性。 ![[bases-map-places.png#interface]] ## 安裝 Maps 外掛程式 地圖檢視需要 Obsidian 1.10。[Maps 外掛程式](obsidian://show-plugin?id=maps)是一個官方的[[社群外掛程式|社群外掛程式]],可以單獨下載。 1. 按照[[社群外掛程式#安裝社群外掛程式]]中的說明操作 2. 從清單中下載並啟用 [Maps](obsidian://show-plugin?id=maps) ## 範例 首先,試著建立一個名為 **Eiffel Tower** 的筆記,並將以下屬性複製到其中: ```yaml --- coordinates: - "48.85837" - "2.294481" icon: "landmark" color: "red" tags: - places --- ``` 以下是上述程式碼的含義: | 屬性 | 值 | | | ------------- | ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------- | | `coordinates` | `48.85837`<br>`2.294481` | 座標以 `緯度, 經度` 格式儲存。你可以在地圖上對某個位置點擊右鍵,然後選擇**複製座標**來取得座標。 | | `icon` | `landmark` | 來自 [Lucide 圖示庫](https://lucide.dev/) 的圖示名稱。 | | `color` | `red` | 有效的 CSS 值:十六進位、RGB、顏色名稱等。 | | `tags` | `places` | 我們將在資料庫中用來尋找地圖標記的標籤。 | 現在建立一個地圖檢視,加入標籤 `places` 的篩選條件,並使用上述屬性設定標記座標、圖示和顏色。 你也可以在 Obsidian 中開啟這些[範例檔案](https://github.com/obsidianmd/obsidian-maps/tree/master/examples),查看已設定好標記、圖示和顏色的地圖檢視。 ## 設定 地圖檢視設定可在[[檢視#檢視設定|檢視設定]]中進行設定。 - 嵌入高度 - 中心座標 - 縮放限制 - 標記座標、顏色和圖示 - 背景 ### 標記 #### 座標 若要在地圖上顯示圖釘,請前往[[檢視#檢視設定|檢視設定]]並選擇一個**標記座標**屬性。該屬性必須包含緯度和經度座標。接受以下格式: ```yaml # 文字屬性 coordinates: "lat, lng" # 清單屬性 coordinates: - "lat" - "lng" ``` 如果你將座標分別儲存為 `latitude` 和 `longitude` 屬性,可以使用[[資料庫語法#公式|公式]]屬性將它們結合,透過以下公式定義為座標陣列:`[latitude, longitude]`。 #### 圖示 透過定義**標記圖示**屬性來為標記新增圖示。例如,你可以在筆記中新增一個名為 `icon` 的屬性,並賦予它 Obsidian 內建 [Lucide 圖示庫](https://lucide.dev/icons/)中的值,如 `landmark` 或 `utensils`。 ##### 使用公式定義圖示 假設你希望所有餐廳在地圖上都使用相同的圖示: 1. 建立一個名為 **Restaurants** 的筆記,新增一個名為 `icon` 的屬性,值設為 `utensils`。 2. 在餐廳筆記中新增一個名為 `type` 的屬性,連結到 `[[Restaurants]]` 筆記。 3. 在資料庫中新增一個名為 `Type icon` 的公式屬性,並使用以下程式碼: ```js list(type)[0].asFile().properties.icon ``` 4. 在檢視設定中選擇 `Type icon` 作為標記圖示。 完成!現在你的地圖將顯示來自地點*類型*的圖示,而不是地點本身的圖示。 #### 顏色 設定標記的顏色。接受 RGB `rgb(0,0,0)`、十六進位 `#000` 或 CSS 變數(如 `var(--color-blue)`)的值。如同上面的圖示範例,你可以使用公式屬性來動態定義顏色。 ### 背景 #### 地圖圖磚 地圖圖磚是顯示數位地圖的標準方式。有多種服務可以用來自訂獨特樣式、顏色和字型的地圖。Maps 支援光柵和向量圖磚,並接受大多數圖磚 URL,包括 TileJSON URL。 [OpenFreeMap](https://openfreemap.org/) 提供了一些免費樣式供你使用。試著在**地圖圖磚**設定中使用以下 URL: | 名稱 | URL | | -------- | ------------------------------------------------ | | Dark | `https://tiles.openfreemap.org/styles/dark` | | Positron | `https://tiles.openfreemap.org/styles/positron` | | Liberty | ``https://tiles.openfreemap.org/styles/liberty`` | #### 實用連結 - [Maputnik](https://maputnik.github.io/) 用於自訂地圖圖磚。 - [Protomaps](https://protomaps.com/) 用於自行託管地圖圖磚。 - 其他提供免費方案的託管服務包括 [MapTiler](https://www.maptiler.com/) 和 [Mapbox](https://www.mapbox.com/)。 ## 小技巧 你可以使用[[公式]]連結到熱門的地圖服務。例如,你的圖釘可以使用以下公式顯示 Google 地圖連結: ```js link("https://www.google.com/maps/search/" + file.name.replace(" ","+"),"Google Maps") ``` ## 疑難排解 如果在首次載入 Maps 外掛程式時地圖顯示為空白,請嘗試[[更新 Obsidian|更新 Obsidian 安裝程式版本]]。 [Maps 外掛程式](https://github.com/obsidianmd/obsidian-maps)是開放原始碼的。你可以透過提交錯誤報告、功能請求和 Pull Request 來協助改進。