简介:
最近花了些时间看了GoogleMap官方文件并集成到国际版app中,网上关于GoogleMap for iOS的讲解相对Android来说少一点,比较有帮助的几乎全是英文文档。下面是我开发过程中遇到的坑、以及采用的解决方法。
集成GoogleMap步骤:
-
1、Cocoapods导入pod 'GoogleMaps'
2、获取API密匙(前提是已经在GoogleMapSDK中创建好自己的应用)
3、配置plist文件搭建定位环境
4、调用代理方法实现需求
tips:pod 'GoogleMaps'、pod 'GooglePlaces'、pod 'GooglePlacePicker'这三个框架。(GoogleMaps:显示基本的定位功能;GooglePlaces:实现搜索功能,官方文档叫做地点自动完成;GooglePlacePicker:是实现获取某个POI的的详细信息,比如名字、详细地址、路线等)
景点(POI)包括公园、学校和政府大楼,等等。 另外,如果地图类型为 kGMSTypeNormal,商家景点默认将显示在地图上。 商家景点表示商店、餐馆和酒店之类的商家。
按照 Google Places API 中的定义,一个 POI 对应于一个地点。 例如,休闲公园为景点,但喷泉之类的地点通常不属于景点(除非它们具有国家或历史意义)。
配置plist文件:
打开plist的代码源文件,输入:

定位:
一、在AppDelegate 头文件 导入框架
#import
二、向您的 application:didFinishLaunchingWithOptions: 方法添加以下内容,使用我们刚才获取到的 API 密钥替代 YOUR_API_KEY:
[GMSServices provideAPIKey:@"YOUR_API_KEY"];
tips:这一步是在启动app的时候,GoogleMap准备代理工作。
三、在我们需要显示地图的控制器调用API方法
@property (nonatomic,strong) CLLocationManager *locationManager;//地图定位对象
@property (nonatomic,strong) GMSMapView *mapView;//地图
@property (nonatomic,strong) GMSMarker *marker;//大头针
@property (nonatomic,strong) GMSPlacesClient * placesClient;//可以获取某个地方的信息
//注册的代理
@interface TestMapViewController ()
tips:这是在控制器.h文件声明的属性。
(一)初始化一个地图对象
GMSMapView:是控制地图的外观类
GMSCameraPosition:是控制地图要显示的内容类
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-23.12960481 longitude:113.30887721 zoom:Level];
self.mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
self.mapView.delegate = self; //注册代理属性
self.mapView.settings.compassButton = YES;//显示指南针
[self.view addSubview:self.mapView];










