Добавление карты

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

Карты представлены в API классом GMSMapView, который является подклассом UIView. Карта – это самый важный объект в Maps SDK для iOS. Она предоставляет методы, необходимые для добавления, удаления и управления другими объектами, такими как маркеры и ломаные линии.

Введение

Maps SDK для iOS позволяет показывать Google Карты в приложениях для iOS. Эти карты выглядят так же, как в приложении Google Карты для iOS, и SDK предоставляет многие из тех же функций.

Помимо функций картографии, API также поддерживает ряд взаимодействий, соответствующих модели пользовательского интерфейса iOS. Например, вы можете настроить взаимодействие с картой, определив ответчики, которые реагируют на жесты пользователя, такие как нажатие и двойное нажатие.

Основным классом при работе с объектом Map является класс GMSMapView. В продукте "GMSMapView" автоматически выполняются следующие операции:

  • подключение к Google Картам;
  • загрузка фрагментов карты;
  • отображение фрагментов на экране устройства;
  • отображение элементов управления (панорамирование, масштабирование и пр.);
  • изменение вида карты в ответ на жесты панорамирования и масштабирования.
    • Реагирует на жесты двумя пальцами, наклоняя угол обзора карты.

Помимо этих автоматических операций, вы можете управлять поведением и внешним видом карты с помощью свойств и методов, предоставляемых классом GMSMapView. Используйте GMSMapView, чтобы добавлять и удалять маркеры, наземные наложения и ломаные линии, менять тип карты и управлять тем, что на ней показывается, с помощью класса GMSCameraPosition.

Создание карт с помощью SwiftUI

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

Maps SDK для iOS создан на основе UIKit и не предоставляет совместимое с SwiftUI представление. Чтобы добавить карты в SwiftUI, необходимо соответствовать требованиям UIViewRepresentable или UIViewControllerRepresentable. Подробнее см. в практической работе Как добавить карту в приложение для iOS с помощью SwiftUI.

Добавление карты

Ниже перечислены основные шаги, которые необходимо выполнить для добавления карты.

  1. Чтобы использовать SDK, получите ключ API и добавьте необходимые фреймворки. Следуйте указаниям в приведенных ниже статьях.

    1. Настройка в консоли Google Cloud

    2. Как использовать ключ API

    3. Настройка проекта Xcode

    4. В файле AppDelegate укажите ключ API для метода класса provideAPIKey: в GMSServices.

    5. Создайте или обновите ViewController. Если карта показывается, когда контроллер становится видимым, создайте ее в методе viewDidLoad.

    6. При инициализации представления карты задайте параметры конфигурации с помощью GMSMapViewOptions. К свойствам относятся frame, camera, mapID,backgroundColor или screen.

    7. Задайте свойство параметров карты camera с помощью объекта GMSCameraPosition. Это позволяет задать центр и уровень масштабирования карты.

    8. Создайте экземпляр класса GMSMapView с помощью метода options:.GMSMapView Если карта будет единственным представлением контроллера, то в качестве представления frame можно использовать значение по умолчанию CGRectZero параметра карты frame. Размер карты будет изменен автоматически.

    9. Задайте объект GMSMapView в качестве представления контроллера представления. Пример: self.view = mapView;.

В приведенном ниже примере показано добавление в приложение карты, в центре которой находится деловая часть г. Сингапура.

Swift

import GoogleMaps

class MapObjects : UIViewController {
  override func viewDidLoad() {
    super.viewDidLoad()

    let options = GMSMapViewOptions()
    options.camera = GMSCameraPosition(latitude: 1.285, longitude: 103.848, zoom: 12)
    options.frame = self.view.bounds;

    let mapView = GMSMapView(options:options)
    self.view = mapView
  }
}

Objective-C

- (void)viewDidLoad {
  [super viewDidLoad];

  GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
  options.camera = [GMSCameraPosition cameraWithLatitude:1.285
                                                        longitude:103.848
                                                             zoom:12];
  options.frame = self.view.bounds;

  GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];
  self.view = mapView;
}

После выполнения этих шагов вы можете дополнительно настроить объект GMSMapView.

Дальнейшие действия

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