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