[К содержанию](../readme.md#введение-в-web-разработку)
# Vue.js: Работа с Яндекс картами
Для работы с яндекс картами будем использовать пакет [vue-yandex-maps](https://yandex-maps-unofficial.github.io/vue-yandex-maps/guide/about.html)
## Установка пакета
```bash
npm install vue-yandex-maps
```
## Подключение
В `src/main.js` добавьте импорт и использование пакета:
```js
import './assets/main.css'
import { createApp } from 'vue'
import { createPinia } from 'pinia'
import { createYmaps } from 'vue-yandex-maps'
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
import App from './App.vue'
import router from './router'
const app = createApp(App)
app.use(createPinia())
app.use(router)
app.use(createYmaps({apikey: 'your-api-key'}))
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app.mount('#app')
```
Для работы с яндекс-картами нужно получить `api key`.
1. Перейдите в [кабинет разработчика Яндекс](https://developer.tech.yandex.ru/services)

* кликните кнопку "Подключить АПИ"
* выберите из списка "JavaScript API и HTTP Геокодер" (у меня он уже выбран, поэтому в списке его нет) и нажмите продолжить. Насколько я помню там нужны ещё какие-то действия - пройдите до конца
1. После подключения "API интерфейса" скопируйте ключ:

## Начало работы
Для запуска вам потребуется:
* Настроить карту
* Прописать `location` с `center/zoom` в `settings`
* Указать компоненты `` (нужен для маркеров и пр.) и `` в теле ``
* Опционально указать width/height у `` (по умолчанию: `100%`)
```vue
```
## Отображение своих маркеров на карте
Для добавления маркеров на карту необходимо добавить компоненты ``. В компоненте есть [примеры](https://yandex-maps-unofficial.github.io/vue-yandex-maps/examples/objects/marker-custom-icon.html)
Например, отображение маркеров со своим изображением:
```vue
import {
YandexMap,
YandexMapDefaultSchemeLayer,
YandexMapMarker,
YandexMapDefaultFeaturesLayer
} from 'vue-yandex-maps'
...
const cars = [
{
"lat": 56.639053,
"lon": 47.893739,
"model": "Лада Гранта",
"number": "A100AA12",
"tarif": 8.99,
"km_left": 600,
"kreslo": true,
"kpp": "manual",
"photo": "granta.webp"
},
...
]
```

Обратите внимание:
* должен быть объявлен компонент ``
* у маркера должен быть аттрибут `settings`, в котором заданы координаты маркера
[Назад](./web_18.md) | [Дальше](./web_20.md)