需要实现代理CLLocationManagerDelegate,MKReverseGeocoderDelegate
并导入CoreLocation 框架。
代理使用方法 如下:
#pragma mark – 获取城市名称
// iso 5.0 以下版本使用此方法
- (void)startedReverseGeoderWithLatitude:(double)latitude longitude:(double)longitude{
CLLocationCoordinate2D coordinate2D;
coordinate2D.longitude = longitude;
coordinate2D.latitude = latitude;
MKReverseGeocoder *geoCoder = [[MKReverseGeocoder alloc] initWithCoordinate:coordinate2D];
self.reverseGeocoder = geoCoder;
[geoCoder release];
self.reverseGeocoder.delegate = self;
[self.reverseGeocoder start];
}
#pragma mark –
- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFindPlacemark:(MKPlacemark *)placemark
{
NSString *thoroughfare=placemark.thoroughfare;
if (thoroughfare) {
self.locationLabel.text = thoroughfare;
}
}
- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFailWithError:(NSError *)error
{
NSLog(@”获取失败”);
}
// IOS 5.0 及以上版本使用此方法
- (void)locationAddressWithLocation:(CLLocation *)locationGps
{
CLGeocoder *clGeoCoder = [[CLGeocoder alloc] init];
self.geoCoder = clGeoCoder;
[clGeoCoder release];
[self.geoCoder reverseGeocodeLocation:locationGps completionHandler:^(NSArray *placemarks, NSError *error)
{
NSLog(@"error %@ placemarks count %d",error.localizedDescription,placemarks.count);
for (CLPlacemark *placeMark in placemarks)
{
NSLog(@"地址:%@",placeMark.locality);
NSLog(@"地址:%@",placeMark.thoroughfare);
NSLog(@"地址:%@",placeMark.subLocality);
self.locationLabel.text = placeMark.thoroughfare;
}
}];
}
#pragma mark – location Delegate
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
{
NSLog(@”定位出错”);
}
- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation
{
if (!newLocation) {
[self locationManager:manager didFailWithError:(NSError *)NULL];
return;
}
if (signbit(newLocation.horizontalAccuracy)) {
[self locationManager:manager didFailWithError:(NSError *)NULL];
return;
}
[manager stopUpdatingLocation];
NSLog(@”%f,%f”,newLocation.coordinate.latitude,newLocation.coordinate.longitude);
_coordinate.latitude = newLocation.coordinate.latitude;
_coordinate.longitude = newLocation.coordinate.longitude;
self.gpsLabel.text = [NSString stringWithFormat:@"%f,%f",newLocation.coordinate.latitude,newLocation.coordinate.longitude];
//解析并获取当前坐标对应得地址信息
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 5.0) {
[self locationAddressWithLocation:newLocation];
}else {
[self startedReverseGeoderWithLatitude:newLocation.coordinate.latitude
longitude:newLocation.coordinate.longitude];
}
}
转自:http://redstar.easymorse.com/?p=349
分享到:
相关推荐
资源名称:Cocos2d-x实战:JS卷——Cocos2d-JS开发内容简介:本书是介绍Cocos2d-x游戏编程和开发技术书籍,介绍了使用Cocos2d-JS中核心类、瓦片地图、物理引擎、音乐音效、数据持久化、网络通信、性能优化、多平台...
《使用Cocos2d开发的跑酷游戏》 在游戏开发领域,Cocos2d是一个广泛应用的开源2D游戏引擎,特别适合制作轻量级、快节奏的游戏,如跑酷类游戏。本项目以Cocos2d 3.2版本为基础,提供了一个完整的跑酷游戏实例,对于...
【cocos2d-x版本的对对碰代码】是一个基于Cocos2d-x游戏引擎实现的经典消除类游戏项目,它将原有的Cocos2d版本的对对碰游戏移植到了跨平台的Cocos2d-x框架下。Cocos2d-x是Cocos2d的C++扩展,支持iOS、Android、...
总的来说,cocos2d-x 3.8版本是一个强大的游戏开发工具,虽然不如最新的版本功能全面,但其稳定性和兼容性仍然值得信赖。对于想要深入理解游戏引擎工作原理或者研究历史版本的开发者来说,这个“cocos2d-x-3.8.zip”...
读者将学习如何在不同平台上配置Cocos2d-x开发环境,了解项目的目录结构和构建过程,掌握Scene、Layer、Node等核心概念。 接着,书中会详细讲解Cocos2d-x 3.x的图形绘制,包括精灵(Sprite)、批处理(Batch Node)...
《Cocos2d-x实战 JS卷 Cocos2d-JS开发》是一本深入探讨Cocos2d-x游戏引擎JavaScript版本使用的专业书籍。Cocos2d-x是全球范围内广泛采用的游戏开发框架,尤其适用于2D游戏的制作,而Cocos2d-JS则是其JavaScript接口...
标题中提到了"Cocos2d-x实战++JS卷++Cocos2d-JS开发+PDF电子书下载+带书签目录+完整",这里面包含了几个关键知识点: 1. Cocos2d-x:是一个开源的游戏开发框架,它主要用于开发跨平台的游戏和应用程序,支持iOS、...
通过深入理解并掌握这个版本,开发者可以创建出运行在多种平台上的高质量游戏,享受到cocos2d-x带来的强大开发体验。无论是初学者还是经验丰富的开发者,都可以从中获益,提升自己的开发效率和作品质量。
cocos2d-x v3.16 是该框架的一个版本号,本文档主要介绍了该版本的安装流程以及环境变量的配置方法。 首先,需要下载并安装 Python 2.7.14,因为 Cocos2d-x 的某些脚本需要用到 Python 来执行。在安装 Python 时,...
在本项目中,开发者利用cocos2d-x 2.0.4版本创建了一个简单的益智类魔塔小游戏,旨在展示cocos2d-x在跨平台游戏开发中的应用能力。 1. **cocos2d-x框架**: - **C++基础**:cocos2d-x 2.0.4主要采用C++编写,这...
### Cocos2d开发资源概览 #### 一、Cocos2d的不同版本及特性 - **Cocos2d-Python**:这是Cocos2d最初版本的基础,它使用Python语言编写,为后续版本的发展奠定了基础。 - **Cocos2d-iPhone**:基于Objective-C语言...
这个压缩包“cocos2d-x-3.1.zip”包含了Cocos2d-x框架的3.1版本,这是一个经典且相对旧的版本,可能对于那些寻找历史版本或者想要研究早期游戏开发技术的人来说非常有价值。由于官方网站已经不再提供这个版本的直接...
在Cocos2d-x的家族中,还有其他分支引擎,如Cocos2d-iPhone、Cocos2d-python、Cocos2d-xna等,它们各自支持不同的平台和编程语言,满足不同开发者的需求。例如,Cocos2d-iPhone专注于iOS平台,使用Objective-C或...
这本书详细介绍了Cocos2d-JS 3.10版本及其与CocosStudio 1.6版本的兼容性,为读者提供了一个无坑的指导,帮助他们轻松掌握这一强大的游戏开发工具。 Cocos2d-JS是Cocos2d-x项目的一部分,是一个跨平台的游戏开发...
Cocos2d-JS是Cocos2d-x引擎的一个分支,它结合了JavaScript的易用性和C++的高性能,为游戏开发提供了一个高效、便捷的解决方案。 首先,Cocos2d-JS的核心概念包括场景(Scene)、层(Layer)、精灵(Sprite)、动作...
cocos2d是一款广泛应用于游戏开发的开源2D游戏引擎,以其高效、易用性而深受开发者喜爱。在本案例“愤怒的小鱼”中,我们将深入探讨cocos2d的游戏开发流程,以及它如何通过其强大的功能来构建一个完整的游戏。 首先...
"cocos2d-android jar包全套.zip"这个压缩包包含了在Android上使用Cocos2d开发游戏所需的所有核心库和依赖。 首先,让我们详细了解一下Cocos2d的主要组件: 1. **Cocos2d Engine**:这是Cocos2d的核心,提供了一...
随着Swift的普及,Cocos2d也有了Swift版本——Cocos2d-iOS Swift,它提供了与Objective-C版本类似的API,但更适合现代Swift编程风格。 1. **安装和设置**:在开始游戏开发之前,你需要安装Xcode,它是Apple官方的...