向量地圖引擎使用
設定SAILSMapView的顯示模式
地圖控制分為三種模式:
- 一般模式(GENERAL)
- 定位中心鎖定模式(LOCATION_CENTER_LOCK)
- 隨用戶手持手機方向地圖旋轉模式(FOLLOW_PHONE_HEADING)
- 一般模式(General):用戶正常使用地圖,定位點位置與用戶所觀看地圖的區域無直接關係。設定方式為:
[sailsMapView setMapControlMode:GeneralMode];
- 定位中心鎖定模式(LOCATION_CENTER_LOCK):在定位中心鎖定的模式情況下,定位點永遠在螢幕的中心點上,不管用戶是否移動,定位點都會保持在地圖的中心。對用戶來說,他不需要花額外力氣去拉移地圖,鎖定於中心將有助於用戶體驗。設定方式為:
[sailsMapView setMapControlMode:LocationCenterLockMode];
- 隨用戶手持手機方向地圖旋轉模式(FOLLOW_PHONE_HEADING):地圖會隨著用戶手持手機的方向跟著旋轉。這對於用戶體驗至關重要,用戶可透過此模式更快理解空間與地圖對應的關係。通常在這個模式時,我們會直接搭配CENTER_LOCK一起使用,在設定上使用OR將兩種模式整合。設定的模式如下:
[sailsMapView setMapControlMode:LocationCenterLockMode | FollowPhoneHeagingMode];
設定定位點顯示樣式
定位點的樣式可以透過setLocationMarker來進行設定,如下:
[sailsMapView setLocationMarker:[UIImage imageNamed:@"myloc_cir"] arrowImage:[UIImage imageNamed:@"myloc_arr"] accuracyCirclePaint:accuracyCirclePaint iconFrame:100];
第一與第二個參數分別為無箭頭與有箭頭(定位引擎已收斂方向情況下箭頭才會出現)對應之icon,第三個參數為精度圓的著色樣式,第四個為icon大小參數。
讀取POI(LocationRegion)名稱對應語言的設置
SAILS向量地圖引擎雖然在地圖上未支援切換多國語系,但地圖內之POI(類別LocationRegion)可支援三種語系:英文、繁中、簡中,透過呼叫getName時,可得到該POI對應語系之名稱(地圖需要建立該語系POI之名稱,可參考SAILS地圖標籤設置)
//getName 取英文欄位資訊
[LocationRegion setFontLanguage:ENGLISH];
//getName 取繁體中文欄位資訊
[LocationRegion setFontLanguage:CHINESE_BIG5];
//getName取簡體中文欄位資訊
[LocationRegion setFontLanguage:CHINESE_SM];
地圖Icon管理員(Marker Manger)
MarkerManger可以幫開發者管理所有Marker圖示,包含樓層切換隱藏與顯示皆可由MarkerManager來自動完成。MarkerManager會需要對應LocationRegion物件。
設定某個LocationRegion的Icon樣式
若開發者需要標示某個LocationRegion上的圖示可透過本Method完成。
[[sailsMapView getMarkerManager] setLocationRegionMarker:[locationRegions firstObject] andImage:[UIImage imageNamed:@"start_point"] andMarkerFrame:48 andIsBoundCenter:true];
第一個參數為對應之LocationRegion物件,第二個參數為餵入之Icon。 第三個為該Marker的大小,第四參數若設為true則以Icon圖片中心作為基準點,false的話則以Icon中心下方作為中心點。
清除所有Marker顯示
[[sailsMapView getMarkerManager] clearMarkers];