Карта — это тип [[Виды|представления]], который можно использовать в [[Введение в Базы|Базах]]. Для его работы необходимо установить [плагин 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` | Координаты хранятся в формате `широта, долгота`. Вы можете получить координаты, нажав правой кнопкой мыши на точку на карте и выбрав **Copy coordinates**. |
| `icon` | `landmark` | Название значка из [библиотеки Lucide](https://lucide.dev/). |
| `color` | `red` | Допустимое CSS-значение: hex, RGB, именованный цвет и т.д. |
| `tags` | `places` | Тег, который мы будем использовать для поиска маркеров на карте в нашей базе. |
Теперь создайте представление «Карта» с фильтром по тегу `places` и задайте координаты маркера, значок и цвет, используя свойства, перечисленные выше.
Вы также можете открыть эти [примеры файлов](https://github.com/obsidianmd/obsidian-maps/tree/master/examples) в Obsidian, чтобы увидеть готовые представления карты с уже настроенными маркерами, значками и цветами.
## Настройки
Настройки представления «Карта» можно изменить в [[Виды#Настройки представления|настройках представления]].
- Высота встраивания
- Координаты центра
- Ограничения масштабирования
- Координаты, цвет и значок маркера
- Фон
### Маркеры
#### Координаты
Чтобы отобразить маркеры на карте, перейдите в [[Виды#Настройки представления|настройки представления]] и выберите свойство **координат маркера**. Свойство должно содержать координаты широты и долготы. Поддерживаются следующие форматы:
```yaml
# Текстовое свойство
coordinates: "lat, lng"
# Свойство-список
coordinates:
- "lat"
- "lng"
```
Если вы храните координаты в отдельных свойствах `latitude` и `longitude`, их можно объединить с помощью свойства-[[Синтаксис Баз#Формулы|формулы]], определив его как массив координат с помощью следующей формулы: `[latitude, longitude]`.
#### Значки
Добавляйте значки к маркерам, задав свойство **значков маркера**. Например, вы можете добавить в заметки свойство `icon` со значениями вроде `landmark` или `utensils` из встроенной в Obsidian [библиотеки Lucide](https://lucide.dev/icons/).
##### Использование формулы для определения значков
Допустим, вы хотите, чтобы все рестораны имели одинаковый значок на карте:
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)`, HEX `#000` или CSS-переменные, такие как `var(--color-blue)`. Как и в примере со значками выше, можно использовать свойство-формулу для динамического определения цветов.
### Фон
#### Тайлы карты
Тайлы карты — это стандартный способ отображения цифровых карт. Существует несколько сервисов, позволяющих настроить карты с уникальными стилями, цветами и шрифтами. Maps поддерживает как растровые, так и векторные тайлы и принимает большинство URL-адресов тайлов, включая TileJSON URL.
[OpenFreeMap](https://openfreemap.org/) предлагает несколько бесплатных стилей. Попробуйте использовать один из следующих URL в настройке **Map tiles**:
| Название | 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 Maps с помощью следующей формулы:
```js
link("https://www.google.com/maps/search/" + file.name.replace(" ","+"),"Google Maps")
```
## Устранение неполадок
Если при первой загрузке плагина Maps карта отображается пустой, попробуйте [[Обновление Obsidian|обновить версию установщика Obsidian]].
[Плагин Maps](https://github.com/obsidianmd/obsidian-maps) имеет открытый исходный код. Вы можете помочь, отправляя отчёты об ошибках, запросы на новые функции и pull-запросы.