Neste tópico, descrevemos como configurar um mapa que foi adicionado a um app iOS usando o SDK do Maps para iOS.
Informações gerais
Depois de adicionar um mapa ao seu app, você pode definir as configurações inicial e de tempo de execução do mapa. Para saber 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.
- 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
.
Tipos de mapa
É possível personalizar o mapa com um dos diversos tipos de mapa. O tipo determina a representação geral do mapa. Por exemplo, um atlas geralmente contém mapas políticos que se concentram em mostrar limites e mapas estradas 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íbrido | Valor:
kGMSTypeHybrid Dados de fotografia de satélite com mapas rodoviários incluído. Etiquetas de vias e elementos também são visíveis. |
Satélite | Valor:
kGMSTypeSatellite Dados de fotografia de satélite. As etiquetas de vias e elementos não estã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.
|
Nenhum | Valor:
kGMSTypeNone Não há blocos de mapa. Os blocos do mapa básico não são renderizados. Esse modo é útil junto 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 camera = GMSCameraPosition.camera(withLatitude: -33.8683, longitude: 151.2086, zoom: 6) let mapView = GMSMapView.map(withFrame: .zero, camera: camera) mapView.mapType = .satellite
Objective-C
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.8683 longitude:151.2086 zoom:6]; GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; 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 de 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 de mapa padrão do tipo de mapa "normal" (kGMSTypeNormal
). Elas são ativadas automaticamente quando o usuário aumenta o zoom e desaparecem quando ele é reduzido.
É possível desativar os mapas internos definindo a propriedade indoorEnabled
de GMSMapView
como NO
.
Swift
mapView.isIndoorEnabled = false
Objective-C
mapView.indoorEnabled = NO;
Como alternativa, você pode desativar apenas o controle do seletor de solo.
Adicionar plantas baixas
Plantas baixas estão disponíveis em locais selecionados. Se os dados de planta baixa não estiverem disponíveis para um edifício que você quer destacar no seu aplicativo, será possível:
- adicionar plantas baixas ao Google Maps diretamente, Assim, os planos são disponibilizados a todos os usuários do Google Maps.
- Exibir uma planta baixa como uma sobreposição de solo. Isso permitirá 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 essa camada, 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
, 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
, mas o valor padrão no SDK do Maps para iOS é 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 também informa a localização atual do usuário pela
propriedade myLocation
. Essa propriedade pode não estar imediatamente disponível, por exemplo, se o iOS solicitar que o usuário permita o acesso a esses dados. Nesse caso, será nulo.
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.

É possível desativar as construções em 3D definindo 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 será o centro da região preenchida.
- Os controles do mapa são posicionados em relação às margens dele.
- 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 continuará preenchendo todo o contêiner, mas o posicionamento do texto e dos controles, os gestos do mapa e os movimentos da câmera responderão como se estivessem em um espaço menor. Isso resulta nas seguintes mudanças:
- Os movimentos da câmera via chamadas de API ou uso de botões (por exemplo, bússola, "Meu local") serão relativos à região preenchida.
GMSMapView
.projection
retornará uma projeção que inclui apenas a região preenchida.- Os controles de IU serão deslocados da margem do contêiner pelo número especificado de pontos.
O padding pode ser útil ao criar IUs que se sobrepõem a uma parte do mapa. Por exemplo, na imagem inferior, 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;