Esta visão geral descreve 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 seu app, você pode configurar as opções iniciais e o tempo de execução configurações do mapa. Para obter detalhes sobre como adicionar um contêiner de mapa, consulte a seção 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 detalhes sobre o posicionamento da câmera.
- A cor do plano de fundo do mapa.
- O tipo de mapa.
- Os componentes da IU que serão exibidos, como os botões de zoom e bússola
- Os gestos de ativação.
No tempo de execução, você pode definir essas e outras configurações adicionais
atualizando o
GMSMapView
objeto.
Opções do mapa
Ao inicializar a visualização do 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
É possível definir suas próprias propriedades de opção ou passar um
GMSMapViewOptions
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];
Veja 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 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 do mapa. Isso pode ser feito definindo 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 um mapa controla a representação geral do mapa. Por exemplo, um atlas geralmente contém mapas políticos, que mostram limites, e mapas rodoviários, que mostram todas as vias de uma cidade ou região. O SDK do Maps para iOS oferece seguintes tipos de mapa:
Tipo de mapa | |
---|---|
Normal | Valor:
kGMSTypeNormal Mapa rodoviário típíco. Mostra vias, alguns recursos construídos por
humanos e recursos naturais importantes, como rios. Etiquetas de estradas e de elementos também são visíveis. Oferece suporte à definição do esquema de cores do mapa como escuro, claro ou para seguir as configurações do sistema.
|
Híbrido | Valor:
kGMSTypeHybrid Dados de fotografia de satélite com mapas rodoviários incluído. Os rótulos de vias e de 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.
|
Relevo | Valor:
kGMSTypeTerrain Dados topográficos. O mapa inclui cores, contornos e marcadores,
e sombreamento de perspectiva. Algumas vias e etiquetas também são visíveis. Oferece suporte
definir o esquema de cores do mapa como escuro, claro ou para seguir as configurações do sistema.
|
Nenhum | Valor:
kGMSTypeNone Não há blocos de mapa. Os blocos do mapa básico não são renderizados. Este modo é
útil em conjunto com bloco
camadas. A exibição de dados de trânsito é desativada quando o tipo de mapa é
definido como nenhum. |
Como mudar o tipo de mapa
Para definir o tipo de um mapa, atribua um novo valor ao 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 entre mapas de terreno, normais e híbridos para o mesmo local:
Mapas internos
Em níveis altos de zoom, o SDK do Maps para iOS mostra plantas baixas de espaços internos, como aeroportos, shoppings, grandes lojas varejistas e estações de transporte público. As plantas baixas internas são integradas aos blocos de mapa padrão para o
"normal" tipo de mapa (kGMSTypeNormal
) e são ativados automaticamente quando o
o usuário aumenta o zoom e esmaece quando o zoom do mapa é reduzido.
Para desativar os mapas internos, defina a propriedade indoorEnabled
de
GMSMapView
para NO
.
Swift
mapView.isIndoorEnabled = false
Objective-C
mapView.indoorEnabled = NO;
Como alternativa, você pode desativar apenas Controle do seletor de andar.
Como adicionar plantas baixas
Plantas baixas estão disponíveis em locais. Se os dados de planta baixa não estiverem disponíveis para um edifício que você gostaria destacar em seu aplicativo, você pode:
- Adicionar andar planos diretamente ao Google Maps. Isso faz com que seus planos sejam disponibilizados para todos os usuários do Google Maps.
- Exibir uma planta baixa como uma sobreposição de solo. Assim, apenas os usuários do aplicativo poderão ver 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. É possível ativar ou desativar a camada de trânsito chamando
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
de acessibilidade, definindo a propriedade accessibilityElementsHidden
de
GMSMapView
para 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 está de acordo com o protocolo informal UIAccessibility
, exceto que o
o valor padrão no SDK do Maps para iOS é YES
.
Meu local
Por padrão, nenhum dado de localização é mostrado no mapa. É possível ativar a opção azul "Meu
Local" ponto e direção da bússola definindo 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 por meio do
myLocation
. Esta propriedade pode não estar 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
Muitas cidades, quando vistas de perto, têm construções visíveis em 3D, como visíveis na imagem de Seattle, Washington abaixo.
Você pode desativar as construções em 3D definindo a
GMSMapView
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
.propriedade padding
. O mapa continua a preencher
contêiner inteiro, mas o posicionamento de textos e controles, gestos do mapa e imagens
se comportam como se tivessem sido colocados em um espaço menor. Isso resulta nas
seguintes mudanças:
- Movimentos da câmera usando chamadas de API ou pressionamento de botões (por exemplo, bússola, localização) são relativos à região preenchida.
GMSMapView
.projection
retorna uma projeção que inclui apenas os valores preenchidos. na mesma região.- Os controles de interface são deslocados da margem do contêiner pelo valor número 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 visíveis e texto legal são exibidos ao longo das margens do campo em verde, enquanto o mapa continua a preencher todo o contêiner, em azul. Nesse exemplo, é possível flutuar um menu sobre o lado direito do mapa sem impedir a visão dos controles.
Para adicionar padding ao mapa, crie um objeto UIEdgeInsets
e o transmita para o
GMSMapView
.Propriedade 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;
Esquema de cores do mapa
Para mapas do tipo normal e terreno, você pode definir o esquema de cores do mapa como escuro, luz ou para usar as configurações atuais do sistema. Por exemplo, é possível escurecer ou clarear o esquema de cores do mapa com base na hora do dia ou no uso interno ou externo do dispositivo.
Usar GMSMapView
overrideUserInterfaceStyle:
para definir e atualizar o esquema de cores do mapa.
Swift
let options = GMSMapViewOptions() // Map is init to use light mode by default. let mapView = GMSMapView(options: options) // Set map to use dark mode. mapView.overrideUserInterfaceStyle = .dark // Set map to use light mode. mapView.overrideUserInterfaceStyle = .light // Set map to use dark/light mode based on the value of traitCollection.userInterfaceStyle mapView.overrideUserInterfaceStyle = .unspecified
Objective-C
GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init]; // Map is init to always use light mode. GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options]; // Set map to use dark mode. mapView.overrideUserInterfaceStyle = UIUserInterfaceStyleDark; // Set map to use light mode. mapView.overrideUserInterfaceStyle = UIUserInterfaceStyleLight; // Set map to use dark/light mode based on the value of traitCollection.userInterfaceStyle mapView.overrideUserInterfaceStyle = UIUserInterfaceStyleUnspecified;