美文网首页
集成谷歌地图

集成谷歌地图

作者: ly_chee_ | 来源:发表于2021-01-08 15:24 被阅读0次

一、pod下载谷歌地图SDK

pod  'GoogleMaps'

  pod  'GooglePlaces'

二、初始化谷歌地图

代理   <GMSMapViewDelegate, GMSAutocompleteViewControllerDelegate>

@property (nonatomic,strong) CLLocationManager *locationManager;//地图定位对象

@property (nonatomic,strong) GMSMapView *mapView;//地图

@property (nonatomic,strong) GMSMarker *marker;//大头针

//初始化地图

GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:[_latitude floatValue] longitude:[_longitude floatValue]  zoom:12];

    self.mapView= [GMSMapView mapWithFrame:CGRectZero camera:camera];

    self.mapView.delegate = self; //注册代理属性

    self.mapView.settings.compassButton = YES;//显示指南针

    self.mapView.frame =self.view.frame;

    [self.view addSubview:self.mapView];

    if (self.locationManager == nil) {

        self.locationManager= [[CLLocationManager alloc]init];

    }

    self.locationManager.delegate = self;

    [self.locationManager requestAlwaysAuthorization];//授权方式,如果在后台也需要定位,那就选择 requestAlwaysAuthorization。

    self.locationManager.desiredAccuracy = kCLLocationAccuracyBest;//最精确的定位

    self.locationManager.distanceFilter = kCLDistanceFilterNone; // 默认是kCLDistanceFilterNone,也可以设置其他值,表示用户移动的距离小于该范围内就不会接收到通知

    [self.locationManager startUpdatingLocation];

#pragma mark - GMSMapViewDelegate

//移动地图位置,重新定位

- (void)mapView:(GMSMapView*)mapViewdidTapAtCoordinate:(CLLocationCoordinate2D)coordinate{

    [self showLocation:coordinate];

}

//根据经纬度显示地图位置和大头针

-(void)showLocation:(CLLocationCoordinate2D)coordinate{

    __weak typeof(self) weakSelf =self;

    _currentCurCoordinate2D = coordinate;

    //地图显示在经纬度位置

       GMSCameraPosition*camera = [GMSCameraPosition cameraWithLatitude:coordinate.latitude longitude:coordinate.longitude zoom:14];

       self.mapView.camera= camera;

       //大头针显示经纬度位置  点击一次先清除上一次的大头针

       [self.marker.mapclear];

       self.marker.map=nil;

       self.marker= [GMSMarkermarkerWithPosition:coordinate];

       self.marker.map = self.mapView;

三、搜索地址

GMSAutocompleteViewController *acController = [[GMSAutocompleteViewController alloc] init];

    acController.delegate=self;

    [selfpresentViewController:acController animated:YES completion:nil];

#pragma mark - GMSAutocompleteViewControllerDelegate

// 用户选择搜索中的某个地址后返回的结果回调方法

- (void)viewController:(GMSAutocompleteViewController *)viewController

didAutocompleteWithPlace:(GMSPlace *)place {

[self dismissViewControllerAnimated:YES completion:nil];

[self.marker.map clear];

 self.marker.map=nil;

    // 通过location 或得到当前位置的经纬度

    GMSCameraPosition*camera = [GMSCameraPosition cameraWithLatitude:place.coordinate.latitude longitude:place.coordinate.longitude zoom:14];

    CLLocationCoordinate2D position2D =CLLocationCoordinate2DMake (place.coordinate.latitude, place.coordinate.longitude);

 self.marker= [GMSMarker markerWithPosition:position2D];

 self.mapView.camera= camera;

 self.marker.map = self.mapView;

    _currentCurCoordinate2D = position2D;

 self.addressLb.text= [NSString stringWithFormat:@"%@",place.name];

}

相关文章

  • 集成谷歌地图

    一、pod下载谷歌地图SDK pod 'GoogleMaps' pod 'GooglePlaces' 二、初始化谷...

  • 集成谷歌地图不显示的问题

    最近做了一个项目,要用到谷歌地图,这也是第一次用谷歌地图,当按照文档集成以后,地图就是不显示。最后鼓捣半天,终于出...

  • Google Maps SDK for iOS 谷歌地图使用总结

    由于公司项目的需求,我们的项目需要集成谷歌和百度两套地图,国内用百度国外用谷歌,在这里记录一下谷歌地图的常用方法。...

  • react项目引入天地图

    概述 目前大部分地图服务使用的都是百度、高德、谷歌,react集成这些服务都有相关介绍;但对于天地图的集成相对资料...

  • Android集成谷歌地图总结

    1、前言: Android应用集成谷歌地图使用,有两种方式: 以fragment的形式,在创建项目的时候选择“Go...

  • 谷歌地图

    注册应用获取key 集成SDK 在VC中添加地图视图:GMSMapView 注意:在谷歌地图中使用的坐标系区分地域...

  • Vue集成腾讯地图或谷歌地图

    Vue+ts集成腾讯地图 背景:使用腾讯定位和展示坐标地点 ps:由于使用vue+ts开发的项目嵌入到微信公众号选...

  • iOS谷歌地图集成

    最近项目中用到了谷歌地图,主要用于谷歌地图显示,标记,地理位置反编码,地理位置补全搜索等等,这是谷歌地图的官方AP...

  • iOS谷歌地图集成

    写在前面 :请求谷歌API,您可以通过请求 http://maps.googleapis.com/(对于中国用户,...

  • ios谷歌地图集成

    1.开启api https://console.cloud.google.com/google/maps-apis...

网友评论

      本文标题:集成谷歌地图

      本文链接:https://www.haomeiwen.com/subject/ilevoktx.html