SuperMap iMobile Lite for iOS是一套基于iOS平臺(tái)的輕量級(jí)地圖軟件開(kāi)發(fā)包(SDK)趾唱, 提供了針對(duì)iPhone以及iPad移動(dòng)設(shè)備的Web地圖訪問(wèn)接口纲缓,包括地圖瀏覽等基本接口撞牢,以及查詢遗遵、量算、標(biāo)繪等服務(wù)棍厂, 同時(shí)支持離線數(shù)據(jù)的讀取拷恨,在無(wú)網(wǎng)絡(luò)條件下仍可便捷的訪問(wèn)地圖。 通過(guò)該產(chǎn)品可以在iOS平臺(tái)下快速訪問(wèn)SuperMap iServer發(fā)布的REST地圖服務(wù)些膨。
一蟀俊、開(kāi)發(fā)環(huán)境準(zhǔn)備
1、Xcode(本文使用Xcode9.4.1)
2订雾、SuperMap iMobile Lite for iOS 9D
二肢预、創(chuàng)建工程
1、在Xcode中洼哎,選擇"File->new->Projects"烫映,如下圖,這里選擇的是Single View APP噩峦。
選擇后點(diǎn)擊Next锭沟,設(shè)置工程的Name、Organization和Company识补,如下圖族淮,然后點(diǎn)擊"Next",選擇工程保存的路徑凭涂,保存工程祝辣;我們這里保存到解壓包的samples目錄下。
2切油、添加iMobile Lite依賴庫(kù)蝙斜,我們將安裝包中的iMobileLite.xcodeproj添加到當(dāng)前工程中去
選中當(dāng)前工程,右鍵選擇Add Files to進(jìn)行添加澎胡,或者可以直接拖拽進(jìn)工程
添加資源文件SuperMap.bundle孕荠,SuperMap.bundle文件位于和samples目錄同級(jí)绢片,添加方式同上。
添加后的結(jié)構(gòu)如下圖:
3岛琼、下面開(kāi)始添加工程依賴的庫(kù)文件,如下圖巢株,選擇Project Name->TARGETS->Build Phases->Link Binary With Libraries,點(diǎn)擊"+"號(hào)
選擇libiMobileLite.a,點(diǎn)擊Add按鈕,將iMobile Lite 靜態(tài)庫(kù)添加至依賴庫(kù)中
相同的方式槐瑞,依次添加libsqlite3.tdb, libsqlite3.0.tdb, QuartzCore.framwork, CoreFoundation.framework, OpenGLES.framwork,UIKit.framwork,libstdc++.tdb阁苞;最終依賴庫(kù)清單如下:
4困檩、工程設(shè)置,我們選中工程點(diǎn)擊Bulid Settings
首先設(shè)置bitcode為no那槽,不設(shè)置會(huì)編譯失敗
在Other Linker Flags中添加-ObjC悼沿,注意大小寫哦
當(dāng)我們把靜態(tài)庫(kù)和依賴庫(kù)添加完成后,需要把頭文件的Path路徑也添加進(jìn)行骚灸,和添加依賴庫(kù)方式相似糟趾,選擇 Build Setting->Header Search Paths(可以在搜索框中輸入關(guān)鍵字)
PS:此處的設(shè)置應(yīng)該根據(jù)文件的相對(duì)位置進(jìn)行設(shè)置,需要設(shè)置相對(duì)路徑甚牲。
到此處環(huán)境全部設(shè)置完成义郑。
三、代碼實(shí)現(xiàn)
在ViewController.m文件中添加如下代碼:
#import "ViewController.h"
#import "RMMapView.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[self loadOnlineGL];
}
-(void)loadOnlineGL{
CGRect bounds = [[UIScreen mainScreen] bounds];
// 初始化RMMapView
RMMapView * glmapView = [[RMMapView alloc]initWithFrame:bounds];
NSString *url = @"https://www.supermapol.com/iserver/services/map-china_glvectortile/rest/OpenGLTile";
[glmapView openOnlineGLServer:url];
[self.view addSubview:glmapView];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
四丈钙、運(yùn)行效果如下
選擇真機(jī)調(diào)試非驮,點(diǎn)擊Run運(yùn)行