`
jsntghf
  • 浏览: 2533489 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

地图应用的简单示例

    博客分类:
  • iOS
阅读更多

首先,需要将CoreLocation.framework和MapKit.framework加入到项目中。

 

头文件:

 

#import <UIKit/UIKit.h>
#import <CoreLocation/CoreLocation.h>
#import <MapKit/MapKit.h>

@interface LocationViewController : UIViewController <CLLocationManagerDelegate> {
	CLLocationManager *locationManager;
	CLLocation *myLocation;	
	IBOutlet UIButton *getLocationBtn;
	IBOutlet UILabel *latitudeLabel;
	IBOutlet UILabel *longitudeLabel;
	IBOutlet MKMapView *mapView;        
}

@property (nonatomic, retain) CLLocationManager *locationManager;
@property (nonatomic, retain) CLLocation *myLocation;
@property (nonatomic, retain) UIButton *getLocationBtn;
@property (nonatomic, retain) UILabel *latitudeLabel;
@property (nonatomic, retain) UILabel *longitudeLabel;
@property (nonatomic, retain) MKMapView *mapView;

- (IBAction) getLocationBtnClicked:(id) sender;
- (void) initMapView;
- (void) initLocation;

@end

 

实现文件:

 

#import "LocationViewController.h"

@implementation LocationViewController

@synthesize locationManager;
@synthesize myLocation;
@synthesize getLocationBtn;
@synthesize latitudeLabel;
@synthesize longitudeLabel;
@synthesize mapView;

- (void)viewDidLoad {
	[self initMapView];
	[self initLocation];
    [super viewDidLoad];
}

//初始化地图显示参数
- (void) initMapView {
	//设定显示中心经纬度
	CLLocationCoordinate2D theCoordinate;
	theCoordinate.latitude = 38.148926;
	theCoordinate.longitude = -120.715542;
	//设定显示范围
	MKCoordinateSpan theSpan;
	theSpan.latitudeDelta = 0.1;
	theSpan.longitudeDelta = 0.1;
	//设置地图显示的中心及范围
	MKCoordinateRegion theRegion;
	theRegion.center = theCoordinate;
	theRegion.span = theSpan;
	//设置地图显示的类型及根据范围进行显示
	[self.mapView setMapType:MKMapTypeStandard];	
	[mapView setRegion:theRegion];
	[mapView regionThatFits:theRegion];
	//定位后在地图上用蓝色点显示用户的位置
	mapView.showsUserLocation = YES;
}

//初始化定位相关参数
- (void) initLocation {
	self.locationManager = [[CLLocationManager alloc] init];
	//设置代理
	locationManager.delegate = self;
	//设置需要的定位精度
	locationManager.desiredAccuracy = kCLLocationAccuracyBest;	
	latitudeLabel.text = @"";
	longitudeLabel.text = @"";
}

- (IBAction) getLocationBtnClicked:(id) sender {
	latitudeLabel.text = @"";
	longitudeLabel.text = @"";
	//启动定位
	[locationManager startUpdatingLocation];
}

- (void)dealloc {
	[locationManager release];
	[myLocation release];
	[getLocationBtn release];
	[latitudeLabel release];
	[longitudeLabel release];
	[mapView release];
    [super dealloc];
}

//代理方法
#pragma mark -
#pragma mark CLLocationManagerDelegate Methods
//确定当前位置和位置更新了时调用这个方法
- (void)locationManager:(CLLocationManager *)manager 
	didUpdateToLocation:(CLLocation *)newLocation 
		   fromLocation:(CLLocation *)oldLocation
{
	//获得定位点的纬度信息
	NSString *latitudeString = [[NSString alloc] initWithFormat:@"%g", newLocation.coordinate.latitude];
	latitudeLabel.text = latitudeString;
	[latitudeString release];
	//获得定位点的经度信息
	NSString *longitudeString = [[NSString alloc] initWithFormat:@"%g", newLocation.coordinate.longitude];
	longitudeLabel.text = longitudeString;
	[longitudeString release];
	//停止定位
	[locationManager stopUpdatingLocation];
	//把地图中心移动到定位到的这个点
	[mapView setCenterCoordinate:newLocation.coordinate animated:YES];
	//重新设置地图显示的区域
	MKCoordinateSpan newSpan;
	newSpan.latitudeDelta = 0.05;
	newSpan.longitudeDelta = 0.05;
	MKCoordinateRegion newRegion;
	newRegion.center = newLocation.coordinate;
	newRegion.span = newSpan;
	[mapView setRegion:newRegion animated:YES];
}

//位置查询遇到错误时调用这个方法
- (void)locationManager:(CLLocationManager *)manager 
	   didFailWithError:(NSError *)error
{
	NSString *errorType = (error.code == kCLErrorDenied) ? 
    @"Access Denied" : @"Unknown Error";
    UIAlertView *alert = [[UIAlertView alloc] 
                          initWithTitle:@"Error getting Location" 
                          message:errorType 
                          delegate:nil 
                          cancelButtonTitle:@"OK" 
                          otherButtonTitles:nil];
    [alert show];
    [alert release];
}

@end
分享到:
评论

相关推荐

    百度离线地图示例V3.0

    百度离线地图示例V3.0是一款基于百度地图JavaScript API V3.0开发的应用,旨在帮助用户在无网络连接或者网络不稳定的情况下,依然能够查看和使用地图服务。这个示例项目包含了地图切片、初始化脚本(init.js)以及一...

    地图示例-- 一个简单的百度地图示例

    标题中的“地图示例-- 一个简单的百度地图示例”表明这是一个关于使用百度地图API创建简单应用的教程或示例项目。在这个项目中,开发者可能会介绍如何集成百度地图到网页或者应用程序中,展示基础的地图功能,如定位...

    百度地图应用范例

    百度地图API是一套用于在Android平台上开发地图应用的接口,它允许开发者在应用中嵌入地图、进行定位、规划路径、显示POI(兴趣点)等操作。开发者需要先在百度地图开放平台注册获取API密钥,然后在应用中集成相应的...

    Google 地图 JavaScript API 示例 简单地址解析

    这在地图应用中非常常见,因为我们需要这些坐标来在地图上准确地显示位置。Google地图JavaScript API中的`geocoder`对象提供了这个功能。 首先,引入Google地图JavaScript库到你的HTML文件中,如`map.html`所示。这...

    vue+openlayers简单示例

    Vue.js 是一款流行的...总之,“vue+openlayers简单示例”是一个很好的起点,展示了如何在Vue项目中利用OpenLayers构建地图应用。通过深入学习Vue和OpenLayers的API,你可以创建出功能强大、用户体验优秀的地图应用。

    gmapx地图引擎及其示例代码

    《gmapx地图引擎及其示例代码详解》 ...通过学习和实践提供的示例代码,开发者可以快速上手并创造出满足各种需求的地图应用。无论是开发桌面软件、Web应用还是移动应用,gmapx都能成为你得力的助手。

    arcgis简单示例

    在ArcGIS中,"arcgis简单示例"的标题和描述揭示了两个核心知识点:如何加载天地图和如何加载默认地图。ArcGIS是一款强大的地理信息系统(GIS)软件,由Esri公司开发,广泛用于地图制作、数据分析和空间决策支持。在...

    百度地图简单应用

    在移动开发和Web开发中,地图应用是不可或缺的一部分,尤其是在导航、定位、信息查询等领域。本文将深入探讨“百度地图简单应用”,以帮助开发者快速理解和掌握如何利用百度地图API进行基本的功能实现。 首先,百度...

    百度地图调用学习示例

    你可以通过查看和运行这些示例代码,来学习如何在实际项目中应用百度地图API。通常,示例会包含HTML文件用于展示地图,JavaScript文件用于处理地图相关的逻辑,以及可能的CSS文件来定制样式。通过学习和理解这些代码...

    百度地图应用列表

    首先,"百度地图应用列表"的标题表明了这是一个与百度地图SDK相关的项目,它可能包含了多个示例应用,展示了如何在Android应用中集成和使用百度地图API。为了使用这些功能,开发者需要先到百度地图开放平台申请一个...

    baidu离线地图2.0API示例.zip

    离线地图技术在移动应用和Web开发中扮演着重要角色,尤其是在网络不稳定或者数据流量有限的情况下。百度离线地图API是百度地图服务...同时,对API的深入理解和合理优化,将有助于打造更加高效和用户友好的地图应用。

    基于VB+AO的地图窗口建立简单示例

    这个基于VB+AO的简单示例旨在帮助初学者理解如何将这两个工具集成,创建一个基本的GIS应用程序。实际开发中,你可能需要处理更复杂的功能,如空间分析、地图服务发布等。随着经验的积累,你可以进一步扩展这些基础,...

    简单明了实用的百度echarts地图使用示例(含js和json格式地图两种情况)

    在“简单明了实用的百度echarts地图使用示例”中,我们有两个示例:`echarts_json_map_demo` 和 `echarts_js_map_demo`,分别展示了如何使用 JSON 格式和 JavaScript 格式的数据来创建交互式地图。 ### 1. ECharts ...

    echarts与百度地图结合示例*(官方示例)

    以下是一个简单的示例,展示如何在ECharts中加载百度地图: ```javascript var myChart = echarts.init(document.getElementById('main')); var bmap = new BMap.Map('container'); // 创建BMap.Map实例 bmap....

    angularbaidumaps百度地图AngularJs指令示例

    在本文中,我们将深入探讨如何在AngularJS应用中集成百度地图,主要基于"angular-baidu-maps"这个库。这是一个专门为AngularJS...在实际项目中,结合API密钥、地图配置、覆盖物和事件监听,可以构建出丰富的地图应用。

    C# winfrom获取百度地图经纬度转换腾讯地图经纬度示例

    本示例主要关注如何在C# WinForm应用中实现百度地图经纬度到腾讯地图经纬度的转换,这对于那些需要在不同地图服务之间进行路径规划或者位置信息处理的开发者来说尤其重要。 首先,我们需要理解经纬度系统。经纬度是...

    高德地图开发简单demo

    在IT行业中,高德地图是一款广泛使用的...接下来,我们来看看如何创建一个简单的高德地图应用。以JavaScript API为例: 1. **引入地图库**:在HTML文件中,通过`&lt;script&gt;`标签引入高德地图的JavaScript库。 ```html ...

    echart 图表应用,简单地图

    总之,ECharts地图功能强大,适合构建各种数据驱动的地图应用。通过灵活的配置和丰富的API,开发者可以轻松实现各种复杂的地图可视化需求。在实际使用中,结合具体案例和数据,可以创造出富有洞察力的可视化结果。

    google地图简单应用

    在IT领域,Google地图是一个广泛使用的在线地图服务,它提供了丰富的功能,如路线规划、卫星图像、...通过学习这个项目,开发者可以了解到如何将动态数据集成到Google地图中,从而构建出具有实时信息展示的地图应用。

Global site tag (gtag.js) - Google Analytics