В этом разделе описывается, как настроить карту, добавленную в приложение iOS с помощью Maps SDK для iOS.
Обзор
После того, как вы добавите карту в свое приложение, вы можете настроить начальные параметры и параметры времени выполнения карты. Подробнее о добавлении контейнера карты см. в разделе Добавление карты .
Начальные настройки карты включают следующее:
- Положение камеры, в том числе: местоположение, масштабирование, пеленг и наклон. Подробную информацию о расположении камеры см. в разделе «Камера и вид» .
- Тип карты .
- Отображаемые компоненты пользовательского интерфейса , такие как кнопки масштабирования и компас.
- Жесты для включения.
Во время выполнения вы можете настроить эти параметры и некоторые дополнительные параметры, обновив объект GMSMapView
.
Типы карт
Вы можете настроить свою карту с помощью одного из нескольких типов карт. Тип карты определяет общее представление карты. Например, атлас обычно содержит политические карты, на которых показаны границы, и карты дорог , на которых показаны все дороги города или региона. Maps SDK для iOS предлагает следующие типы карт:
Тип карты | |
---|---|
Нормальный | Значение: kGMSTypeNormal Типичная дорожная карта. Показаны дороги, некоторые объекты, построенные людьми, и важные природные объекты, такие как реки. Также видны метки дорог и объектов. |
Гибридный | Значение: kGMSTypeHybrid Добавлены спутниковые фотографии с картами дорог. Также видны метки дорог и объектов. |
спутник | Значение: kGMSTypeSatellite Данные спутниковой фотографии. Надписи дорог и объектов не видны. |
Местность | Значение: kGMSTypeTerrain Топографические данные. Карта включает в себя цвета, контурные линии и метки, а также перспективное затенение. Также видны некоторые дороги и метки. |
Никто | Значение: kGMSTypeNone Нет фрагментов карты. Тайлы базовой карты не будут отображаться. Этот режим полезен в сочетании со слоями тайлов . Отображение данных о дорожном движении будет отключено, если тип карты не установлен. |
Изменение типа карты
Чтобы задать тип карты, присвойте новое значение свойству GMSMapView.mapType
. Например, чтобы отобразить тип спутниковой карты:
Быстрый
let camera = GMSCameraPosition.camera(withLatitude: -33.8683, longitude: 151.2086, zoom: 6) let mapView = GMSMapView.map(withFrame: .zero, camera: camera) mapView.mapType = .satellite
Цель-C
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.8683 longitude:151.2086 zoom:6]; GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; mapView.mapType = kGMSTypeSatellite;
Селектор ниже показывает сравнение карт местности, нормалей и гибридных карт для одного и того же местоположения:
Внутренние карты
При высоком уровне масштабирования Maps SDK для iOS будет отображать планы помещений для помещений, таких как аэропорты, торговые центры, крупные розничные магазины и транзитные станции. Планы помещений интегрированы в плитки карты по умолчанию для «нормального» типа карты ( kGMSTypeNormal
) и автоматически включаются, когда пользователь увеличивает масштаб, и исчезают, когда карта уменьшается.
Карты помещений можно отключить, установив для свойства indoorEnabled
объекта GMSMapView
значение NO
.
Быстрый
mapView.isIndoorEnabled = false
Цель-C
mapView.indoorEnabled = NO;
Кроме того, вы можете отключить только элемент управления Floor Picker .
Добавление планов этажей
Планы этажей доступны в некоторых местах . Если данные плана этажа недоступны для здания, которое вы хотите выделить в своем приложении, вы можете:
- Добавляйте поэтажные планы напрямую в Google Maps. Это сделает ваши планы доступными для всех пользователей Google Maps.
- Отображение плана этажа в виде наложения на земную поверхность . Это позволит только пользователям вашего приложения просматривать планы этажей.
Уровень трафика
Вы можете дать своим пользователям возможность просматривать карту с информацией о плотности движения, наложенной поверх нее. Это обеспечивает визуальную сводку их местной дорожной ситуации. Вы можете включать и выключать уровень трафика, вызывая метод trafficEnabled
. В следующем примере показано, как слой трафика может отображаться на карте.
Доступность
По умолчанию элементы специальных возможностей на карте скрыты. Вы можете включить специальные возможности, установив для свойства accessibilityElementsHidden
GMSMapView
значение NO
. Это приведет к созданию элементов доступности для объектов наложения (таких как GMSMarker
и информационные окна, GMSPolyline
и т. д.).
Быстрый
mapView.accessibilityElementsHidden = false
Цель-C
mapView.accessibilityElementsHidden = NO;
Это свойство соответствует неофициальному протоколу UIAccessibility
, за исключением того, что значением по умолчанию в Maps SDK для iOS является YES
.
Мое местонахождение
По умолчанию данные о местоположении не отображаются на карте. Вы можете включить синюю точку «Мое местоположение» и направление по компасу, установив myLocationEnabled
в GMSMapView
.
Быстрый
mapView.isMyLocationEnabled = true
Цель-C
mapView.myLocationEnabled = YES;
Включение этой функции также предоставит текущее местоположение пользователя через свойство myLocation
. Это свойство может быть недоступно сразу — например, если iOS предложит пользователю разрешить доступ к этим данным. В этом случае будет ноль.
Быстрый
print("User's location: \(String(describing: mapView.myLocation))")
Цель-C
NSLog(@"User's location: %@", mapView.myLocation);
3D здания
Во многих городах при просмотре крупным планом будут видны трехмерные здания, как показано на изображении Сиэтла, штат Вашингтон, ниже.

