交通换乘分析

发送反馈


支持交通换乘分析,如交通换乘站点、交通换乘路线、交通换乘方案分析。分析结果获取及展示可在主线程和监听器类中两种方式来实现。

交通换乘站点分析。分析结果可在主线程中进行获取及展示。

    // 分析结果
    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。