欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

IOS学习:在IOS开发中使用GoogleMaps SDK

程序员文章站 2022-05-28 14:36:16
  一、申请一个免费的api key 要使用googlemaps sdk,必须要为你的应用申请一个api key,api key可以让你监视你的应用调用api的情...

 


一、申请一个免费的api key
要使用googlemaps sdk,必须要为你的应用申请一个api key,api key可以让你监视你的应用调用api的情况。api key是免费的,你可以在任何调用map api的应用中使用,你可以通过在google apis console上提供你应用的包标识(bundle identifier)来获得一个api key,有了api key后,你要把它加到appdelegate中,下面会讲到。

 


获取api key的具体步骤:

1、在google apis console上创建一个api工程

2、在打开的api工程页面中选中左边的services面板,将里面的google maps sdk for ios项的开关打开

3、再选择api access面板,点击create new ios key

 

4、输入一个或多个bundle identifier(每行一个)

5、点击create创建

6、在页面中找到key for ios apps (with bundle identifiers),可以复制里面的api key。api key创建完成。。。。

二、在项目中添加google maps sdk for ios
google
 maps sdk for ios是一个包含一个资源包的静态框架,下面是添加框架和配置工程的具体步骤:

1、创建一个新工程,不要勾选storyboard,一定要用arc

2、将下载好的googlemaps.framework包拖到工程的frameworks文件夹下,记得一定要选中copy
 items into destination group's folder.

3、在你的工程中右击添加好的googlemaps.framework,选择在文件夹中打开(show
 in finder)

4、将resources文件夹下的googlemaps.bundle拖到工程中,最好是放到frameworks文件夹下,导入的时候不要选copy
 items into destination group's folder

5、选中工程,选中应用的target

6、打开build
 phases页面,在link binary with libraries分类中,加入以下frameworks:

avfoundation.framework

coredata.framework

corelocation.framework

coretext.framework

glkit.framework

imageio.framework

libc++.dylib

libicucore.dylib

libz.dylib

opengles.framework

quartzcore.framework

systemconfiguration.framework

7、选中工程中的build
 settings页面

将architectures里面的默认值改为armv7

在other
 linker flags中添加-objc,如果这些选项不可见,可以在最上面的过滤中选中all

8、最后,把api
 key添加到appdelegate中

导入包:#import
 <googlemaps/googlemaps.h>

在.m文件的didfinishlaunchingwithoptions:方法中添加:


[cpp]
<span style="white-space: pre"> </span>[gmsservices provideapikey:@"your_api_key"]; 

 [gmsservices provideapikey:@"your_api_key"];
三、在viewcontroller中添加一个地图


[cpp]
- (void)viewdidload 

    [super viewdidload]; 
    // do any additional setup after loading the view.  
    // 创建一个gmscameraposition,告诉map在指定的zoom level下显示指定的点  
    gmscameraposition *camera = [gmscameraposition camerawithlatitude:-22.86 longitude:151.20 zoom:6]; 
    mapview_ = [gmsmapview mapwithframe:cgrectmake(0, 0, self.view.frame.size.width, self.view.frame.size.height) camera:camera]; 
    [self.view addsubview:mapview_]; 
     
    // 在map中间做一个标记  
    gmsmarker *marker = [[gmsmarker alloc] init]; 
    marker.position = cllocationcoordinate2dmake(-22.86, 151.20); 
    marker.title = @"sydney"; 
    marker.snippet = @"australia"; 
    marker.map = mapview_;