Вы можете отключить 3D-здания, установив соответствующее свойство GMSMapView
в Swift или Objective-C, как показано ниже:
Быстрый
mapView.isBuildingsEnabled = false
Цель-C
[mapView setBuildingsEnabled:NO];
Заполнение карты
Карта Google предназначена для заполнения всего региона, определенного GMSMapView
. Несколько аспектов того, как карта выглядит и ведет себя, определяются размерами вида:
- Цель камеры будет отражать центр заполненной области.
- Элементы управления картой располагаются относительно краев карты.
- Юридическая информация, такая как заявления об авторских правах или логотип Google, отображается вдоль нижнего края карты.
Вы можете добавить отступы по краям карты, используя GMSMapView
. свойство padding
. Карта продолжит заполнять весь контейнер, но расположение текста и элементов управления, жесты карты и движения камеры будут вести себя так, как если бы они были помещены в меньшее пространство. Это приводит к следующим изменениям:
- Движения камеры через вызовы API или нажатия кнопок (например, компас, мое местоположение) будут относиться к заполненной области.
-
GMSMapView
.projection
вернет проекцию, включающую только заполненную область. - Элементы управления пользовательского интерфейса будут смещены от края контейнера на указанное количество точек.
Отступы могут быть полезны при разработке пользовательских интерфейсов, перекрывающих часть карты. Например, на изображении ниже карта дополнена вдоль верхнего и правого краев. Видимые элементы управления картой и юридический текст будут отображаться по краям заполненной области, показанной зеленым цветом, в то время как карта будет продолжать заполнять весь контейнер, показанный синим цветом. В этом примере вы можете расположить меню над правой стороной карты, не закрывая элементы управления картой.
Чтобы добавить отступы к вашей карте, создайте объект UIEdgeInsets
и передайте его в GMSMapView
. свойство padding
.
Быстрый
// Insets are specified in this order: top, left, bottom, right let mapInsets = UIEdgeInsets(top: 100.0, left: 0.0, bottom: 0.0, right: 300.0) mapView.padding = mapInsets
Цель-C
// Insets are specified in this order: top, left, bottom, right UIEdgeInsets mapInsets = UIEdgeInsetsMake(100.0, 0.0, 0.0, 300.0); mapView.padding = mapInsets;