交通换乘分析 |
支持交通换乘分析,如交通换乘站点、交通换乘路线、交通换乘方案分析。分析结果获取及展示可在主线程和监听器类中两种方式来实现。
交通换乘站点分析。分析结果可在主线程中进行获取及展示。
// 分析结果
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。