热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

iPhone开发之地图定位(CoreLocation和Mapkit框架)简易编程

下面介绍的时地图定位和位置反编码 // //  AppDelegate.h //  LocationDemo // #import #import #import @interfac

下面介绍的时地图定位和位置反编码

//

//  AppDelegate.h

//  LocationDemo

//


#import

#import

#import


&#64;interface AppDelegate : UIResponder<UIApplicationDelegate,CLLocationManagerDelegate,MKReverseGeocoderDelegate>


&#64;property (strong, nonatomic) UIWindow *window;


&#64;end


 

 

//

//  AppDelegate.m

//  LocationDemo

//


#import "AppDelegate.h"


&#64;implementation AppDelegate


- (void)dealloc

{

    [_window release];

    [super dealloc];

}


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

    self.window &#61; [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];

    // Override point for customization after application launch.

    self.window.backgroundColor &#61; [UIColor whiteColor];

    [self.window makeKeyAndVisible];

    

    CLLocationManager *locationManager &#61; [[CLLocationManager alloc] init];

    //设置过滤信息

//    [locationManager setDistanceFilter:<#(CLLocationDistance)#>]

    //设置定位的精度

    [locationManager setDesiredAccuracy:kCLLocationAccuracyNearestTenMeters];

    

    locationManager.delegate &#61; self;

    

    //开始实时定位

    [locationManager startUpdatingLocation];

    

    return YES;

}


//实时定位调用的方法, 6.0过期的方法

#pragma mark - CLLocationManager delegate

- (void)locationManager:(CLLocationManager *)manager

