ios --地图整理



iOS-UI知识点纵览

 

 

 

//知识点纵览

 

    //地图的使用

    //<1>显示地图

    // (1)库和头文件导入

    // (2)显示地图

    //<2>设置显示的位置和缩放

    //<3>添加大头针

    //<4>获取当前位置

   

    //其他功能

    //  知道两个经纬度, 如何计算这两个经纬度的距离

 

   

//知识点详解

 

       #import <MapKit/MapKit.h>

   

    //<1>显示地图

    //细节1: 直接设置则显示世界地图

    //细节2: 地图类型三种: 普通地图, 卫星地图, 混合地图

    mapView = [[MKMapView alloc] initWithFrame:self.view.bounds];

       //细节3: 需要遵守协议

    mapView.delegate = self;

    mapView.showsUserLocation = YES;

    //mapView.mapType = MKMapTypeStandard;

   

   

    //<2>设定显示的位置

    //定义经度纬度

    CLLocationCoordinate2D coordinate2d = CLLocationCoordinate2DMake(40.034827,116.311836);

    //设置缩放比例

    MKCoordinateSpan span = MKCoordinateSpanMake(0.1,0.1);

    //根据经纬度和缩放比例设置显示区域

    MKCoordinateRegion region = MKCoordinateRegionMake(coordinate2d,span);

    mapView.region = region;

    [self.view addSubview:mapView];

   

   

   

    //<3>显示大头针

       //需要定义一个遵守大头针协议的类

       //细节: 需遵守这个协议

       @interface CustomAnnotation : NSObject<MKAnnotation>

 

       -(id) initWithCoordinate:(CLLocationCoordinate2D)coords;

 

       @property (nonatomic, readonly) CLLocationCoordinate2Dcoordinate;

       @property (nonatomic, copy) NSString*title;

       @property (nonatomic, copy) NSString*subtitle;

       @end

 

       //类的实现

       @implementation CustomAnnotation

       -(id) initWithCoordinate:(CLLocationCoordinate2D)coords

       {

       if(self = [super init]) {

          _coordinate= coords;

       }

       returnself;

       }

       @end

 

 

       //设置大头针的位置

    CLLocationCoordinate2D coords = CLLocationCoordinate2DMake(40.034827,116.311836);

    CustomAnnotation *annotation = [[CustomAnnotationalloc] initWithCoordinate:coords];

    annotation.title = @"标题";

    annotation.subtitle = @"子标题";

    [mapView addAnnotation:annotation];

   

   

    //<4>获取当前位置

    locationManager = [[CLLocationManager alloc]init];

       //需要设置代理

    locationManager.delegate = self;

    [locationManager startUpdatingLocation];

 

 

//位置更新之后调用

- (void)locationManager:(CLLocationManager*)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation*)oldLocation {

   

    [locationManager stopUpdatingLocation];

   

    NSString *strLat = [NSString stringWithFormat:@"%.4f",newLocation.coordinate.latitude];

    NSString *strLng = [NSString stringWithFormat:@"%.4f",newLocation.coordinate.longitude];

    NSLog(@"Lat: %@  Lng: %@", strLat, strLng);

   

   

    //定位后直接移动到该区域

    CLLocationCoordinate2D coords = CLLocationCoordinate2DMake(newLocation.coordinate.latitude,newLocation.coordinate.longitude);

    float zoomLevel = 0.02;

    MKCoordinateRegion region = MKCoordinateRegionMake(coords,MKCoordinateSpanMake(zoomLevel,zoomLevel));

    [mapView setRegion:[mapView regionThatFits:region]animated:YES];

   

}

 

//位置更新错误之后执行

- (void)locationManager:(CLLocationManager*)manager didFailWithError:(NSError *)error {

    NSLog(@"locError:%@", error);

   

}

 

 

//其他功能

    //  知道两个经纬度, 如何计算这两个经纬度的距离

 

 

 

//计算两个点的距离

//  核心: 使用CLLocation类的对象的 distanceFromLocation:方法

+(double)distanceBetweenOrderBy:(double)lat1:(double)lat2 :(double)lng1 :(double)lng2{

    CLLocation* curLocation = [[CLLocation alloc]initWithLatitude:lat1 longitude:lng1];

    CLLocation* otherLocation = [[CLLocation alloc]initWithLatitude:lat2 longitude:lng2];

    double distance  = [curLocation distanceFromLocation:otherLocation];

    return distance;

}

基于bert实现关系三元组抽取python源码+数据集+项目说明.zip基于bert实现关系三元组抽取python源码+数据集+项目说明.zip基于bert实现关系三元组抽取python源码+数据集+项目说明.zip基于bert实现关系三元组抽取python源码+数据集+项目说明.zip基于bert实现关系三元组抽取python源码+数据集+项目说明.zip 个人大四的毕业设计、课程设计、作业、经导师指导并认可通过的高分设计项目,评审平均分达96.5分。主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 [资源说明] 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设或者课设、作业,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96.5分,放心下载使用! 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),供学习参考。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值