IOS学习之十二:Core Location定位和MapKit视图使用

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 17:08 点击:

iPhone中的基于位置服务开发的应用其实挺多的。
但是那种能显示密集型周边的信息或者说是资料数据的应用,
还真不知道是通过的是类似于webService还是内置类似于地图导航功能的数据包。
但是对于简单如何上手这方面的开始,我们还是要接触下的。

总的来说,我们这类应用的会涉及到核心的两块内容。
1.位置定位(最简单就是当前应用所有者所持设备的地理位置),主要用到的API类 CLLicationManager。
在其他比如(Android位置类开发),我们知道实现定位的方式有gprs,网络,蜂窝式,基站等。并且是可以通过自己选的。
ios中就却直接hide或者说是简单化了这种定位方式。
只需我们设置一些参数后,系统自动会做出最切当的反应。

2.位置确定了,那么下一步就是显示给用户了。显示的视图,这边用到API类MapKit。
比如我们定位了一个经度 30.002,纬度为199.232.最简单的,我们直接在提供的视图上定位到这个点。
但是我们知道,更多的时候,我们希望显示这个点的更多数据信息(比如街道,XXX路),更甚至是周边的。
这个就需要庞大的数据包支持了,因为我没做过这方面的,只是简单知道可以通过google公开的一个web端接口获取数据。

一:首先简单介绍下CLLicationManager类的常用
开启定位服务:
[cpp] 
self.locationManager = [[CLLocationManager alloc]init]; 
    if (![CLLocationManager locationServicesEnabled]) { 
        NSLog(@"定位不可用~"); 
         
    }else { 
        //设置代理 
        [self.locationManager setDelegate:self]; 
        //设置精准度, 
        [self.locationManager setDesiredAccuracy:kCLLocationAccuracyBest]; 
        [self.locationManager startUpdatingLocation]; 
    } 
初始化了位置管理器,判断设备的定位功能是否开启开启的话设置代理,精度等参数后,开始服务。

实现代理类方法,获取返回参数:
[cpp] 
#pragma mark- 
#pragma locationManagerDelegate methods 
- (void)locationManager:(CLLocationManager *)manager 
    didUpdateToLocation:(CLLocation *)newLocation 
           fromLocation:(CLLocation *)oldLocation 

    self.coordinate = [newLocation coordinate]; 
    self.altitude = [newLocation altitude]; 
    NSString *lat = [[NSString alloc] initWithFormat:@"%f",self.coordinate.latitude]; 
    NSString *lon = [[NSString alloc] initWithFormat:@"%f",self.coordinate.longitude]; 
    NSString *alt = [[NSString alloc] initWithFormat:@"%f",self.altitude]; 
 
    //更新定位信息方法 
    NSLog(@"delegate %f,%f",self.coordinate.latitude,self.coordinate.longitude); 
    self.latitudeText.text = lat; 
    self.longitudeText.text = lon; 
    self.altitudeText.text = alt; 
     
    [lat release]; 
    [lon release]; 
    [alt release]; 

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

    //定位失败 
     

返回的一个CLLocation 类型包含常用的几种数据,经纬度,运动速率,海拔,方向等,我们可以按需要来获取。

二:用MapKit来显示
第一步就是添加一个mapView视图
然后也是很简单的几行代码即显示位置点。
对于将经纬度转化成友善的地理信息,首先我们来看个最传统的例子,既我们将获取的经纬度封装成一个网络请求到goo

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • Lexical or Preprocessor Issue 'xxx.h
      • ios学习笔记(二)xcode 4.3.2下实现基本交互
      • ios版本的helloworld
      • iphone(object-c) 内存管理(3) 有效的内存管理 前半部分
      • ios学习笔记(一)xcode 4.3.2下创建第一个ios项目
      • IOS类似iphone通讯录TableView的完整demo【附源码】
      • UITableView一些方法
      • [iPhone中级]iPhone团购信息客户端的开发 (二)
      • iphone(object-c)内存管理(1)
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1