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

iphone开发Google地图实现

 
阅读更多

From: http://hi.baidu.com/542on/blog/item/2526461f3dfd5d0841341791.html

 

原文链接:http://tergol.blog.163.com/blog/static/17069502820108205020506/

这一节我将用看到那个google的地图,在实现上也相当简便。嵌入地图时需要MKMapView这个类,

它有很多方法和属性,不过如果只是想得到基本的定位功能的话,只需实例化一个对像然后加到当前的

view上就可以了。

<一>先介绍一下,它的几个常用的属性。

 region 用来设置地图的那一部份被显示,它是一个结构体,定义如下:

  typedef struct{

          CLLocationCoordinate2D center;//表示显示的中心

          MKCoordinateSpan span;        //表示比例

}MKCoordinateRegion;

对于MKCoordinateSpan其定义如下:

typedef struct{

CLLocationDegrees latitudeDelta;//这类型在前一节中讲过了,是double型的

CLLocationDegrees longitudeDlta;

}MKCoordinateSpan;

再看一下maptype属性,它用于设置地图的类型,如下所示:

      MapType属性值                 描述

    MKMapTypeStandard           表示标准的街道级地图

    MKMapTypeSatellite          表示卫星图

    MKMapTypeHybird             表示上面两者的混合

其余的就不再一一介绍了,去看看相关的文档即可,在这里已经可以把地图弄出来了。

<二>下面我们把上一节中的代码改一下:

    .h头文件

#import <UIKit/UIKit.h>

#import <CoreLocation/CoreLocation.h>

#import <MapKit/MapKit.h>

@interface CoreLocationViewController : UIViewController

<CLLocationManagerDelegate,MKMapViewDelegate>{

        MKMapView *map;

        CLLocationManager *locManager;

        CLLocationCoordinate2D loc;

}

@property (nonatomic, retain) MKMapView *map;

@property (nonatomic, retain) CLLocationManager *locManager;

- (void)setCurrentLocation:(CLLocation *)location;

@end

    .m源文件

#import "CoreLocationViewController.h"

@implementation CoreLocationViewController

@synthesize map;

@synthesize locManager;

- (void)viewDidLoad {

        map = [[MKMapView alloc]initWithFrame:CGRectMake(0.0f, 0.0f, 320.0f, 411.0f)];

        map.showsUserLocation = YES;

        [self.view addSubview:map];

        locManager = [[CLLocationManager alloc] init];

        locManager.delegate = self;

        locManager.desiredAccuracy = kCLLocationAccuracyBest;

        locManager.distanceFilter = 100;

        [locManager startUpdatingLocation];

        [super viewDidLoad];

}

/*

- (IBAction) segmentChange:(id)sender {

        if (segmentControl.selectedSegmentIndex == 0) {

                map.mapType = MKMapTypeStandard;

        }

        if (segmentControl.selectedSegmentIndex == 1) {

                map.mapType = MKMapTypeSatellite;

        }

        if (segmentControl.selectedSegmentIndex == 2) {

                map.mapType = MKMapTypeHybrid;

        }

}*/

- (void)dealloc {

        [map release];

        [locManager release];

        [super dealloc];

}

#pragma mark -

#pragma mark Core Location Delegate Methods

- (void)locationManager:(CLLocationManager *)manager

        didUpdateToLocation:(CLLocation *)newLocation

                   fromLocation:(CLLocation *)oldLocation {

        NSLog(@"---------------");

        loc = [newLocation coordinate];

        MKCoordinateRegion region;

        MKCoordinateSpan span;

        span.latitudeDelta=0.1; //zoom level

        span.longitudeDelta=0.1; //zoom level

        NSLog(@"%f",loc.latitude);

        NSLog(@"%f",loc.longitude);

        region.span=span;

        region.center=loc;

        // map.showsUserLocation=NO;

         map.mapType = MKMapTypeStandard;

        [map setRegion:region animated:YES];

        [map regionThatFits:region];

}

- (void)locationManager:(CLLocationManager *)manager

           didFailWithError:(NSError *)error{

        NSString *errorMessage;

        if ([error code] == kCLErrorDenied){

                errorMessage = @"被拒绝访问";

        }

        if ([error code] == kCLErrorLocationUnknown) {

                errorMessage = @"";

        }

        UIAlertView *alert = [[UIAlertView alloc]

                                                  initWithTitle:nil

                                                  message:errorMessage

                                                  delegate:self

                                                  cancelButtonTitle:@"纭 畾"

                                                  otherButtonTitles:nil];

        [alert show];

        [alert release];

}

- (void)setCurrentLocation:(CLLocation *)location {

        MKCoordinateRegion region ;

        region.center = location.coordinate;

        region.span.longitudeDelta = 0.15f;

        region.span.latitudeDelta = 0.15f;

        [map setRegion:region animated:YES];

}

@end

效果如下图所示

 

 

 
我们在GOOGLE地图上是会看到有一个标注显示出来的,就留着,我们下一小节再来完成。
分享到:
评论

