啟動SAILS引擎
宣告SAILS與 SAILSMapView物件
在viewDidLoad中建立Sails與SailsMapView物件:
//Create sails object
sails = [[Sails alloc] init];
//Create map view
sailsMapView = [[SailsLocationMapView alloc] initWithFrame:[UIScreen mainScreen].bounds];
self.view = sailsMapView;
sailsMapView是view物件,可以透過storyboard將class bundle或是透過程式方式建立mapView物件。
SAILS類別整合了定位引擎與路徑規劃引擎,SAILSMapView類別則為向量地圖顯示引擎。 透過以下設定,SAILSMapView可以自動與SAILS相互溝通:
//set map view to sails object
[sails setSailsLocationMapView:sailsMapView];
從SAILS Cloud 載入室內定位專案
當您在SAILS Cloud建立專案並完成了地圖繪製與定位佈建,即可於SDK中透過loadCloudBuilding函式將該專案載入,token與building ID獲取方式請參考第一章簡介。
[sails loadCloudBuilding:@"YOUR_TOKEN"
buildingID:@"YOUR_BUILDING_ID"
success:^(void){
//do something if load building successfully
}
failure:^(NSError *error) {
//do something if error
}];
在呼叫loadCloudBuilding時會連接網路至SAILS Cloud下載您最新的室內定位專案檔案,若此時用戶無網路,則會載入上次已載入的版本。因此,用戶第一次打開APP仍需要連網才可以下載使用。只要下載完成後,接下來使用SAILS SDK提供的服務(地圖顯示、定位、路徑規劃)都不再需要連網。
啟動引擎
成功載入定位專案後,即可打開定位引擎與向量地圖顯示引擎。
定位引擎:
[sails startLocatingEngine];
向量地圖的部分可讓sailsMapView載入第一個樓層物件,如下:
floorNameList = [sails getFloorNameList];
[sailsMapView loadFloorMap:[floorNameList firstObject]];
取得用戶所在位置
SAILS SDK並不提供座標,有關定位點在地圖的顯示都包含在SDK裡,開發者並不需要特別設定。 若需要取得用戶目前所在區域,可透過
NSArray* regions = [sails getCurrentInRegions];
來取得,這裡留意會用Array方式表示的原因為用戶所在的區域可能被數個LocationRegion涵蓋。