欢迎来真孝善网,为您提供真孝善正能量书籍故事!

苹果iOS系统:精准定位与高效地图服务体验

时间:11-08 民间故事 提交错误

其实苹果iOS系统:精准定位与高效地图服务体验的问题并不复杂,但是又很多的朋友都不太了解,因此呢,今天小编就来为大家分享苹果iOS系统:精准定位与高效地图服务体验的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

//第一步导入框架

@导入核心位置;

//协议和属性

@接口LocationViewController()

@property(非原子,强)CLLocationManager *locationManager;

@property(非原子,强)CLGeocoder *geocoder;

@结尾

@实现LocationViewController

- (void)viewDidLoad {

[超级viewDidLoad];

self.title=@"定位";

[自启动位置];

[自启动编码器];

//加载视图后进行任何其他设置。

}

//开始定位

- (void)开始位置

{

if ([CLLocationManager locationServicesEnabled] [CLLocationManagerauthorizationStatus] !=kCLAuthorizationStatusDenied) {

//设置代理

_locationManager=[[CLLocationManager 分配] init];

_locationManager.delegate=自我;

//设置定位精度

_locationManager.desiredAccuracy=kCLLocationAccuracyBest;

//按顺序定位多远

_locationManager.distanceFilter=100;

//ios8

if ([_locationManager respondsToSelector:@selector(requestWhenInUseAuthorization)]){

[_locationManager requestAlwaysAuthorization];

}

//启动

[_locationManager startUpdatingLocation];

}别的

{

UIAlertView *alertView=[[UIAlertView alloc] initWithTitle:@"提示!" message:@"需要开启定位服务,请进入设置-隐私,开启定位服务" delegate:self cancelButtonTitle:@"确定" otherButtonTitles: nil];

[警报视图显示];

}

}

#pragma mark - ******************CoreLocation Agent********************

#pragma mark - 跟踪定位代理方法,每次位置发生变化时都会执行(只要定位到对应位置)

//可以通过模拟器设置虚拟位置,否则模拟器中无法调用该方法

//定位成功

- (void)locationManager:(CLLocationManager *)经理didUpdateLocations:(NSArray *)位置

{

CLLocation *location=[locations lastObject];//获取最后一个位置

CLLocationCooperative2D坐标=location.coordinate;//位置坐标

NSLog(@"经度:%f, 纬度:%f", 坐标.经度, 坐标.纬度);

//如果不需要实时定位,使用后关闭定位服务

[_locationManager停止更新位置];

}

//定位失败

- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)错误

{

}

- (无效)startCoder

{

_geocoder=[[CLGeocoder alloc] init];

//编码通过地址获取经纬度

[self getCoordinateByAddress:@"北京"];

//逆向编码通过经纬度获取地址

[自我getAddressByLatitude:40.04经度:116.34];

}

#pragma mark - ******************编码****************

-(void)getCooperativeByAddress:(NSString *)地址{

//地理编码

//1.初始化编码对象

_geocoder=[[CLGeocoder alloc] init];

//2.系统块方法geocodeAddressString

[_geocoder geocodeAddressString:address finishHandler:^(NSArray *placemarks, NSError *error) {

//根据方法获取一组数据信息并获取最后一个对象

NSArray *marks=地标;

CLPlacemark *placeMark=[标记最后一个对象];

//通过placeMark获取当前Location对象

//通过location对象获取当前经纬度

CLLocation *位置=placeMark.location;

NSLog(@"%@",placeMark.country);

NSLog(@"%f,%f",位置.坐标.纬度,位置.坐标.经度);

}];

}

#pragma mark - ******************反向编码(根据坐标获取地名)****************

-(void)getAddressByLatitude:(CLLocationDegrees)纬度经度:(CLLocationDegrees)经度{

//反向地理编码

//初始化位置对象和地理编码器对象

CLLocation *location=[[CLLocation alloc] initWithLatitude:纬度经度:经度];

_geocoder=[[CLGeocoder alloc] init];

//调用geocoder的block方法reverseGeocodeLocation

[_geocoderverseGeocodeLocation:locationcompletionHandler:^(NSArray *地标,NSError *错误){

CLPlacemark *placeMark=[地标lastObject];

NSDictionary *dict=placeMark.addressDictionary;

NSLog(@"详细信息:%@",dict);

NSLog(@"City:%@",[dict objectForKey:@"City"]);

}];

}

- (void)didReceiveMemoryWarning {

[超级didReceiveMemoryWarning];

//处理掉所有可以重新创建的资源。

}

/*

#pragma mark - 导航

//在基于故事板的应用程序中,您通常需要在导航之前做一些准备工作

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

//使用[segue destinationViewController] 获取新的视图控制器。

//将选定的对象传递给新的视图控制器。

}

*/

@结尾

#import "MapkitViewController.h"

@导入MapKit;

@导入核心位置;

#import "MYAnnotation.h"