相关推荐

    Iphone地图开发,用的GoogleMap库

    Iphone地图开发,用的GoogleMap库,实现的一些基本以及常用的功能。

    IPhone开发秘籍(第2版)

    《iPhone开发秘籍(第2版)》面向已经...使MapKit~Google Mobile Maps嵌入地图 使用GameKit构建多人游戏 使用Core Data构建数据驱动的应用 使用StoreKit开发应用内购买的功能与服务 使用辅助功能构建残障人士可访问的应用

    IPhone开发秘籍(第2版).part3.rar

    《iPhone开发秘籍(第2版)》面向已经...使MapKit~Google Mobile Maps嵌入地图 使用GameKit构建多人游戏 使用Core Data构建数据驱动的应用 使用StoreKit开发应用内购买的功能与服务 使用辅助功能构建残障人士可访问的应用

    IPhone开发秘籍(第2版).part2.rar

    《iPhone开发秘籍(第2版)》面向已经...使MapKit~Google Mobile Maps嵌入地图 使用GameKit构建多人游戏 使用Core Data构建数据驱动的应用 使用StoreKit开发应用内购买的功能与服务 使用辅助功能构建残障人士可访问的应用

    IPhone开发秘籍(第2版).part1.rar

    《iPhone开发秘籍(第2版)》面向已经...使MapKit~Google Mobile Maps嵌入地图 使用GameKit构建多人游戏 使用Core Data构建数据驱动的应用 使用StoreKit开发应用内购买的功能与服务 使用辅助功能构建残障人士可访问的应用

    iOS苹果手机App开发教程, iPhone手机App开发教程

    苹果手机iOS App开发教程.zip 内容包括: IDE Xcode Objective-C语言 故事板 iPhone目录结构 控件 委托 UI界面制作 ...谷歌地图接入 电子邮件 文件处理 相机管理 多媒体音视频 应用商场 加入iAD广告收入

    Google Android SDK开发范例大全(PDF高清完整版1)(4-1)

    Google Android SDK开发范例大全(完整版)共4个分卷 目录 第1章 了解.深入.动手做. 1.1 红透半边天的Android 1.2 本书目的及涵盖范例范围 1.3 如何阅读本书 1.4 使用本书范例 1.5 参考网站 第2章 Android初体验 2.1...

    Google Android SDK开发范例大全(第3版) 4/5

    Google Map应用:GPS定位、规划导航路径、GPS Google地图、地址反查地理坐标等卫星全球定位实例。 创意程序设计:即时动态桌面、电蚊香、转转轮盘、任务管理器、中英发音字典、手机手电筒、GPS轨迹记录器、女性贴身...

    Google Android SDK开发范例大全(第3版) 3/5

    Google Map应用:GPS定位、规划导航路径、GPS Google地图、地址反查地理坐标等卫星全球定位实例。 创意程序设计:即时动态桌面、电蚊香、转转轮盘、任务管理器、中英发音字典、手机手电筒、GPS轨迹记录器、女性贴身...

    Google Android SDK开发范例大全(第3版) 5/5

    Google Map应用:GPS定位、规划导航路径、GPS Google地图、地址反查地理坐标等卫星全球定位实例。 创意程序设计:即时动态桌面、电蚊香、转转轮盘、任务管理器、中英发音字典、手机手电筒、GPS轨迹记录器、女性贴身...

    UCMAP 开发使用手册

    11,数据融合,支持矢量数据与Bing 地图或Google 地图叠加; 12, 扩展定制,高可扩展性,支持GPS 语音导航,视频、图象等采集、显示、上传,与移动MIS、移动OA 的无缝集成,以及各种其他服务的组合; 环境配置要求...

    Google Android SDK开发范例大全(PDF完整版4)(4-4)

    Google Android SDK开发范例大全(完整版)共4个分卷 目录 第1章 了解.深入.动手做. 1.1 红透半边天的Android 1.2 本书目的及涵盖范例范围 1.3 如何阅读本书 1.4 使用本书范例 1.5 参考网站 第2章 Android初体验 2.1...

    Google Android SDK开发范例大全(PDF高清完整版3)(4-3)

    Google Android SDK开发范例大全(完整版)共4个分卷 目录 第1章 了解.深入.动手做. 1.1 红透半边天的Android 1.2 本书目的及涵盖范例范围 1.3 如何阅读本书 1.4 使用本书范例 1.5 参考网站 第2章 Android初体验 2.1...

    Google Android SDK开发范例大全(第3版) 1/5

    Google Map应用:GPS定位、规划导航路径、GPS Google地图、地址反查地理坐标等卫星全球定位实例。 创意程序设计:即时动态桌面、电蚊香、转转轮盘、任务管理器、中英发音字典、手机手电筒、GPS轨迹记录器、女性贴身...

    Google Android SDK开发范例大全的目录

    2.4 可视化的界面开发工具 2.5 部署应用程序到Android手机 第3章 用户人机界面 3.1 更改与显示文字标签——TextView标签的使用 3.2 更改手机窗口画面底色——drawable定义颜色常数的方法 3.3 更改TextView文字颜色...

    锐峰汇智GPS定位手机APP 百度地图版

    锐峰汇智GPS定位平台全套自主开发软件。 1.全套的GPS自主开发定位软件。 包含B/S架构车机平台、C/S查车平台、android客户端、...国内用户使用百度地图,国外用户能使用google地图。 详情访问:http://www.rf-gsm.com/

    Google Android SDK开发范例大全(第3版)part2

     9.5 GPS Google地图  9.6 移动版Google Map  9.7 规划导航路径  9.8 移动设备上的Picasa相册  9.9 随身翻译机  9.10 通过YouTube ID调用YouTube播放影片  9.11 Google Analytics分析手机用户行为  ...

    android开发资料大全

    百度地图API 之 定位周边搜索POI(奉上源代码) Android 应用小实例--炫酷计时器 android客户端连接服务器并交互实例 Android小项目合集(经典教程) 看到很强大的实例----高仿【优酷】圆盘旋转菜单 的实现 如何...

Global site tag (gtag.js) - Google Analytics