Как создать идентификаторы карт

Выберите платформу: Android iOS JavaScript Web Service

Идентификатор карты — это уникальный идентификатор, представляющий настройки стиля и конфигурации Google Map, которые хранятся в Google Cloud. Идентификаторы карт используются для включения функций или управления или стилизации карт на ваших веб-сайтах и ​​в ваших приложениях. Вы можете создать идентификаторы карт для каждой необходимой вам платформы — JavaScript, Android, iOS или статических карт — в вашем проекте консоли Google Cloud на странице управления картами .

Более подробную информацию и функции, использующие идентификаторы карт, см. в разделе Обзор идентификаторов карт .

Требуемые разрешения

Чтобы создать или управлять любыми идентификаторами карт в вашем проекте, вы должны использовать принципала с соответствующими разрешениями уровня роли, Редактор или Владелец, на странице IAM в консоли Cloud для проекта. Подробности см. в справочнике по базовым и предопределенным ролям IAM .

Создать идентификаторы карт

Создайте идентификаторы карт в облачной консоли, выполнив следующие действия:

  1. Войдите в систему и откройте проект Cloud Console с необходимыми разрешениями .

  2. В консоли Cloud перейдите на страницу «Управление картами» .

  3. Нажмите Создать идентификатор карты .

    Создать новый идентификатор карты

  4. На странице «Создать новый идентификатор карты» выполните следующие действия:

    1. В поле Имя дайте имя идентификатору карты.
    2. Необязательно : в поле «Описание» опишите, для чего используется идентификатор карты.
    3. Для Тип карты выберите платформу, на которой вы планируете использовать ID карты. Если вы выбрали JavaScript, также выберите Растровый (по умолчанию) или Векторный тип карты. Для получения дополнительной информации о векторных картах см. Векторные карты .
    4. Нажмите «Сохранить» , чтобы отобразить новый идентификатор карты.

Свяжите идентификатор карты со стилем карты

Если вы используете облачный стиль карт, вы связываете стиль карты с вашим идентификатором карты. Подробнее см. в разделе Связать свой стиль с идентификатором карты .

Добавьте идентификатор карты в свое приложение

андроид

Добавьте идентификатор карты через элемент <fragment> в файле макета действия, используя класс MapView или программно с помощью класса GoogleMapOptions .

Например, предположим, что вы создали идентификатор карты, который хранится как строковое значение с именем map_id в res/values/strings.xml :

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="map_id">MAP_ID</string>
</resources>

Для карт, добавленных через элемент <fragment> в файле макета действия, все фрагменты карты, которые должны иметь пользовательский стиль, должны указывать идентификатор карты в атрибуте map:mapId :

<fragment xmlns:map="http://schemas.android.com/apk/res-auto"
    map:name="com.google.android.gms.maps.SupportMapFragment"
        map:mapId="@string/map_id" />

Вы также можете использовать атрибут map:mapId класса MapView , чтобы указать идентификатор карты:

<com.google.android.gms.maps.MapView
    xmlns:map="http://schemas.android.com/apk/res-auto"
    ....
    map:mapId="@string/map_id" />

Чтобы указать идентификатор карты программно, передайте его экземпляру MapFragment с помощью класса GoogleMapOptions :

Ява

 MapFragment mapFragment = MapFragment.newInstance(
     new GoogleMapOptions()
         .mapId(getResources().getString(R.string.map_id)));

Котлин

 val mapFragment = MapFragment.newInstance(
     GoogleMapOptions()
         .mapId(resources.getString(R.string.map_id))
 )

В Android Studio соберите и запустите свое приложение, как обычно. Пользовательские стили, настроенные на первом этапе, применяются ко всем картам с указанным идентификатором карты.

iOS

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

  1. Создайте GMSMapID со строкой идентификатора карты из облачной консоли.
  2. Создайте GMSMapView , указав идентификатор только что созданной карты.

Быстрый

let camera = GMSCameraPosition(latitude: 47.0169, longitude: -122.336471, zoom: 12)
let mapID = GMSMapID(identifier: "MAP_ID")
let mapView = GMSMapView(frame: .zero, mapID: mapID, camera: camera)
self.view = mapView

Objective-C

GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:47.0169
                                                        longitude:-122.336471
                                                             zoom:12];
GMSMapID *mapID = [GMSMapID mapIDWithIdentifier:@"MAP_ID"];
GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero mapID:mapID camera:camera];
self.view = mapView;

Если вы используете собственный идентификатор карты, вы можете в любое время задать для него новый стиль в консоли Cloud, и этот стиль автоматически отобразится на вашей карте для вас и пользователей в течение примерно шести часов.

Если вы хотите увидеть изменения немедленно, вы можете закрыть и перезапустить свое приложение, выйдя из приложения, принудительно выйдя из списка недавно использованных приложений, а затем снова открыв его. После этого обновленная карта будет видна.

JavaScript

Чтобы создать карту с идентификатором карты в коде приложения:

  1. Если вы уже настраиваете свою карту с помощью встроенного кода JSON, удалите свойство styles из объекта MapOptions ; в противном случае пропустите этот шаг.

  2. Добавьте идентификатор карты к карте с помощью свойства mapId . Например:

map = new google.maps.Map(document.getElementById('map'), {
center: {lat: -34.397, lng: 150.644},
zoom: 8,
mapId: 'MAP_ID'
});

Карты Статические

Чтобы добавить идентификатор карты к новой или существующей карте, которая использует один из наших API веб-сервисов, добавьте параметр URL map_id и установите его на идентификатор вашей карты. В этом примере показано добавление идентификатора карты к карте с помощью Maps Static API.

<img src="https://maps.googleapis.com/maps/api/staticmap?center=Brooklyn+Bridge,New+York,NY&zoom=13&size=600x300&maptype=roadmap&markers=color:blue%7Clabel:S%7C40.702147,-74.015794&markers=color:green%7Clabel:G%7C40.711614,-74.012318&markers=color:red%7Clabel:C%7C40.718217,-73.998284&key=YOUR_API_KEY&map_id=MAP_ID&signature=YOUR_SIGNATURE" />

Карта, центрированная на Бруклинском мосту в Нью-Йорке, штат Нью-Йорк, США, с элементами управления картой в правом нижнем углу. Карта отображает пользовательский стиль на дорогах, воде и суше.

Если у вас есть цифровая подпись в вашем Maps Static URL до добавления вашего идентификатора карты, вам нужно будет создать и добавить новую цифровую подпись после добавления вашего идентификатора карты. При создании нового секрета подписи URL не забудьте удалить вашу предыдущую цифровую подпись из URL.