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

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

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

Введение

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

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

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

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

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

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

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

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

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

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

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

    1. Настройка в Google Cloud Console

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

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

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

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

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

    2. Создайте и создайте экземпляр класса GMSMapView , используя метод GMSMapView mapWithFrame: Если эта карта будет использоваться в качестве единственного представления контроллера представления, тогда CGRectZero можно использовать в качестве фрейма карты — размер карты будет изменен автоматически.

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

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

Быстрый

import GoogleMaps

class MapObjects : UIViewController {
  override func viewDidLoad() {
    super.viewDidLoad()
    let camera = GMSCameraPosition(latitude: 1.285, longitude: 103.848, zoom: 12)
    let mapView = GMSMapView(frame: .zero, camera: camera)
    self.view = mapView
  }
}
      

Цель-C

#import "MapObjects.h"
@import GoogleMaps;

@implementation MapObjects

- (void)viewDidLoad {
  [super viewDidLoad];
  GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:1.285
                                                          longitude:103.848
                                                               zoom:12];
  GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
  self.view = mapView;
}

@end
      

Выполнив эти шаги, вы можете продолжить настройку объекта GMSMapView .

Что дальше

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