在iOS 6之后,苹果自己的地图代替了谷歌地图,但是API编程接口没有太大的变化,所以APP开发人员不需要再学习很多新东西就能开发地图应用。在iOS应用程序中,我们使用Map Kit API开发地图应用,其核心是MKMapView类。那么今天南昌APP制作开发公司-百恒网络就来为大家简单介绍一下如何显示iOS苹果地图。
在Map Kit API中,显示地图的视图是MKMapView,它的委托协议是MKMapViewDelegate。使用Map Kit API时, 需要导入MapKit框架。下面我们通过如图1所示的案例介绍一下Map Kit API的用法,在“输入查询地点关键字”文本框中输入 关键字,点击“查询”按钮,先进行地理信息编码查询,获得地标信息后,会在地图上标注出来。
图1 iOS地图应用案例
首先,请参考图2的操作添加框架MapKit.framework,然后在工程中打开MainStoryboard.storyboard的 Interface Builder设计界面,从对象库中拖曳MapKit View到设计界面中,如图3所示。
图2 模拟器位置菜单
图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开发等服务的朋友,欢迎大家来电和我们联系,百恒网络随时为您效劳!