iOS谷歌地图集成

最近项目中用到了谷歌地图,主要用于谷歌地图显示,标记,地理位置反编码,地理位置补全搜索等等,这是谷歌地图的官方API :https://developers.google.com/maps/documentation/ios-sdk/intro
切记,这地方要获取如果要用到获取地理位置信息,反编码相关的信息就需要申请两个API秘钥
[GMSServices provideAPIKey:@"YOUR_API_KEY"];
[GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];
地图展示

#import 

@implementation YourViewController

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

- (void)loadView {
  // Create a GMSCameraPosition that tells the map to display the
  // coordinate -33.86,151.20 at zoom level 6.
  GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.86
                                                          longitude:151.20
                                                               zoom:6];
  GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
  mapView.myLocationEnabled = YES;
  self.view = mapView;

  // Creates a marker in the center of the map.
  GMSMarker *marker = [[GMSMarker alloc] init];
  marker.position = CLLocationCoordinate2DMake(-33.86, 151.20);
  marker.title = @"Sydney";
  marker.snippet = @"Australia";
  marker.map = mapView;
}

@end

添加标记

let marker = GMSMarker()
marker.position = CLLocationCoordinate2D(latitude: -33.86, longitude: 151.20)
marker.title = "Sydney"
marker.snippet = "Australia"
marker.map = mapView

获取地图中心点

- (void)mapView:(GMSMapView *)mapView didChangeCameraPosition:(GMSCameraPosition *)position;

反地理编码(在回调中拿到地理位置)

GMSGeocoder *geocoder = [[GMSGeocoder alloc]init];
 [geocoder reverseGeocodeCoordinate:coor completionHandler:^(GMSReverseGeocodeResponse * response, NSError * error) {
  
    }];

根据关键字进行搜索谷歌貌似没有提供相应的API,而是提供了一个封装好的控制器类,控制器也提供了相应的代理方法来获取一些点击事件

 GMSAutocompleteViewController *acController = [[GMSAutocompleteViewController alloc] init];
    acController.delegate = self;
    [self presentViewController:acController animated:YES completion:nil];

另外还有大天朝独有的火星坐标,无论是谷歌还是百度,高德在国内用的都是火星坐标,在国外都是统一坐标

你可能感兴趣的:(iOS谷歌地图集成)