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