IPhone开发时使用MKMapView在显示地图的同时获取用户当前坐标的方法

IPhone开发时使用MKMapView在显示地图的同时获取用户当前坐标的方法

 

 

最近在公司有一个项目需要在IPhone手机上显示地图并获取到用户当前的位置信息,从网上参考了很多大侠的文章。发现均是同时使用MKMapView和CLLocationManager两个类才实现的。其实只需要使用MKMapView一个类就可以同时实现显示地图并获取到坐标的功能。

 

按我目前的理解:

 

      MKMapView应该是使用在需要显示地图的程序中。

 

      CLLocationManager应该是使用在不需要显示地图但需要获取用户坐标信息的程序中。

 

另外,从网上看到过一位同志说MKMapView获取到的坐标精度要高于CLLocationManager获取到的坐标精度,因为没有测试,不敢妄下结论。

 

程序的核心部分,其实就是使用了MKMapView的didUpdateUserLocation事件,有关MKMapView的使用方法网上有一大堆,请自行搜索参考。以下是相关代码,已经在XCode4.3 IOS5.0的手机上测试通过,供大家参考。

 

程序头文件:

 

 

#import <CoreLocation/CoreLocation.h>

#import <MapKit/MapKit.h>

 

 

@interface UnitMapViewController : UIViewController<MKMapViewDelegate>

{

    MKMapView *map;

}

 

@end

 

程序源文件:

 

 

#import "UnitMapViewController.h"

#import "UnitViewController.h"

 

@interface UnitMapViewController ()

 

@end

 

@implementation UnitMapViewController

 

NSString *userLatitude;

NSString *userlongitude;

 

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil

{

    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];

    if (self) {

        // Custom initialization

    }

    return self;

}

 

- (void)viewDidLoad

{

 

    [super viewDidLoad];

    userLatitude=@"";

    userlongitude=@"";

 

 

    map=[[MKMapView alloc] initWithFrame:[self.view bounds]];

    map.mapType=MKMapTypeStandard;

    map.delegate=self;

    map.showsUserLocation=YES;

    

 

    [self.view addSubview:map];

 

 

}

 

- (void)viewDidUnload

{

    [super viewDidUnload];

    // Release any retained subviews of the main view.

}

 

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation

{

    return (interfaceOrientation == UIInterfaceOrientationPortrait);

}

 

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

    NSString *lat=[[NSString alloc] initWithFormat:@"%f",userLocation.coordinate.latitude];

    NSString *lng=[[NSString alloc] initWithFormat:@"%f",userLocation.coordinate.longitude];

 

    userLatitude=lat;

    userlongitude=lng;

 

    MKCoordinateSpan span;

    MKCoordinateRegion region;

 

    span.latitudeDelta=0.010;

    span.longitudeDelta=0.010;

    region.span=span;

    region.center=[userLocation coordinate];

 

 

    [map setRegion:[map regionThatFits:region] animated:YES];

 

}

@end

 

 

