一、申請一個免費的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_;
}