На этой странице показано, как добавить набор данных на карту и применить стили.
Предпосылки
Прежде чем продолжить, вам необходимо иметь идентификатор карты, стиль карты и идентификатор набора данных.
Свяжите идентификатор набора данных со стилем карты
Чтобы стилизовать объекты набора данных, необходимо применить функцию стиля к слою объектов набора данных на карте. Слой объектов набора данных создаётся при связывании набора данных со стилем карты .
Чтобы связать набор данных с используемым стилем карты, выполните следующие действия:
- В консоли Google Cloud перейдите на страницу Наборы данных .
- Щелкните имя набора данных. Откроется страница с подробностями набора данных .
- Откройте вкладку Предварительный просмотр .
- В разделе Связанные стили карты нажмите ДОБАВИТЬ СТИЛЬ КАРТЫ .
- Установите флажки для стилей карты, которые необходимо связать, а затем нажмите кнопку СОХРАНИТЬ .
Применить стили к набору данных
Чтобы стилизовать объект слоя набора данных, используйте замыкание стилей, которое принимает GMSDatasetFeature
и возвращает GMSFeatureStyle
для определения атрибутов стиля. Затем установите свойство стиля для замыкания стилей, содержащего логику стилизации.
Замыкание стиля должно быть детерминированным и возвращать согласованные результаты при применении. При изменении каких-либо параметров стиля любого объекта стиль необходимо применить повторно.
Задайте обводку, заливку и радиус точки
При стилизации объекта в функции фабрики стилей вы можете задать:
Цвет обводки и прозрачность границы определяются классом
UIColor
. Значение по умолчанию — прозрачный (UIColor.clearColor
).Ширина обводки границы в пикселях экрана. Значение по умолчанию — 2.
Цвет заливки и непрозрачность определяются классом
UIColor
. Значение по умолчанию — прозрачный (UIColor.clearColor
).Радиус точки точечного объекта от 0 до 128 пикселей.
Используйте простые правила стиля
Самый простой способ стилизации объектов — определить постоянные атрибуты стиля, такие как цвет, прозрачность и толщина линии. Вы можете применять параметры стиля объектов непосредственно к слою объектов набора данных или использовать их вместе с пользовательскими стилями.
Быстрый
let mapView = GMSMapView(frame: .zero, mapID: GMSMapID(identifier: "YOUR_MAP_ID"), camera: GMSCameraPosition(latitude: 40.7, longitude: -74.0, zoom: 12)) 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
GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero mapID:[GMSMapID mapIDWithIdentifier:@"MAP_ID"] camera:[GMSCameraPosition cameraWithLatitude: 40.7 longitude: -74.0 zoom:12]]; 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» каждого объекта набора данных для управления стилем:
Быстрый
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
:
Быстрый
layer.style = nil
Objective-C
layer.style = nil;
Вы также можете вернуть nil
из функции стиля объекта, например, если вы хотите, чтобы подмножество объектов оставалось невидимым.