热门标签 | 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


推荐阅读
  • 解决Only fullscreen opaque activities can request orientation错误的方法
    本文介绍了在使用PictureSelectorLight第三方框架时遇到的Only fullscreen opaque activities can request orientation错误,并提供了一种有效的解决方案。 ... [详细]
  • 在ElasticStack日志监控系统中,Logstash编码插件自5.0版本起进行了重大改进。插件被独立拆分为gem包,每个插件可以单独进行更新和维护,无需依赖Logstash的整体升级。这不仅提高了系统的灵活性和可维护性,还简化了插件的管理和部署过程。本文将详细介绍这些编码插件的功能、配置方法,并通过实际生产环境中的应用案例,展示其在日志处理和监控中的高效性和可靠性。 ... [详细]
  • QT框架中事件循环机制及事件分发类详解
    在QT框架中,QCoreApplication类作为事件循环的核心组件,为应用程序提供了基础的事件处理机制。该类继承自QObject,负责管理和调度各种事件,确保程序能够响应用户操作和其他系统事件。通过事件循环,QCoreApplication实现了高效的事件分发和处理,使得应用程序能够保持流畅的运行状态。此外,QCoreApplication还提供了多种方法和信号槽机制,方便开发者进行事件的定制和扩展。 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 三角测量计算三维坐标的代码_双目三维重建——层次化重建思考
    双目三维重建——层次化重建思考FesianXu2020.7.22atANTFINANCIALintern前言本文是笔者阅读[1]第10章内容的笔记,本文从宏观的角度阐 ... [详细]
  • com.sun.javadoc.PackageDoc.exceptions()方法的使用及代码示例 ... [详细]
  • 单片微机原理P3:80C51外部拓展系统
      外部拓展其实是个相对来说很好玩的章节,可以真正开始用单片机写程序了,比较重要的是外部存储器拓展,81C55拓展,矩阵键盘,动态显示,DAC和ADC。0.IO接口电路概念与存 ... [详细]
  • 最详尽的4K技术科普
    什么是4K?4K是一个分辨率的范畴,即40962160的像素分辨率,一般用于专业设备居多,目前家庭用的设备,如 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • JComponentJLabel的setBorder前言用例2205262241前言setBorder(Border边框)实现自JComponentjava.awt.Insets ... [详细]
  • 如何使用 `org.apache.tomcat.websocket.server.WsServerContainer.findMapping()` 方法及其代码示例解析 ... [详细]
  • Android 构建基础流程详解
    Android 构建基础流程详解 ... [详细]
  • 本文详细解析了使用C++实现的键盘输入记录程序的源代码,该程序在Windows应用程序开发中具有很高的实用价值。键盘记录功能不仅在远程控制软件中广泛应用,还为开发者提供了强大的调试和监控工具。通过具体实例,本文深入探讨了C++键盘记录程序的设计与实现,适合需要相关技术的开发者参考。 ... [详细]
  • 在探讨Hibernate框架的高级特性时,缓存机制和懒加载策略是提升数据操作效率的关键要素。缓存策略能够显著减少数据库访问次数,从而提高应用性能,特别是在处理频繁访问的数据时。Hibernate提供了多层次的缓存支持,包括一级缓存和二级缓存,以满足不同场景下的需求。懒加载策略则通过按需加载关联对象,进一步优化了资源利用和响应时间。本文将深入分析这些机制的实现原理及其最佳实践。 ... [详细]
  • iOS开发之CoreLocation(GPS定位)
    1、概述在iOS开发中,要想加入地图和定位功能这2大功能,必须基于2个框架进行开发(1)MapKit:用于地图 ... [详细]
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社区 版权所有