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

Требования
Чтобы продолжить работу, вам понадобятся идентификатор и стиль карты и идентификатор набора данных.
Как связать идентификатор набора данных со стилем карты
Чтобы настроить стиль объектов набора данных, примените функцию стиля к слою объектов набора данных на карте. Слой объектов набора данных создается, когда вы связываете набор данных со стилем карты.
Чтобы связать набор данных со стилем карты, выполните следующие действия:
- В консоли Google Cloud перейдите на страницу Наборы данных.
- Нажмите на название набора данных. Откроется страница Dataset details (Сведения о наборе данных).
- Перейдите на вкладку Preview (Предварительный просмотр).
- В разделе Associated map styles (Связанные стили карт) нажмите Add map style (Добавить стиль карты).
- Установите флажки для стилей, с которыми нужно установить связь, и нажмите Save (Сохранить).
Как применить стили к набору данных
Чтобы задать стиль объекта на слое набора данных, используйте замыкание стиля, которое принимает GMSDatasetFeature и возвращает GMSFeatureStyle для определения атрибутов стиля. Затем задайте для свойства стиля замыкание, содержащее логику стиля.
Замыкание стиля должно быть детерминированным и при применении возвращать согласованные результаты. Если спецификации стиля какого-либо объекта изменены, стиль необходимо применить снова.
Как задать контур, заливку и радиус точки
При оформлении объекта в функции фабрики стилей можно задать следующие параметры:
Цвет и прозрачность границы, заданные классом
UIColor. Значение по умолчанию – прозрачный (UIColor.clearColor).Толщина контура границы в пикселях экрана. Значение по умолчанию – 2.
Цвет и прозрачность заливки, определяемые классом
UIColor. Значение по умолчанию – прозрачный (UIColor.clearColor).Радиус точки для точечного объекта (от 0 до 128 пикселей).
Как использовать простые правила стиля
Проще всего настраивать стиль объектов, определяя постоянные атрибуты стиля (например, цвет, прозрачность и толщину линии). Настройки стиля объекта можно применить непосредственно на слое объекта набора данных или использовать совместно с собственным стилем.
Swift
let options = GMSMapViewOptions() options.mapID = GMSMapID(identifier: "YOUR_MAP_ID") options.camera = GMSCameraPosition(latitude: 40.7, longitude: -74.0, zoom: 12) let mapView = GMSMapView(options: options) let layer = mapView.datasetFeatureLayer(of: "YOUR_DATASET_ID") // Define a style with green fill and stroke. // Apply the style to all features in the dataset. layer.style = { feature in let style = MutableFeatureStyle() style.fillColor = .green.withAlphaComponent(0.1) style.strokeColor = .green style.strokeWidth = 2.0 return style }
Objective-C
GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init]; options.camera = [GMSCameraPosition cameraWithLatitude:40.7 longitude:-74.0 zoom:12]; options.mapID = [GMSMapID mapIDWithIdentifier:@"MAP_ID"]; GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options]; GMSDatasetFeatureLayer *layer = [mapView datasetFeatureLayerOfDatasetID:@"YOUR_DATASET_ID"]; // Define a style with green fill and stroke. // Apply the style to all features in the dataset. layer.style = ^(GMSDatasetFeature *feature) { GMSMutableFeatureStyle *style = [GMSMutableFeatureStyle style]; style.fillColor = [[UIColor greenColor] colorWithAlphaComponent:0.1]; style.strokeColor = [UIColor greenColor]; style.strokeWidth = 2.0; return style; };
Как использовать декларативные правила стиля
Вы можете задать декларативные правила стиля на основе атрибута объекта и применить их ко всему набору данных. Функция стиля объекта также может возвращать nil, например если вы хотите, чтобы поднабор объектов не отображался.
Например, используйте GMSDatasetFeature.datasetAttributes, чтобы получить значение атрибута набора данных для объекта. Затем вы можете настроить стиль объекта на основе его атрибутов.
В этом примере определяется значение атрибута highlightColor каждого объекта набора данных, чтобы управлять стилем:
Swift
layer.style = { feature in var attributeColor: String = feature.datasetAttributes["highlightColor"] // Conditionalize styling based on the value of the "highlightColor" attribute. ... }
Objective-C
// Apply the style to a single dataset feature. layer.style = ^(GMSDatasetFeature *feature) { NSString *attributeColor = feature.datasetAttributes[@"highlightColor"]; // Conditionalize styling based on the value of the "highlightColor" attribute. ... };
Как удалить стиль из слоя
Чтобы удалить примененный стиль из слоя, задайте для параметра style значение null:
Swift
layer.style = nil
Objective-C
layer.style = nil;
Функция стиля объекта также может возвращать nil, например если вы хотите, чтобы поднабор объектов не отображался.