ios --地图整理
来源:互联网 发布:知乎收藏夹不见了 编辑:程序博客网 时间:2024/05/08 12:11
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;
}
- ios --地图整理
- iOS个人整理40-定位和地图
- iOS高德地图API查询及网址整理
- IOS 地图
- ios地图
- iOS 地图
- iOS 地图
- iOS地图
- 百度地图1 整理
- 地图文件说明整理
- 百度地图相关整理
- iOS 发送的位置能调用本机地图导航资料整理
- iOS - iOS 地图开发
- IOS 整理
- ArcMap地图资源链接整理
- 地图构建算法分析整理
- 微信小程序map地图整理
- 关于百度地图的整理
- 11gR2 grid安装执行root.sh报错
- Question
- 剑指offer面试题34
- 用C语言解决迷宫问题
- 如何定位死循环或高CPU使用率(linux)
- ios --地图整理
- Day04
- leetcode Generate Parentheses
- 黑马程序员_银行业务调度系统
- 多个源文件进行编译,即 makefile 的编写
- 在建设网站时二级目录与二级域名的选择
- drmtdum对付美带头人和他渡口
- iOS4 加速度计&陀螺仪(转)
- JavaScript-2.2 document.write 输出到页面的内容