`
janedoneway
  • 浏览: 582208 次
  • 性别: 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调用google地图显示

    在iOS开发中,调用Google地图显示是一项常见的需求,尤其对于iPhone应用来说。这个名为"MapDemo"的项目很可能是为了演示如何在iPhone应用中集成并使用Google Maps SDK来显示地图。下面我们将深入探讨这个主题。 ...

    iphone goole地图开发程序

    标题中的“iPhone Google地图开发程序”指的是在iOS平台上利用Google Maps API进行应用程序开发的技术。这一主题涵盖了许多重要的知识点,对于想要进入iOS开发领域的初学者来说是必不可少的学习内容。以下是关于这个...

    Iphone地图开发,用的GoogleMap库

    本教程将深入探讨如何在iPhone应用中使用Google Maps库进行地图开发,实现各种基本和常用功能。 首先,我们需要在Xcode项目中集成Google Maps SDK。这可以通过CocoaPods或者手动下载SDK并导入到项目中来完成。如果...

    iPad和iPhone的GIS地图开发资料

    ### iPad和iPhone的GIS地图开发资料 #### 一、配置开发环境 在开始进行GIS地图应用的开发之前,首先需要确保开发环境已经正确配置。UCMap SDK for iOS提供了一套全面的工具集,用于帮助开发者在iOS平台上创建高...

    iPhone调用系统自带的地图程序实现导航demo

    本教程将详细讲解如何在iPhone应用中利用系统内置的地图程序实现导航功能,主要涉及的知识点包括:URL Scheme、MapKit框架和Google Maps API。 首先,我们来了解URL Scheme。URL Scheme是一种允许应用程序之间互相...

    googleapis for iphone

    对于iPhone应用开发,`googleapis for iphone`意味着我们可以将这些功能引入iOS平台,为用户提供更加丰富的体验。 在iOS应用中使用Google APIs,通常涉及以下几个关键知识点: 1. **OAuth 2.0授权**:为了安全访问...

    iphone 开发应用之上海地铁

    这款应用不仅能够满足日常出行需求,还能为开发者提供宝贵的iOS应用开发经验,是学习iPhone开发的绝佳实践案例。 首先,从iOS开发的角度来看,该应用的开发涉及到的主要技术包括Swift编程语言、UIKit框架和Core ...

    IPhone开发秘籍(第2版)

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

    (0009)-iOS/iPhone/iPAD/iPod源代码-地图(Map)-iCodeMap

    在iOS开发中,地图(Map)是一个非常重要的组件,特别是在iPhone、iPad或iPod的应用程序中。本资源"(0009)-iOS/iPhone/iPAD/iPod源代码-地图(Map)-iCodeMap"提供了一个关于自定义地图功能的示例,主要涉及如何...

    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开发应用内购买的功能与服务 使用辅助功能构建残障人士可访问的应用

    Google Map开发房产地图实例

    ### Google Map开发房产地图实例详解 #### 一、概述 本文档主要介绍如何利用Google Maps JavaScript API V3 和 Google Local Search API 来开发一个房产地图应用。通过详细步骤的讲解和示例代码的展示,帮助读者...

    iPhone应用程序开发指南

    - **Google Maps**:集成Google地图服务,提供地图导航功能。 #### 六、开发环境介绍 ##### 1. iPhone SDK开发库框架 - **CocoaTouch**:面向用户的编程接口,包括UIKit和Foundation两部分。UIKit负责进程、线程...

    iphone上google map源代码

    总之,这个"iphone上google map源代码"示例项目将帮助开发者深入理解如何在iOS应用中集成和定制Google Maps的功能,为用户提供丰富的地图体验。通过学习和研究这个项目,开发者可以掌握Google Maps SDK的基本用法,...

    Google Map(iphone)(源码)

    它是Google提供的一个开发工具包,允许开发者在iOS应用中嵌入地图,实现定位、导航、路线规划等多种功能。SDK提供了丰富的API接口,可以定制地图的样式、添加标记、热区、路径等元素,以及处理用户交互事件。 在该...

    31天iphone开发实例代码

    《31天iPhone开发实例代码》是一套专为iOS初学者设计的学习资源,旨在通过每日一个实例的方式,帮助学习者逐步掌握iOS应用开发的核心技术。在这个压缩包中,你将找到一系列的代码示例,每一天的实例都对应着一个特定...

    iPhone与iPad开发实战—iOS经典应用剖析

    - 本地Google地图API的应用。 **5. 铅锤 (PlumbBob)** - **功能**:利用设备内置传感器测量垂直角度。 - **技术要点**: - Window-based应用模板的使用。 - iOS重力加速计的功能开发。 - CALayer的3D变换操作。...

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

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

Global site tag (gtag.js) - Google Analytics