Nesta visão geral, descrevemos como configurar um mapa que foi adicionado a um app iOS usando o SDK do Maps para iOS.
Visão geral
Depois de adicionar um mapa ao app, você poderá definir as opções iniciais e as configurações de tempo de execução do mapa. Para ver detalhes sobre como adicionar um contêiner de mapa, consulte Adicionar um mapa.
As configurações iniciais do mapa incluem o seguinte:
- A posição da câmera, incluindo localização, zoom, direção e inclinação. Consulte Câmera e visualização para ver mais detalhes sobre o posicionamento da câmera.
- A cor do plano de fundo do mapa.
- O tipo de mapa.
- Os componentes da IU a serem exibidos, como os botões de zoom e a bússola.
- Os gestos de ativação.
No tempo de execução, é possível definir essas e outras configurações atualizando o objeto GMSMapView
.
Opções do mapa
Ao inicializar a visualização de mapa, as opções de configuração são definidas com GMSMapViewOptions
. As propriedades da opção incluem frame
, camera
, mapID
ou backgroundColor
.
Opções do mapa | |
---|---|
moldura | Valor:
CGRect O frame do mapa. O padrão é CGRectZero.
|
câmera | Valor:
GMSCameraPosition A posição padrão da câmera do mapa.
|
mapID | Valor:
GMSMapID ID do mapa do Google. Parâmetro opcional.
|
backgroundColor | Valor:
UIColor O padrão é UIColor.lightGray.
|
Configurar opções do mapa
Você pode definir suas próprias propriedades de opção ou transmitir um GMSMapViewOptions
instanciado com valores padrão diretamente para GMSMapView
.
Swift
let options = GMSMapViewOptions() options.camera = GMSCameraPosition.camera(withLatitude: -33.8683, longitude: 151.2086, zoom: 6) let mapView = GMSMapView(options:options)
Objective-C
GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init]; options.camera = [GMSCameraPosition cameraWithLatitude:-33.8683 longitude:151.2086 zoom:6]; GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];
Confira um exemplo de transmissão de um objeto GMSMapViewOptions
com valores padrão
diretamente para GMSMapView
.
Swift
let options = GMSMapViewOptions() let mapView = GMSMapView(options:options) //initialized with default values
Objective-C
GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init]; GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options]; //initialized with default values
Configurar a cor do plano de fundo
Ao trabalhar no modo escuro ou alternar entre visualizações de mapa, pode ser útil substituir a cor padrão do plano de fundo. Para isso, defina a propriedade backgroundColor
das opções do mapa.
Swift
let options = GMSMapViewOptions() options.backgroundColor = UIColor.yellowColor let mapView = GMSMapView(options:options)
Objective-C
GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init]; options.backgroundColor = UIColor.yellowColor; GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];
Tipos de mapa
É possível personalizar o mapa com um dos diversos tipos de mapa. O tipo de mapa controla a representação geral dele. Por exemplo, um atlas geralmente contém mapas políticos que se concentram em mostrar limites e mapas rodoviários que mostram todas as vias de uma cidade ou região. O SDK do Maps para iOS oferece os seguintes tipos de mapa:
Tipo de mapa | |
---|---|
Normal | Valor:
kGMSTypeNormal Mapa rodoviário típíco. Mostra vias, alguns recursos criados pelo homem e recursos naturais importantes, como rios. Etiquetas de estradas e de elementos também são visíveis.
|
Híbrida | Valor:
kGMSTypeHybrid Dados de fotografia de satélite com mapas rodoviários incluído. As etiquetas de vias e elementos também são visíveis. |
Satélite | Valor:
kGMSTypeSatellite Dados de fotografia de satélite. Os rótulos de vias e elementos não são visíveis.
|
Terreno | Valor:
kGMSTypeTerrain Dados topográficos. O mapa inclui cores, linhas de contorno e rótulos, além de sombreamento de perspectiva. Algumas vias e etiquetas também são visíveis.
|
Nenhuma | Valor:
kGMSTypeNone Não há blocos de mapa. Os blocos do mapa básico não são renderizados. Esse modo é útil em conjunto com as camadas de blocos. A exibição de dados de trânsito é desativada quando o tipo de mapa é definido como "nenhum". |
Como alterar o tipo de mapa
Para definir o tipo de um mapa, atribua um novo valor à propriedade GMSMapView.mapType
. Por exemplo, para exibir um mapa do tipo satélite:
Swift
let options = GMSMapViewOptions() options.camera = GMSCameraPosition.camera(withLatitude: -33.8683, longitude: 151.2086, zoom: 6) let mapView = GMSMapView(options:options) mapView.mapType = .satellite
Objective-C
GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init]; options.camera = [GMSCameraPosition cameraWithLatitude:-33.8683 longitude:151.2086 zoom:6]; GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options]; mapView.mapType = kGMSTypeSatellite;
O seletor abaixo mostra uma comparação dos mapas de terreno, normal e híbrido para o mesmo local:
Mapas internos
Em níveis altos de zoom, o SDK do Maps para iOS mostra plantas baixas para espaços internos, como aeroportos, shoppings, grandes lojas de varejo e estações de transporte público. As plantas baixas internas são integradas aos blocos padrão do mapa para o tipo de mapa "normal" (kGMSTypeNormal
), e são ativadas automaticamente quando o usuário aumenta o zoom e desaparecem quando ele é reduzido.
Para desativar os mapas internos, defina a propriedade indoorEnabled
de GMSMapView
como NO
.
Swift
mapView.isIndoorEnabled = false
Objective-C
mapView.indoorEnabled = NO;
Se preferir, desative apenas o controle do seletor de solo.
Adicionar plantas baixas
As plantas baixas estão disponíveis em locais selecionados. Se não houver dados de planta baixa para um edifício que você quer destacar no seu aplicativo, faça o seguinte:
- Adicione plantas baixas diretamente ao Google Maps. Assim, eles ficam disponíveis para todos os usuários do Google Maps.
- Exibir uma planta baixa como uma sobreposição de solo. Isso permite que apenas os usuários do aplicativo vejam as plantas baixas.
Camada de trânsito
Você pode permitir que os usuários visualizem o mapa com informações de densidade de trânsito sobrepostas. Com isso, eles terão acesso a um resumo visual da situação do trânsito local. Para ativar ou desativar a camada de trânsito, chame o método trafficEnabled
. O exemplo a seguir mostra como a camada de tráfego pode aparecer em um mapa.
Acessibilidade
Por padrão, os elementos de acessibilidade do mapa estão ocultos. Você pode ativar
a acessibilidade definindo a propriedade accessibilityElementsHidden
de
GMSMapView
como NO
. Isso faz com que elementos de acessibilidade sejam gerados para
objetos de sobreposição (como GMSMarker
e janelas de informações, GMSPolyline
etc.).
Swift
mapView.accessibilityElementsHidden = false
Objective-C
mapView.accessibilityElementsHidden = NO;
Essa propriedade segue o protocolo informal UIAccessibility
, exceto pelo valor padrão no SDK do Maps para iOS, que é YES
.
Meu local
Por padrão, nenhum dado de localização é mostrado no mapa. Para ativar o ponto azul "Meu
local" e a direção da bússola, defina myLocationEnabled
em
GMSMapView
.
Swift
mapView.isMyLocationEnabled = true
Objective-C
mapView.myLocationEnabled = YES;
A ativação desse recurso fornece a localização atual do usuário usando a
propriedade myLocation
. Talvez essa propriedade não fique disponível imediatamente. Por exemplo, se o iOS solicitar que o usuário permita o acesso a esses dados. É
nil
nesse caso.
Swift
print("User's location: \(String(describing: mapView.myLocation))")
Objective-C
NSLog(@"User's location: %@", mapView.myLocation);
Construções em 3D
Quando vistas de perto, diversas cidades têm construções visíveis em 3D, como na imagem de Seattle, Washington, abaixo.
Para desativar as construções em 3D, defina a propriedade
GMSMapView
correspondente no Swift ou Objective-C, conforme mostrado abaixo:
Swift
mapView.isBuildingsEnabled = false
Objective-C
[mapView setBuildingsEnabled:NO];
Padding do mapa
Um mapa do Google é projetado para preencher toda a região definida pelo GMSMapView
.
Vários aspectos da exibição e do comportamento de um mapa são definidos pelas dimensões da visualização:
- O alvo da câmera reflete o centro da região preenchida.
- Os controles do mapa são posicionados em relação às margens do mapa.
- Informações legais, como declarações de direitos autorais ou o logotipo do Google, aparecem na margem inferior.
Para adicionar padding ao redor das margens do mapa, use o método GMSMapView
.padding
. O mapa continua preenchendo todo o contêiner, mas o posicionamento do texto e dos controles, os gestos do mapa e os movimentos da câmera se comportam como se tivessem sido colocados em um espaço menor. Isso resulta nas
seguintes mudanças:
- Os movimentos da câmera usando chamadas de API ou pressionamento de botões (por exemplo, bússola, "Meu local") são relativos à região preenchida.
GMSMapView
.projection
retorna uma projeção que inclui apenas a região preenchida.- Os controles de IU são deslocados da margem do contêiner pelo número especificado de pontos.
O preenchimento pode ser útil ao projetar interfaces de usuário que se sobrepõem a uma parte do mapa. Por exemplo, na imagem, o mapa é preenchido nas margens superior e direita. Controles de mapa e texto legal visíveis são exibidos nas margens da região preenchida, em verde, enquanto o mapa continua preenchendo o contêiner inteiro, mostrado em azul. Nesse exemplo, você poderia exibir um menu flutuante no lado direito, sem ocultar os controles.
Para adicionar padding ao mapa, crie um objeto UIEdgeInsets
e transmita-o ao GMSMapView
.padding
.
Swift
// 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
Objective-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;