在iOS 6之后,蘋果自己的地圖代替了谷歌地圖,但是API編程接口沒有太大的變化,所以APP開發(fā)人員不需要再學(xué)習(xí)很多新東西就能開發(fā)地圖應(yīng)用。在iOS應(yīng)用程序中,我們使用Map Kit API開發(fā)地圖應(yīng)用,其核心是MKMapView類。那么今天南昌APP制作開發(fā)公司-百恒網(wǎng)絡(luò)就來(lái)為大家簡(jiǎn)單介紹一下如何顯示iOS蘋果地圖。
在Map Kit API中,顯示地圖的視圖是MKMapView,它的委托協(xié)議是MKMapViewDelegate。使用Map Kit API時(shí), 需要導(dǎo)入MapKit框架。下面我們通過(guò)如圖1所示的案例介紹一下Map Kit API的用法,在“輸入查詢地點(diǎn)關(guān)鍵字”文本框中輸入 關(guān)鍵字,點(diǎn)擊“查詢”按鈕,先進(jìn)行地理信息編碼查詢,獲得地標(biāo)信息后,會(huì)在地圖上標(biāo)注出來(lái)。
圖1 iOS地圖應(yīng)用案例
首先,請(qǐng)參考圖2的操作添加框架MapKit.framework,然后在工程中打開MainStoryboard.storyboard的 Interface Builder設(shè)計(jì)界面,從對(duì)象庫(kù)中拖曳MapKit View到設(shè)計(jì)界面中,如圖3所示。
圖2 模擬器位置菜單
圖3 在Interface Builder中設(shè)計(jì)MapKit View
調(diào)整MapKit View的位置和大小,使其盡可能充滿界面下面的空白部分,然后為MapKit View定義輸出口。下面我們看看視圖控制器ViewController中類定義和屬性聲明相關(guān)的代碼,具體如下:
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類時(shí),還需要聲明MKMapViewDelegate 協(xié)議。 下面百恒網(wǎng)絡(luò)再帶大家認(rèn)識(shí)一下 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方法中,我們?cè)O(shè)置了地圖的類型,其中共有3種類型,它們是在枚舉類型MKMapType中定義的, 具體如下所示。
1、Standard:標(biāo)注地圖類型,如圖4所示。Objective-C版本為MKMapTypeStandard。
2、Satellite:衛(wèi)星地圖類型,如圖5所示,在衛(wèi)星地圖中沒有街道名稱等信息。Objective-C版本為 MKMapTypeSatellite。
3、Hybrid:混合地圖類型,如圖6所示,混合地圖是在衛(wèi)星地圖上標(biāo)注出街道等信息。Objective-C版本為MKMapTypeHybrid。
在viewDidLoad方法中,第①行代碼用于將當(dāng)前視圖控制器賦值給地圖視圖的delegate屬性,這樣地圖視圖在需要的時(shí)候就會(huì)回調(diào)ViewController,如果失敗,就會(huì)回調(diào)下面的失敗方法:
func mapViewDidFailLoadingMap(mapView: MKMapView!, withError error: NSError!)
{
NSLog("error : %@", error.description)
}
- (void)mapViewDidFailLoadingMap:(MKMapView *)theMapView withError:(NSError
*)error {
NSLog(@"error : %@",[error description]);
}
以上就是百恒網(wǎng)絡(luò)為大家介紹的在南昌APP開發(fā)中顯示iOS蘋果地圖的方法,做法其實(shí)很簡(jiǎn)單,如果大家還有哪些不明白的地方,可隨時(shí)來(lái)電和我們聯(lián)系,我們專業(yè)為您解答。此外,如有需要網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)等服務(wù)的朋友,歡迎大家來(lái)電和我們聯(lián)系,百恒網(wǎng)絡(luò)隨時(shí)為您效勞!