Esta página mostra como adicionar um conjunto de dados a um mapa e aplicar um estilo.
Pré-requisitos
Antes de continuar, você precisa ter um ID do mapa, um estilo de mapa e um ID do conjunto de dados.
Associar um ID do conjunto de dados a um estilo de mapa
Para estilizar os elementos de um conjunto de dados, aplique uma função de estilo à camada de elementos do conjunto de dados de um mapa. A camada de elementos do conjunto de dados é criada quando você associa um conjunto de dados a um estilo de mapa.
Siga estas etapas para associar seu conjunto de dados com o estilo de mapa que você está usando:
- No console do Google Cloud, acesse a página Conjuntos de dados.
- Clique no nome do conjunto de dados. A página Detalhes do conjunto de dados vai aparecer.
- Clique na guia Visualização.
- Na seção Estilos de mapa associados, clique em ADICIONAR ESTILO DE MAPA.
- Clique nas caixas de seleção dos estilos de mapa que serão associados e clique em SALVAR.
Aplicar estilos ao conjunto de dados
Para estilizar um elemento da camada do conjunto de dados, use um fechamento de estilo que aceite um
GMSDatasetFeature
e retorne um GMSFeatureStyle
para definir os atributos de estilo. Em seguida, defina a propriedade de estilo como um fechamento de estilo, que contém a lógica de estilo.
O fechamento de estilo precisa ser determinístico e retornar resultados consistentes quando for aplicado. Se as especificações de estilo de qualquer recurso forem alteradas, o estilo precisará ser aplicado novamente.
Definir o traço, o preenchimento e o raio do ponto
Ao definir o estilo de um elemento na função da fábrica de estilos, é possível definir:
Cor e opacidade do traço da borda, conforme definido pela classe
UIColor
. O valor padrão é transparente (UIColor.clearColor
).Largura do traço da borda em pixels da tela. O valor padrão é 2.
Cor e opacidade do preenchimento, conforme definido pela classe
UIColor
. O valor padrão é transparente (UIColor.clearColor
).Raio do ponto de um elemento pontual entre 0 e 128 pixels.
Usar regras de estilo simples
A maneira mais simples de definir o estilo dos elementos é definir atributos de estilo constantes, como cor, opacidade e largura da linha. Aplique opções de estilo diretamente a uma camada de elementos do conjunto de dados ou use-as com estilos personalizados.
Swift
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; };
Usar regras de estilo declarativas
É possível definir regras de estilo de forma declarativa com base em um atributo do elemento e aplicá-las a todo o conjunto de dados. Você pode retornar nil
da função de estilo de elemento, por exemplo, se quiser que um subconjunto de elementos permaneça invisível.
Por exemplo, use o
GMSDatasetFeature.datasetAttributes
para retornar o valor de um atributo de conjunto de dados para um elemento. Em seguida, é possível personalizar
o estilo do recurso com base nos atributos dele.
Este exemplo determina o valor do atributo "highlightColor" de cada elemento de um conjunto de dados para controlar o estilo:
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. ... };
Remover o estilo de uma camada
Para remover o estilo de uma camada, defina style
como null
:
Swift
layer.style = nil
Objective-C
layer.style = nil;
Você também pode retornar nil
da função de estilo de
elemento, por exemplo, se quiser que um subconjunto de elementos permaneça invisível.