@接口MapkitViewController ()

@property(非原子,强)CLLocationManager *locationManager;

@property(非原子,强)MKMapView *mapView;

@结尾

@实现MapkitViewController

- (void)viewDidLoad {

[超级viewDidLoad];

self.title=@"地图";

[self initWithGUI];

//加载视图后进行任何其他设置。

}

#pragma mark - ******************初始化地图****************

- (无效) initWithGUI{

//初始化地图视图

_mapView=[[MKMapView alloc] initWithFrame:[UIScreen mainScreen].bounds];

[self.view addSubview:_mapView];

//设置代理

_mapView.delegate=自我;

//请求定位服务

_locationManager=[[CLLocationManager 分配] init];

if (![CLLocationManager locationServicesEnabled] || [CLLocationManagerauthorizationStatus] !=kCLAuthorizationStatusAuthorizedWhenInUse) {

[_locationManager requestAlwaysAuthorization];

}

//地图类型

_mapView.mapType=MKMapTypeStandard;

//用户位置跟踪(用户位置跟踪用于标记用户当前位置,此时会调用位置服务)

_mapView.userTrackingMode=MKUserTrackingModeFollow;

//添加引脚

[自行添加注释];

}

#pragma mark 添加pin

-(void)addAnnotation{

CLLocationCooperative2D 位置1=CLLocationCooperative2DMake(40.0304727852, 116.3434817061);

MYAnnotation *annotation1=[[MYAnnotation alloc]init];

注解1.title=@"测试";

annotation1.subtitle=@"蓝鸥";

注释1.坐标=位置1;

[_mapView addAnnotation:annotation1];

}

-(void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation

{

}

- (void)didReceiveMemoryWarning {

[超级didReceiveMemoryWarning];

//处理掉所有可以重新创建的资源。

}

/*

#pragma mark - 导航

//在基于故事板的应用程序中,您通常需要在导航之前做一些准备工作

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

//使用[segue destinationViewController] 获取新的视图控制器。

//将选定的对象传递给新的视图控制器。

}

END,本文到此结束,如果可以帮助到大家,还望关注本站哦!

用户评论

葵雨

终于可以不用麻烦地手动输入地址了。

    有12位网友表示赞同!

花花世界总是那么虚伪﹌

手机里自带导航真心方便!

    有17位网友表示赞同!

鹿先森,教魔方

苹果地图越来越厉害了,路线规划挺精准的。

    有6位网友表示赞同!

封心锁爱

定位功能很强大,知道你在哪里,也能引导你回家。

    有13位网友表示赞同!

从此我爱的人都像你

出门旅行,IOS的地图真是好用啊!

    有14位网友表示赞同!

北染陌人

现在找餐馆、购物的地方都离不开手机地图导航了.

    有12位网友表示赞同!

◆乱世梦红颜

苹果的定位技术一直都是领先的,这点不用怀疑吧。

    有12位网友表示赞同!

命里缺他

用手机自带的地图,省钱又方便!

    有10位网友表示赞同!

墨城烟柳

想知道附近有什么好玩的地方吗?就打开地图看一看!

    有16位网友表示赞同!

裸睡の鱼

苹果的导航功能越来越人性化了,体验越来越好。

    有14位网友表示赞同!

素衣青丝

真希望手机随时都能知道我在哪里,这样安全很多。

    有15位网友表示赞同!

志平

以前没意识到地图功能对生活的影响这么大。

    有13位网友表示赞同!

爱你心口难开

我的GPS信号一直很强,定位准確率很高。

    有8位网友表示赞同!

采姑娘的小蘑菇

苹果地图界面设计简洁直观,很容易上手操作。

    有16位网友表示赞同!

琴断朱弦

在陌生的城市里,手机地图就是最好的朋友了!

    有15位网友表示赞同!

等量代换

很多时候,手机地图比路标还要清晰明确。

    有8位网友表示赞同!

泪湿青衫

希望以后地图的功能能更新更丰富.

    有19位网友表示赞同!

打个酱油卖个萌

智能手机加上高精准的地图导航,出行体验大大提升。

    有7位网友表示赞同!

醉婉笙歌

使用IOS定位和地图功能,感觉生活效率提高了好多!

    有20位网友表示赞同!

一生荒唐

对于喜欢开车的我来说,苹果地图简直是必备神器。

    有6位网友表示赞同!

【苹果iOS系统:精准定位与高效地图服务体验】相关文章:

1.蛤蟆讨媳妇【哈尼族民间故事】

2.米颠拜石

3.王羲之临池学书

4.清代敢于创新的“浓墨宰相”——刘墉

5.“巧取豪夺”的由来--米芾逸事

6.荒唐洁癖 惜砚如身(米芾逸事)

7.拜石为兄--米芾逸事

8.郑板桥轶事十则

9.王献之被公主抢亲后的悲惨人生

10.史上真实张三丰:在棺材中竟神奇复活