# Google Maps и геокодирование

Чтобы использовать Google Maps с Navixy On-premise, вам необходимо получить действительные ключи API Google Maps. Эта страница документации содержит пошаговое руководство по созданию ключей API Google Maps и их настройке для использования с платформой Navixy.

Руководство проведёт вас через процесс настройки учётной записи Google Cloud Console, создания нового проекта, генерации необходимых ключей API и применения их в конфигурации вашей инстанции Navixy. Следуя этому руководству, вы сможете легко интегрировать Google Maps с Navixy On-premise и полностью воспользоваться продвинутыми возможностями карт платформы.

## Создание Google API-ключей

Чтобы создать Google API-ключи для использования с платформой Navixy, выполните приведённое ниже руководство. Обратите внимание, что ключи Google API связаны с вашей учётной записью и подпадают под политику использования API Google. Для дополнительной информации обратитесь к ссылкам ниже:

* [Условия использования Google Maps APIs](https://developers.google.com/maps/terms)
* [Часто задаваемые вопросы о Google Maps](https://developers.google.com/maps/faq)

### Настройка учётной записи и проекта

1. Перейдите на [Google Cloud Console](https://console.cloud.google.com/projectselector2/apis/dashboard?supportedpurview=project) веб-страницу и войдите, используя учётные данные вашей Google-учётной записи. Если у вас нет учётной записи, вы можете создать её.
2. Ключи API создаются внутри проекта. Если у вас уже есть проект, вы можете выбрать его из списка. Если у вас нет существующих проектов, нажмите «Create project», чтобы создать новый.
3. Дайте проекту соответствующее имя и нажмите кнопку «Create», чтобы создать новый проект

![](https://4066122344-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-c08d8776b8724d8ed8791eb0f64806047b378941%2Fimage-20230810-132227.png?alt=media)

![](https://4066122344-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-fd7ecb1caf1edee177de0637e2f7dcfbd9611de4%2Fimage-20230810-132250.png?alt=media)

4. Убедитесь, что выбран ваш вновь созданный проект, и нажмите «Enable APIs and Services». Вы перейдёте в библиотеку Google API.
5. Введите название требуемого API, выберите его и нажмите «Enable». В данном случае мы добавляем Maps Javascript API (используется для Google Maps)
6. Повторите процесс для всех необходимых API. Navixy использует в общей сложности 5 API:

* Google Maps JavaScript API - карты Google в пользовательском интерфейсе
* Google Maps Geocoding API - геокодирование
* Google Maps Geolocation API - обработка LBS-точек
* Google Maps Directions API - построение маршрутов
* Google Static Maps API - статические карты в электронной почте

![](https://4066122344-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-60521a7b5e357100af39d4ce1122f8cd815d0f50%2Fimage-20230810-132312.png?alt=media)

![](https://4066122344-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-8df720a5c655dbed337e87a1f679191752fa0d40%2Fimage-20230810-132330.png?alt=media)

![](https://4066122344-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-e8adf08ba4f9fee6f411f022e52da17778e70d7d%2Fimage-20230810-132338.png?alt=media)

Убедитесь, что все включённые API отображаются на вашей панели:

![](https://4066122344-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-aae915d5cb989ab1c63c2a420ec3a50d18e361e6%2Fimage-20230810-132352.png?alt=media)

### Генерация Google-ключей

Чтобы включить весь функционал Navixy, вам потребуется всего три ключа API:

* Ключ №1 для отображения карт в пользовательском интерфейсе
* Ключ №2 для доступа к GIS-сервисам (геокодирование, построение маршрутов и геолокация)
* Ключ №3 для отображения статических Google Maps в уведомлениях по email

#### Генерация Google-ключа №1 для карт в UI

1. Перейдите в *Credentials* вкладку
2. Нажмите *Create credentials* и выберите *API key*
3. Ключ будет показан в новом окне
4. Нажмите *Restrict key* чтобы внести изменения, вы будете перенаправлены на страницу настройки
5. Дайте ключу имя, чтобы было проще отличать его от других
6. В *Application restrictions* выберите *HTTP referrer* и укажите домен, который вы используете для платформы. Например [contoso.com/\*](http://contoso.com/*) [gps.contoso.com/\*](http://gps.contoso.com/*)
7. В *API restrictions* выберите *Restrict key* и выберите Maps JavaScript API
8. Нажмите *Save* чтобы применить изменения

![](https://4066122344-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-b8b69544ee3a669edbc5e9a17e0c4ed35babbc36%2Fimage-20230810-132440.png?alt=media)

![](https://4066122344-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-40d87cfda4b6f2bc89502beb337f5a27039c43bd%2Fimage-20230810-132450.png?alt=media)

![](https://4066122344-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-2cd33205c5bb9bf49f9f6b955ac99f3092bb832f%2Fimage-20230810-132458.png?alt=media)

![](https://4066122344-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-b5cdd1a50fd875825427621366c554d41d4e28a4%2Fimage-20230810-132505.png?alt=media)

![](https://4066122344-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-9edaa923e6328f6970bf237fb53cc0f40420e50d%2Fimage-20230810-132513.png?alt=media)

#### Генерация Google-ключа №2 для геокодирования, построения маршрутов и геолокации

1. Перейдите в *Credentials* вкладку
2. Нажмите *Create credentials* и выберите *API key*
3. Ключ будет показан в новом окне
4. Нажмите *Restrict key* чтобы внести изменения, вы будете перенаправлены на страницу настройки
5. Дайте ключу имя, чтобы было проще отличать его от других
6. В *Application restrictions* выберите *IP adresses* и укажите публичный IP вашего сервера
7. В *API restrictions* выберите *Restrict key* и выберите Maps Geocoding API, Maps Geolocation API, Maps Directions API
8. Нажмите *Save* чтобы применить изменения

![](https://4066122344-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-a62244e8e538ebd848bd7f530e03b43f65f1e114%2Fimage-20230810-132553.png?alt=media)

![](https://4066122344-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-1b657cb002b0a0fc5911a5d15891946143e07d3b%2Fimage-20230810-132557.png?alt=media)

![](https://4066122344-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-b21c22a9ebcc5c4a60262e1ba18dee1d02a503a2%2Fimage-20230810-132602.png?alt=media)

![](https://4066122344-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-6cd1d6bd06a38035c3a264c94c11b305d6f5dee9%2Fimage-20230810-132607.png?alt=media)

![](https://4066122344-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-e6b02691d5c89d3101bec0eba285ee2747dada38%2Fimage-20230810-132612.png?alt=media)

#### **Генерация Google-ключа №3 для статических карт в уведомлениях по email**

1. Перейдите в *Credentials* вкладку
2. Нажмите *Create credentials* и выберите *API key*
3. Ключ будет показан в новом окне
4. Нажмите *Restrict key* чтобы внести изменения, вы будете перенаправлены на страницу настройки
5. Дайте ключу имя, чтобы было проще отличать его от других
6. В *Application restrictions* выберите *HTTP referrer* и укажите домен, который вы используете для платформы. Например [contoso.com/\*](http://contoso.com/*) [gps.contoso.com/\*](http://gps.contoso.com/*)
7. В *API restrictions* выберите *Restrict key* и выберите Maps Static API
8. Нажмите *Save* чтобы применить изменения

![](https://4066122344-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-ffd5f631be6d7b60d74c78a340b2979a1e9d7a79%2Fimage-20230810-132642.png?alt=media)

![](https://4066122344-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-1824ee42ca17250dff74c24a497adc3165608990%2Fimage-20230810-132652.png?alt=media)

![](https://4066122344-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-5da4a980d50fea6f824a902ea56b3e4a44e71a82%2Fimage-20230810-132657.png?alt=media)

![](https://4066122344-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-b5cdd1a50fd875825427621366c554d41d4e28a4%2Fimage-20230810-132704.png?alt=media)

![](https://4066122344-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-abe2f507c847f6146ec7615351e1c1ea8b217fda%2Fimage-20230810-132709.png?alt=media)

Для Google-ключа №3 вам также потребуется *URL signing secret*. Пожалуйста, обратитесь к приведённому ниже руководству, чтобы сгенерировать URL signing secret для вашего ключа Static maps:

1. Перейдите в *Dashboard*
2. Прокрутите вниз до списка API и кликните на Maps Static API
3. Вы будете перенаправлены на новую страницу.
4. Нажмите на *Credentials* menu
5. Проверьте, что выбран Maps Static API
6. Прокрутите вниз до URL signing secret, чтобы увидеть текущий ключ.

![](https://4066122344-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-2c96170418852bc6343b6ffe71d0d6ba63cd7331%2Fimage-20230810-132741.png?alt=media)

![](https://4066122344-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-b06d80b7635b959cad8fad086621e42cd1479b97%2Fimage-20230810-132749.png?alt=media)

## Применение Google Maps API-ключей

Как описано выше, мы рекомендуем сгенерировать три ключа Google Maps и назначить для них следующие сервисы Google API:

**Google Maps API ключ №1** – должен быть ограничен по HTTP referrer, то есть URL вашего пользовательского интерфейса:

* Google Maps JavaScript API
* Google Street View Image API

**Google Maps API ключ №2** – должен быть ограничен по IP сервера:

* Google Maps Geocoding API
* Google Maps Geolocation API
* Google Maps Directions API

**Google Maps API ключ №3** – должен быть ограничен по HTTP referrer, то есть URL вашего пользовательского интерфейса:

* Google Static Maps API (для этого ключа вам также нужен *URL signing secret* )

Все три ключа будут сохранены в базе данных. Их следует вставить в таблицу **dealer\_service\_credentials** в **google** БД с помощью следующего запроса:

{% code overflow="wrap" %}

```
INSERT INTO dealer_service_credentials (dealer_id, service_type,credentials) VALUES (1, 'google', '{"maps_js_api_key":"FIRST_KEY_HERE","server_api_key":"SECOND_KEY_HERE","static_map_api_key":"THIRD_KEY_HERE", "static_map_crypto_key":"URL_SIGNING_SECRET_HERE"}';
```

{% endcode %}

Если вы не хотите использовать Google Maps для определённых сервисов, вы можете опустить ключи, которые вам не нужны, из запроса. Например, используйте этот запрос, чтобы применить только третий ключ:

{% code overflow="wrap" %}

```
INSERT INTO google.dealer_service_credentials (dealer_id, service_type, credentials) VALUES (1, "google", '{"static_map_api_key":"THIRD_KEY_HERE", "static_map_crypto_key":"URL_SIGNING_SECRET_HERE"}');
```

{% endcode %}

**Перезапустите сервисы**

`restart-navixy`
