15 Fev, 2013 20:11

Utilizando o Google Maps no seu Aplicativo iOS - Parte 1

Desde o lançamento da solução da Apple muita gente, vem reclamando dela. A própria empresa veio a público se desculpar pelas falhas. Como a API Map Kit utiliza os mesmos dados que os mapas da Apple, ela está sujeita aos mesmos problemas, por exemplo, as rotas da Apple que foram muito criticadas são as mesmas da API. Abaixo um exemplo (comparando com o correto do Google):

Apple Maps x Google Maps

Contudo, em dezembro de 2012, a Google anunciou o seu aplicativo do Google Maps para iPhone e juntamente com ele também uma API que possibilita que qualquer desenvolvedor utilize sua solução de mapas. Abaixo um tutorial simples de como colocar um mapa na tela.

Obtendo uma API Key

A Google possui termos de uso para seus mapas, por exemplo, se seu aplicativo for muito usado eles podem cobrar de você ou tirar os mapas do seu aplicativo. Tudo isso é gerenciado pelas API Keys. Para colocar um mapa do Google no seu aplicativo, é preciso obter a API Key e o requerimento é feito através deste link. Após obter a API Key, baixe o SDK nesse outro link.

Colocando o SDK do Google Maps no seu projeto

A primeira coisa que é preciso saber é que o Google Maps requer o iOS 6 ou superior para funcionar, o que pode trazer problemas de compatibilidade com versões anteriores do iOS. O SDK do Google Maps também requer que o projeto use ARC (Automatic Reference Counting). Estando isso configurado, basta arrastar o arquivo GoogleMaps.framework, que veio no link do parágrafo anterior, para o seu projeto, selecionando a opção Copy items into destination group's folder. Também copie o GoogleMaps.bundle (da pasta resources) para o projeto. O SDK também requer que o seu projeto inclua os seguintes frameworks e libs:

  • AVFoundation.framework
  • CoreData.framework
  • CoreLocation.framework
  • CoreText.framework
  • GLKit.framework
  • ImageIO.framework
  • libicucore.dylib
  • libc++.dylib
  • libz.dylib
  • OpenGLES.framework
  • QuartzCore.framework
  • SystemConfiguration.framework

Por fim, é preciso colocar armv7 como a arquitetura padrão do projeto e no campo Other Linker Flags, do build settings adicionar -ObjC.

Adicionando um mapa

Para adicionar um mapa, importe o SDK do Google maps no seu App Delegate:

#import <GoogleMaps/GoogleMaps.h>

Também é preciso colocar a API Key, chamando o método abaixo, no application:didFinishLaunchingWithOptions::

[GMSServices provideAPIKey:@"YOUR_API_KEY"];

Depois disso, basta na sua view instanciar e adicionar o mapa, como o código abaixo:

#import "YourViewController.h"
#import <GoogleMaps/GoogleMaps.h>

@implementation YourViewController {
GMSMapView *mapView_;
}

// You don't need to modify the default initWithNibName:bundle: method.

- (void)loadView {
    GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.8683
                                                            longitude:151.2086
                                                                 zoom:6];
    mapView_ = [GMSMapView mapWithFrame:CGRectZero camera:camera];
    mapView_.myLocationEnabled = YES;
    self.view = mapView_;

    GMSMarkerOptions *options = [[GMSMarkerOptions alloc] init];
    options.position = CLLocationCoordinate2DMake(-33.8683, 151.2086);
    options.title = @"Sydney";
    options.snippet = @"Australia";
    [mapView_ addMarkerWithOptions:options];
}

O resultado é um mapa como o abaixo, onde é possível adicionar pontos, traçados e até utilizar seu recurso de mapas 3D, mas isso é assunto para um novo post.

Google Maps iOS

UPDATE: Já está disponível a parte 2 do nosso tutorial. Confira!

Ao navegar neste site, você consente o uso de cookies nossos e de terceiros, que coletam informações anônimas e são essenciais para melhorar sua experiência em nosso site.