十年专注于品牌网站建设 十年专注于品牌网站建设,低调、高逼格、有情怀的网络应用服务商!
南昌百恒网络微信公众号 扫一扫关注
小程序
tel-icon全国服务热线:400-680-9298,0791-88117053
扫一扫关注百恒网络微信公众号
扫一扫打开百恒网络微信小程序

百恒网络

南昌百恒网络

IOS软件开发中如何显示地图

百恒网络 2017-08-29 228

在iOS 6之后,苹果自己的地图代替了谷歌地图,但是API编程接口没有太大的变化,所以APP开发人员不需要再学习很多新东西就能开发地图应用。在iOS应用程序中,我们使用Map Kit API开发地图应用,其核心是MKMapView类。那么今天南昌APP制作开发公司-百恒网络就来为大家简单介绍一下如何显示iOS苹果地图。

在Map Kit API中,显示地图的视图是MKMapView,它的委托协议是MKMapViewDelegate。使用Map Kit API时, 需要导入MapKit框架。下面我们通过如图1所示的案例介绍一下Map Kit API的用法,在“输入查询地点关键字”文本框中输入 关键字,点击“查询”按钮,先进行地理信息编码查询,获得地标信息后,会在地图上标注出来。

iOS地图应用案例

图1 iOS地图应用案例

首先,请参考图2的操作添加框架MapKit.framework,然后在工程中打开MainStoryboard.storyboard的 Interface Builder设计界面,从对象库中拖曳MapKit View到设计界面中,如图3所示。

模拟器位置菜单

图2 模拟器位置菜单

在Interface Builder中设计MapKit View

图3 在Interface Builder中设计MapKit View

调整MapKit View的位置和大小,使其尽可能充满界面下面的空白部分,然后为MapKit View定义输出口。下面我们看看视图控制器ViewController中类定义和属性声明相关的代码,具体如下:

import UIKit

import CoreLocation

import MapKit

class ViewController: UIViewController,MKMapViewDelegate {

@IBOutlet weak var txtQueryKey: UITextField!

@IBOutlet weak var mapView: MKMapView!

......

}

//ViewController.h文件

#import "MyAnnotation.h"

#import

#import

#import

@interface ViewController ()

@property (weak, nonatomic) IBOutlet UITextField *txtQueryKey;

@property (weak, nonatomic) IBOutlet UITextView *txtView;

@property (weak, nonatomic) IBOutlet MKMapView *mapView;

- (IBAction)geocodeQuery:(id)sender;

@end

由于使用Map Kit API,需要引入MapKit模块。在定义ViewController类时,还需要声明MKMapViewDelegate 协议。 下面百恒网络再带大家认识一下 ViewController中viewDidLoad方法的代码:

override func viewDidLoad() {

super.viewDidLoad()

self.mapView.mapType = MKMapType.Standard

self.mapView.delegate = self ①

}

- (void)viewDidLoad {

[super viewDidLoad];

self.mapView.mapType = MKMapTypeStandard;

//self.mapView.mapType = MKMapTypeSatellite;

self.mapView.delegate = self; ①

}

在viewDidLoad方法中,我们设置了地图的类型,其中共有3种类型,它们是在枚举类型MKMapType中定义的, 具体如下所示。

1、Standard:标注地图类型,如图4所示。Objective-C版本为MKMapTypeStandard。

2、Satellite:卫星地图类型,如图5所示,在卫星地图中没有街道名称等信息。Objective-C版本为 MKMapTypeSatellite。

3、Hybrid:混合地图类型,如图6所示,混合地图是在卫星地图上标注出街道等信息。Objective-C版本为MKMapTypeHybrid。

标注地图、卫星地图、混合地图

在viewDidLoad方法中,第①行代码用于将当前视图控制器赋值给地图视图的delegate属性,这样地图视图在需要的时候就会回调ViewController,如果失败,就会回调下面的失败方法:

func mapViewDidFailLoadingMap(mapView: MKMapView!, withError error: NSError!)

{

NSLog("error : %@", error.description)

}

- (void)mapViewDidFailLoadingMap:(MKMapView *)theMapView withError:(NSError

*)error {

NSLog(@"error : %@",[error description]);

}

以上就是百恒网络为大家介绍的在南昌APP开发中显示iOS苹果地图的方法,做法其实很简单,如果大家还有哪些不明白的地方,可随时来电和我们联系,我们专业为您解答。此外,如有需要网站建设、微信开发、APP开发等服务的朋友,欢迎大家来电和我们联系,百恒网络随时为您效劳!

400-680-9298,0791-88117053
扫一扫关注百恒网络微信公众号
扫一扫打开百恒网络小程序

欢迎您的光顾,我们将竭诚为您服务×

售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售后服务 售后服务
 
售后服务 售后服务
 
备案专线 备案专线
 
×