路徑規劃引擎使用
SAILSMapView與客製化的路徑規劃管理員
SAILSMapView中已有一個RoutingManager(透過mSAILSMapView.getRoutingManager())來進行路徑規劃管理,對於開發者來說可以很簡單的設定起始、終止點與路徑規劃種類(一般、可走樓梯、僅搭電梯、手扶梯等模式),對於一般導航APP功能已足夠。 但若需要進一步搭配應用層的UI,可能需要些許客製化,此時可參考我們Android範例中的PathRoutingManager的設計方式來進行。本章節僅對SAILSMapView中的RoutingManager來進行說明。
設定路徑規劃的起始點與終止點
起始點與終止點需透過LocationRegion物件來進行設定。
//設定起始點
mSailsMapView.getRoutingManager().setStartRegion(locationRegionStart);
//設定起始點
mSailsMapView.getRoutingManager().setTargetRegion(locationRegionTarget);
若要設定起始點為用戶所在位置,則可透過PathRoutingManager.MY_LOCATION來表示用戶當前位置作為起始點。
mSailsMapView.getRoutingManager().setStartRegion(PathRoutingManager.MY_LOCATION);
設定起終點Icon
//起點 Icon
mSailsMapView.getRoutingManager().setStartMakerDrawable(drawableStart);
//終點 Icon
mSailsMapView.getRoutingManager().setTargetMakerDrawable(drawableTarget);
路徑規劃模式設定
本SDK支援數種路徑規劃模式,其設定方式如下:
//一般模式
mSailsMapView.getRoutingManager().setRouteMode(PathRoutingManager.NORMAL_ROUTING);
//電梯與手扶梯模式
mSailsMapView.getRoutingManager().setRouteMode(PathRoutingManager.ELEVATOR_AND_ESCALATOR);
//僅走樓梯
mSailsMapView.getRoutingManager().setRouteMode(PathRoutingManager.STAIR_ONLY);
//僅走手扶梯
mSailsMapView.getRoutingManager().setRouteMode(PathRoutingManager.ESCALATOR_ONLY);
//僅走電梯
mSailsMapView.getRoutingManager().setRouteMode(PathRoutingManager.ELEVATOR_ONLY);
開始與終止路徑規劃
路徑規劃本身由Handler組成,固定每一定週期會更新一次。對於用戶來說,他可以實時取得最短路徑規劃,就算用戶走其他方向,本路徑規劃皆會告知其至目標點的最短路徑。開始與終止路徑規劃的方式如下:
//開始路徑規劃
mSailsMapView.getRoutingManager().enableHandler();
//終止路徑規劃
mSailsMapView.getRoutingManager().disableHandler();
路徑規劃有觸發事件,請參考觸發事件章節了解。