iOS 品苹果原生地图简单调用(3分钟完成)

CoreLocation.framework

import <CoreLocation/CoreLocation.h>

import <MapKit/MapKit.h>

@property (nonatomic,strong)CLLocationManager *locManager;

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

//申请用户授权

[self.locManager requestWhenInUseAuthorization];

[_locManager startUpdatingLocation];

[self.viewaddSubview:self.mapView];

5.///重写 getter

- (CLLocationManager *)locManager{



    if (!_locManager) {



        _locManager = [[CLLocationManager alloc]init];

        _locManager.activityType = CLActivityTypeFitness;  ///<步行导航

        _locManager.delegate=self;

        CLLocationDistancedistance=300;

        //给精度赋值

        _locManager.distanceFilter=distance;



    }



    return _locManager;

}

- (MKMapView*)mapView{



    if(!_mapView) {



        self.mapView= [[MKMapViewalloc]initWithFrame:self.view.frame];

        self.mapView.delegate=self;

        //设置地图类型

        _mapView.mapType = MKMapTypeStandard;  //平面地图

    }



    return _mapView;

}



6.

- (void)locationManager:(CLLocationManager*)manager didUpdateLocations:(NSArray *)locations{



    //得到当前位置

    CLLocation*currentLocation = locations.lastObject;



    //位置    ,此对象已经采用了 MK 协议

    MKPointAnnotation *point = [[MKPointAnnotation alloc]init];

    point.coordinate= currentLocation.coordinate;



    point.title=@"当前位置";

    //地址解析

    CLGeocoder*gecoder = [[CLGeocoderalloc]init];



    [gecoderreverseGeocodeLocation:currentLocationcompletionHandler:^(NSArray *_Nullableplacemarks,NSError*_Nullableerror) {



        CLPlacemark*place = placemarks.lastObject;



        point.subtitle= place.name;

    }];



    //添加大头针

    [_mapViewaddAnnotation:point];



    //需要将地图的显示区域变小

    MKCoordinateRegionregion =MKCoordinateRegionMakeWithDistance(currentLocation.coordinate,800,800);

    [_mapView setRegion:region animated:YES];



}

//设置锚点样式

- (MKAnnotationView*)mapView:(MKMapView*)mapView viewForAnnotation:(id)annotation{



    MKPinAnnotationView *pin = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:@"pin"];



    if(!pin) {



        pin = [[MKPinAnnotationView alloc]initWithAnnotation:annotation reuseIdentifier:@"pin"];

    }



    pin.pinTintColor = [MKPinAnnotationView purplePinColor];

    pin.animatesDrop = YES;

    pin.canShowCallout = YES;



    returnpin;



}
11.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容