iOS各种地图定位 一、这里我测试了3获取经纬度的方法,均为真机测试,连接的是公司的WiFi; 1、CoreLocation提供的CLLocationManager,具体怎么获取位置这里就不讨论了; - (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations __OSX_AVAILA 阅读详情

相关推荐

MKMapView获取自身当前位置并将地图显示范围控制在自身位置周围

1,框架中添加CoreLocation.framework 2,引入头文件#import 3

NOHACKCC的专栏 3107

MKMapView长按识别位置经纬度信息

1、添加长按手势 - (MKMapView *)mapView { if (_mapView == nil) { _mapView = [[MKMapView alloc] init]; } return _mapView; } // 添加长按手势 UILongPressGestureRecognizer *longPressRecognizer = [[...

番薯大佬的专栏 543

MKMapView使用定位自己当前的位置

IOS 地图定位,标注地图获取经纬度: 一、使用MKMapView 定位 二、在地图上通过经纬度标注(大头针) // //  ViewController.m //  MKMapView使用定位自己当前的位置 // //  Created by 爱敲代码的小明 on 15/12/26. //  Copyright © 2015年 爱敲代码的小明. All

CoCo12456的博客 6678

ios中点击地图控件MKMapView的某点获取该点的经纬度

ios开发中常常会用到地图控件MKMapView,可以用如下方法在点击MKMapView中某点的获取改点的经纬度: 假如声明了一个MKMapView为myMapView 1、在地图中添加一个手势,这个手势是一个点击动作,点击会调用tapPress这个方法 UITapG

volcan1987的专栏 1万+

IOS 地图定位,标记位置,获取经纬度,MKMapView使用

IOS地图定位,标注地图获取经纬度: 一、使用MKMapView 定位 二、在地图上通过经纬度标注(大头针) 最终效果图: 打开应用程序会自动定位并且放大到自己的位置,然后在我的位置上显示自己的经纬度,通过填写经纬度可以放置大头针标注。 一、获取自身的位置和经纬度 1、新建项目,将ios的提供位置服务和地图服务的库加入到项目中 点项目名->Buil

SwingLife的专栏 4万+

iphone获取 用户坐标详细信息 MKPlacemark userLocation MKMapView

- (IBAction)reverseGeocodeCurrentLocation {     self.reverseGeocoder =         [[[MKReverseGeocoderalloc]initWithCoordinate:mapView.userLocation.location.coordinate]autorelease];     rever

Wilson Tang的技术博客 4195

iphone获取 用户坐标详细信息 MKPlacemark userLocation MKMapView

- (IBAction)reverseGeocodeCurrentLocation {     self.reverseGeocoder =         [[[MKReverseGeocoderalloc]initWithCoordinate:mapView.userLocation.location.coordinate]autorelease];     reverseGeocod

hufeng825的专栏 1731

iphone:GPS位置和地图开发(CLLocation and MKMapView)

From:http://www.iblue.cc/2011/05/gps%E4%BD%8D%E7%BD%AE%E5%92%8C%E5%9C%B0%E5%9B%BE%E5%BC%80%E5%8F%91/     有了iPhone,意味着我们不会再迷路了。有了iPhone内建的全球定位系统(Global Positioning System,GPS)硬件,以及一些创新的位置和地图软件,iPhon...

移动开发 274

iphone程序内调用谷歌地图

使用CLLocationManager类,MKMapView。并且实现 //初始化CLLocationManager,CLLocationManager获得当前地理坐标 locmanager=[[CLLocationManager alloc]init]; [locmanager setDelegate:self];  //设置精确度 [locmanagersetDesiredAcc

计算机学习园 3348

iphone:GPS位置和地图开发

8.2   Map Kit Map Kit是基于Google Maps引擎的地图框架,允许我们能够向应用程序中添加交互式的地图地图可以滚动或缩放到地球上的任何区域,并且可以有标签或注释,以便向地图添加需要额外显示的信息。 向应用程序中添加地图: 1)创建一个新的基于视图的应用程序,将其保存为MappingExample。 2)在Groups & Files面板

linlindie的专栏 1123

iphone MKMapView

一.基本知识 目前主流的智能手机大部分都支持GoogleMap地图程序,而手机上的地图程序确实能给我们的出行带来很大的方便。在iPhone中利用MapKit框架可以很方便的显示Google地图,并且可以在地图上添加标注。 二.具体介绍 1.MKMapView显示 (1)创建MKMapView CGRect rect = CGRectMake(0, 20, 320

210

iphone map(地图)的实现

使用GPS定位系统,可以精确地定位当前所在的地理位置,但由于GPS接收机需要对准天空才能工作,因此在室内环境基本无用。 另一个找到自己所在位置的有效方法使用手机基站,手机开机,它会与周围的基站保持联系,如果你知道这些基站的身份,就可以使用各种数据库(包含基站的身份和它们的确切地理位置)计算出手机的物理位置。基站不需要卫星,和GPS不同,它对室内环境一样管用。但它没有GPS那样精确,它的精度

iphone开发收集盒子 928

iphone获取GPS的数据信息并定位

<br />如今,配备GPS功能的移动设备越来越普遍了,使用GPS定位系统,可以精确地定位当前所在的地理位置,但由于GPS接收机需要对准天空才能工作,因此在室内环境基本无用。 <br />  另一个找到自己所在位置的有效方法使用手机基站,手机开机,它会与周围的基站保持联系,如果你知道这些基站的身份,就可以使用各种数据库(包含基站的身份和它们的确切地理位置)计算出手机的物理位置。基站不需要卫星,和GPS不同,它对室内环境一样管用。但它没有GPS那样精确,它的精度取决于基站的密度,它在基站密集型区域的准确

demigod2009的专栏 3888

iphone--MKMapView

1.以代码方式添加的地点。2。kml形式添加。 下面样式为以代码方式添加: 一.基本知识      目前主流的智能手机大部分都支持GoogleMap地图程序,而手机上的地图程序确实能给我们的出行带来很大的方便。在iPhone中利用MapKit框架可以很方便的显示Go

dyhbrewer的专栏 455

CLLocationManager定位经纬度,MKReverseGeocoder地址解析, MKMapView 地图显示 iphone

讲的相当详细 from:http://hi.baidu.com/johnzhjfly/blog/item/ae8b7dd139dd7ac8572c84c4.html CLLocationManager CLLocationManager使用步骤1.创建一个CLLocationManager实例CLLocationManager *locationManager = [[CLLocatio...

shappy1978的专栏 425

iPhone开发地图框架入门(一)

原文地址:http://www.highoncoding.com/Articles/804_Introduction_to_MapKit_Framework_for_iPhone_Development.aspx 地图对我们的生活来说是非常重要的一部分。我们经常用地图来确定位置和方向。这篇文章主要是用来介绍地图框架在ios里面的应用。 关键的概念: MKMapView

iphone开发收集盒子 963

iphone 程序内调用谷歌地图

使用CLLocationManager类,MKMapView。并且实现e> //初始化CLLocationManager,CLLocationManager获得当前地理坐标 locmanager=[[CLLocationManager alloc]init]; [locmanager setDelegate:self];  //设置精确度 [locmanager setDesir

森... 763

[iPhone程式]iPhone開發心得04-Mapkit之使用MKMapView實作Google Map

☉目標:使用內建的Mapkit Framework建立一個Google Map畫面,可以對地圖進行拖曳、放大、縮小。  ☉限制:必須將iPhone的作業系統更新到OS 3.0版本,開發使用的SDK也要是SDK3.0才有內建Mapkit Framework。  ☉效果畫面:    ☉步驟說明:  (1)建立一個新的Window-Based專案,將專案命名為L

iphone开发收集盒子 864
上一篇: Java中sleep和wait的区别
Wurd
博客等级 码龄25年 0粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值