didUpdateToLocation:(CLLocation *)newLocation

  fromLocation:(CLLocation *)oldLocation {

    

    CLLocationCoordinate2D coordinate &#61; newLocation.coordinate;

    NSLog(&#64;"经度&#xff1a;%f,纬度&#xff1a;%f",coordinate.longitude,coordinate.latitude);

    

    //停止实时定位

    [manager stopUpdatingLocation];

    

    //计算两个位置的距离

//    float distance &#61; [newLocation distanceFromLocation:oldLocation];

//    NSLog(&#64;"%f",distance);

    

    

    //------------------位置反编码---5.0之后使用-----------------

    CLGeocoder *geocoder &#61; [[CLGeocoder alloc] init];

    [geocoder reverseGeocodeLocation:newLocation

                   completionHandler:^(NSArray *placemarks, NSError *error){

        

                       for (CLPlacemark *place in placemarks) {

                           NSLog(&#64;"name,%&#64;",place.name);                       // 位置名

                           NSLog(&#64;"thoroughfare,%&#64;",place.thoroughfare);       // 街道

                           NSLog(&#64;"subThoroughfare,%&#64;",place.subThoroughfare); // 子街道

                           NSLog(&#64;"locality,%&#64;",place.locality);               // 

                           NSLog(&#64;"subLocality,%&#64;",place.subLocality);         // 

                           NSLog(&#64;"country,%&#64;",place.country);                 // 国家                           

                       }

                       

    }];

    

    //----------------------位置反编码--5.0之前的使用-----------------

    MKReverseGeocoder *mkgeocoder &#61; [[MKReverseGeocoder alloc] initWithCoordinate:coordinate];

    mkgeocoder.delegate &#61; self;

    [mkgeocoder start];

    

}


//6.0之后新增的位置调用方法

//- (void)locationManager:(CLLocationManager *)manager

// didUpdateLocations:(NSArray *)locations {

//    for (CLLocation *location in locations) {

//        NSLog(&#64;"%&#64;",location);

//    }

//    

//    //停止实时定位

//    [manager stopUpdatingLocation];

//

//}


#pragma mark - MKReverseGeocoder delegate

- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder

       didFindPlacemark:(MKPlacemark *)place {


       NSLog(&#64;"---name,%&#64;",place.name);                       // 位置名

       NSLog(&#64;"---thoroughfare,%&#64;",place.thoroughfare);       // 街道

       NSLog(&#64;"---subThoroughfare,%&#64;",place.subThoroughfare); // 子街道

       NSLog(&#64;"---locality,%&#64;",place.locality);               // 

       NSLog(&#64;"---subLocality,%&#64;",place.subLocality);         // 

       NSLog(&#64;"---country,%&#64;",place.country);                 // 国家

    

}


&#64;end


原文地址&#xff1a;http://blog.sina.com.cn/s/blog_aeb8e4450101avl5.html


推荐阅读
  • 本文介绍了如何使用 Python 的 Pyglet 库加载并显示图像。Pyglet 是一个用于开发图形用户界面应用的强大工具,特别适用于游戏和多媒体项目。 ... [详细]
  • Hadoop MapReduce 实战案例:手机流量使用统计分析
    本文通过一个具体的Hadoop MapReduce案例,详细介绍了如何利用MapReduce框架来统计和分析手机用户的流量使用情况,包括上行和下行流量的计算以及总流量的汇总。 ... [详细]
  • 尽管在WPF中工作了一段时间,但在菜单控件的样式设置上遇到了一些基础问题,特别是关于如何正确配置前景色和背景色。 ... [详细]
  • 在iOS6之后,不再使用谷歌地图了,而是使用苹果自己的地图,但是API编程接口没有太大的变化。开发人员不需要再学习很多新东西就能开发地图应用,这是负责任的做法。因此本节介绍的内容也同样适用于iOS5 ... [详细]
  • IOS9之当前位置定位
    2019独角兽企业重金招聘Python工程师标准#import*.h文件中导入以下两个框架*#import ... [详细]
  • 本文介绍了在Visual C++环境中通过编程实现鼠标移动及点击的具体方法,包括获取鼠标当前位置、移动鼠标至指定位置并执行点击等操作。 ... [详细]
  • 本文介绍了如何使用Java编程语言实现凯撒密码的加密与解密功能。凯撒密码是一种替换式密码,通过将字母表中的每个字母向前或向后移动固定数量的位置来实现加密。 ... [详细]
  • 本文详细介绍了如何在Java Swing中使用`JButton.registerKeyboardAction()`方法来为按钮设置键盘快捷键,并提供了多个实用的代码示例。 ... [详细]
  • 本文详细介绍了如何在PyQt5中创建简易对话框,包括对话框的基本结构、布局管理以及源代码实现。通过实例代码,展示了如何设置窗口部件、布局方式及对话框的基本操作。 ... [详细]
  • 本文探讨了如何使用Scrapy框架构建高效的数据采集系统,以及如何通过异步处理技术提升数据存储的效率。同时,文章还介绍了针对不同网站采用的不同采集策略。 ... [详细]
  • 使用Python构建网页版图像编辑器
    本文详细介绍了一款基于Python开发的网页版图像编辑工具,具备多种图像处理功能,如黑白转换、铅笔素描效果等。 ... [详细]
  • 视觉Transformer综述
    本文综述了视觉Transformer在计算机视觉领域的应用,从原始Transformer出发,详细介绍了其在图像分类、目标检测和图像分割等任务中的最新进展。文章不仅涵盖了基础的Transformer架构,还深入探讨了各类增强版Transformer模型的设计思路和技术细节。 ... [详细]
  • 本文探讨了Python类型注解使用率低下的原因,主要归结于历史背景和投资回报率(ROI)的考量。文章不仅分析了类型注解的实际效用,还回顾了Python类型注解的发展历程。 ... [详细]
  • 本文深入探讨了WPF框架下的数据验证机制,包括内置验证规则的使用、自定义验证规则的实现方法、错误信息的有效展示策略以及验证时机的选择,旨在帮助开发者构建更加健壮和用户友好的应用程序。 ... [详细]
  • 添加#import头文件倒入mapkit.framework库mapkit.framework是属于ui,可以在故事版上添加mkmap ... [详细]
author-avatar
董可芳妍_731
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有