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

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

В API карты представлены классом GMSMapView , подклассом UIView . Карта — наиболее важный объект в SDK для iOS, предоставляющий необходимые методы для добавления, удаления и управления другими объектами, такими как маркеры и полилинии.

Введение

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

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

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

  • Подключение к сервису Google Maps.
  • Загрузка фрагментов карты.
  • Отображение плиток на экране устройства.
  • Отображение различных элементов управления, таких как панорамирование и масштабирование.
  • Реагирование на жесты панорамирования и масштабирования путем перемещения карты и увеличения или уменьшения масштаба.
    • Реагирование на жесты двумя пальцами путем изменения угла обзора карты.

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

Создавайте карты с помощью SwiftUI

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

SDK для работы с картами в iOS построен на основе UIKit и не предоставляет представления, совместимых со SwiftUI. Добавление карт в SwiftUI требует соответствия либо UIViewRepresentable , либо UIViewControllerRepresentable . Для получения дополнительной информации см. Codelab по добавлению карты в ваше iOS-приложение с помощью SwiftUI .

Добавить карту

Основные шаги для добавления карты следующие:

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

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

    2. Используйте ключ API

    3. Создайте проект Xcode.

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

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

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

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

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

    9. Установите объект GMSMapView в качестве представления контроллера представления. Например, self.view = mapView; .

В приведенном ниже примере в приложение добавляется карта с центром в центре Сингапура.

Быстрый

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 .

Что дальше?

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