# Пользовательские карты

Вы можете добавить собственные пользовательские картографические слои в платформу Navixy, что может быть особенно полезно для отслеживания транспортных средств в ограниченных зонах, которые размыты или не отображаются на общедоступных картах, либо для добавления собственных маршрутов, отсутствующих на других картах (например, морских маршрутов).

Существует два типа слоев, которые можно добавить в Navixy:

* Слой с tile-сервера
* Слой из SVG-файла

## Добавление tile‑сервера как пользовательского картографического слоя

После запуска tile‑сервера и загрузки картографических данных вы можете легко добавить новые слои карт в интерфейс Navixy. Вам потребуется включить соответствующий плагин для внешней картографии и указать ему URL вашего tile‑сервера. Также вы можете ограничить доступ к новому слою карты для определённых учётных записей пользователей.

После активации плагина новый слой появится в списке доступных слоёв в веб‑интерфейсе пользователя и/или мобильных приложениях. Пользователи смогут выбирать каждый слой отдельно (режим замены) или комбинировать несколько слоёв вместе (режим наложения).

У приложения есть два параметра:

* %name – Название приложения
* %link\_to\_the\_tiles *–* Внешняя ссылка на тайлы

{% hint style="info" %}
Если вы используете соединение HTTPS, важно, чтобы ссылка на приложение также была HTTPS. В противном случае вы можете столкнуться с ошибкой смешанного содержимого.
{% endhint %}

Когда у вас есть необходимые данные, вам нужно просто добавить запись в базу данных MySQL. Картографические слои можно добавить на весь сервис (т.е. аккаунт Dealer PaaS) или только для конкретных пользователей.

### Включение слоя для всего сервиса (для всех учётных записей пользователей)

Чтобы добавить новый картографический слой для всего сервиса Navixy, используйте следующий запрос и укажите параметры, отмеченные жирным шрифтом:

{% code overflow="wrap" %}

```
INSERT INTO google.plugins2dealers (dealer_id, plugin_id, parameters) VALUES (1, 50, '{"layers":[{"name":"%name","tiles":["%link_to_the_tiles"]}]}');
```

{% endcode %}

### Включение слоя только для выбранных учётных записей пользователей

При добавлении картографического слоя для конкретного пользователя в запрос должен быть включён новый параметр (%user\_id). Этот параметр должен быть заменён на идентификатор пользователя, которому следует добавить слой. Если слой необходимо добавить нескольким пользователям, следует выполнить отдельный запрос для каждого пользователя.

```
INSERT INTO google.plugins2users (user_id, plugin_id, parameters) VALUES (%user_id, 50, '{"layers":[{"name":"%name","tiles":["%link_to_the_tiles"]}]}');
```

## Добавление SVG‑файла как пользовательского картографического слоя

Платформа Navixy позволяет добавлять SVG‑файлы в качестве слоя карты, что может быть особенно полезно для отображения контуров труднодоступных территорий, таких как карьеры или строительные площадки.

При добавлении пользовательского картографического слоя в платформу Navixy для приложения необходимо настроить следующие три параметра:

* %name: название картографического слоя
* %link\_to\_the\_layer: внешняя ссылка на слой
* %lat1, %lng1, %lat2, %lng2: координаты любых противоположных углов слоя

{% hint style="danger" %}
Если вы используете HTTPS‑соединение для платформы Navixy, важно убедиться, что любые ссылки на внешние приложения или ресурсы также используют HTTPS. В противном случае вы можете столкнуться с ошибкой смешанного содержимого.
{% endhint %}

### Включение SVG‑слоя для всего сервиса (для всех учётных записей пользователей)

{% code overflow="wrap" %}

```
INSERT INTO google.plugins2dealers (dealer_id, plugin_id, parameters) VALUES (1, 83, '{"layers":[{ "name": "%name","url":"%link_to_the_layer","bounds":[{"lat":%lat1,"lng":%lng1},{"lat":%lat2,"lng":%lng2}]}]}');
```

{% endcode %}

### Включение SVG‑слоя только для выбранных учётных записей пользователей

Чтобы добавить слой карты для конкретного пользователя в Navixy, необходимо включить в запрос новый параметр (%user\_id). Этот параметр должен быть заменён на идентификатор пользователя, для которого предназначен слой. Если слой нужно добавить нескольким пользователям, для каждого пользователя требуется отдельный запрос.

{% code overflow="wrap" %}

```
INSERT INTO google.plugins2users (user_id, plugin_id, parameters) VALUES (%user_id, 83, '{"layers":[{ "name": "%name","url":"%link_to_the_layer","bounds":[{"lat":%lat1,"lng":%lng1},{"lat":%lat2,"lng":%lng2}]}]}');
```

{% endcode %}
