Настроить карту

Оптимизируйте свои подборки Сохраняйте и классифицируйте контент в соответствии со своими настройками.

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

В этом разделе описывается, как настроить карту, добавленную в приложение 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 .

Добавление планов этажей

Планы этажей доступны в некоторых местах . Если данные плана этажа недоступны для здания, которое вы хотите выделить в своем приложении, вы можете:

Уровень трафика

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

Карта Google, показывающая слой трафика

Доступность

По умолчанию элементы специальных возможностей на карте скрыты. Вы можете включить специальные возможности, установив для свойства 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 вернет проекцию, включающую только заполненную область.
  • Элементы управления пользовательского интерфейса будут смещены от края контейнера на указанное количество точек.

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

Map Padding

Чтобы добавить отступы к вашей карте, создайте объект 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;