交通换乘分析 |
支持交通换乘分析,如交通换乘站点、交通换乘路线、交通换乘方案分析。分析结果获取及展示可在主线程和监听器类中两种方式来实现。
交通换乘站点分析。分析结果可在主线程中进行获取及展示。
// 分析结果 public StopQueryResult result; public void StopQuery() throws InterruptedException, ExecutionException { // 构造分析参数 StopQueryParameters parameters = new StopQueryParameters(); parameters.keyWord = "人民"; parameters.returnPosition = true; StopQueryService service = new StopQueryService( "http://MyServerIP:8090/iserver/services/traffictransferanalyst-sample/restjsr/traffictransferanalyst/Traffic-Changchun"); MyStopQueryEventListener listener = new MyStopQueryEventListener(); // 和服务端异步通讯 service.process(parameters, listener); // 等待监听器执行完毕 try { listener.waitUntilProcessed(); } catch (Exception e) { e.printStackTrace(); } // 获取分析结果以及展示 Point2D pt = result.transferStopInfos[0].position; } // 监听器类 class MyStopQueryEventListener extends StopQueryEventListener { @Override public void onStopQueryStatusChanged(Object sourceObject, EventStatus status) { // 返回分析结果 result = (StopQueryResult) sourceObject; } }
交通换乘路线分析。分析结果可在监听器中进行获取及展示。
public void TransferPath() throws InterruptedException, ExecutionException { // 构造分析参数 TransferPathParameters parameters = new TransferPathParameters(); Integer[] pts = { 175, 164 }; parameters.points = pts; TransferLine tl = new TransferLine(); tl.endStopIndex = 9; tl.startStopIndex = 7; tl.lineID = 27; TransferLine[] transferLine = new TransferLine[] { tl }; parameters.transferLines = transferLine; TransferPathService service = new TransferPathService( "http://MyServerIP:8090/iserver/services/traffictransferanalyst-sample/restjsr/traffictransferanalyst/Traffic-Changchun"); MyTransferSolutonEventListener listener = new MyTransferSolutonEventListener(); // 和服务端异步通讯 service.process(parameters, listener); } // 监听器类 class MyTransferSolutonEventListener extends TransferPathEventListener { @Override public void onTransferPathStatusChanged(Object sourceObject, EventStatus status) { // 获取分析结果以及展示 TransferPathResult result = (TransferPathResult) sourceObject; Point2D pt = result.transferGuide.items[0].startPosition; } }
交通换乘方案分析。分析结果可在监听器中进行获取及展示。
public void TransferSolution() throws InterruptedException, ExecutionException { // 构造分析参数 TransferSolutionParameters parameters = new TransferSolutionParameters(); Integer[] pts = { 175, 164 }; parameters.points = pts; parameters.solutionCount = 5; parameters.transferPreference = TransferPreference.NONE; parameters.transferTactic = TransferTactic.LESS_TIME; parameters.walkingRatio = 10; TransferSolutionService service = new TransferSolutionService( "http://MyServerIP:8090/iserver/services/traffictransferanalyst-sample/restjsr/traffictransferanalyst/Traffic-Changchun"); MyTransferSolutonEventListener listener = new MyTransferSolutonEventListener(); // 和服务端异步通讯 service.process(parameters, listener); } // 监听器类 class MyTransferSolutonEventListener extends TransferSolutionEventListener { @Override public void onTransferSolutionStatusChanged(Object sourceObject, EventStatus status) { // 获取分析结果以及展示 TransferSolutionResult result = (TransferSolutionResult) sourceObject; } }
完整示例可参考Demo中的交通换乘示例TrafficTransferAnalystDemo。