Карты представлены в 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.
Добавление карты
Ниже перечислены основные шаги, которые необходимо выполнить для добавления карты.
Чтобы использовать SDK, получите ключ API и добавьте необходимые фреймворки. Следуйте указаниям в приведенных ниже статьях.
В файле
AppDelegateукажите ключ API для метода классаprovideAPIKey:вGMSServices.Создайте или обновите
ViewController. Если карта показывается, когда контроллер становится видимым, создайте ее в методеviewDidLoad.При инициализации представления карты задайте параметры конфигурации с помощью
GMSMapViewOptions. К свойствам относятсяframe,camera,mapID,backgroundColorилиscreen.Задайте свойство параметров карты
cameraс помощью объектаGMSCameraPosition. Это позволяет задать центр и уровень масштабирования карты.Создайте экземпляр класса
GMSMapViewс помощью методаoptions:.GMSMapViewЕсли карта будет единственным представлением контроллера, то в качестве представленияframeможно использовать значение по умолчаниюCGRectZeroпараметра картыframe. Размер карты будет изменен автоматически.Задайте объект
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.
Дальнейшие действия
После выполнения инструкций из этой статьи вы можете переходить к настройке карты.