java Google Maps API v3:多方向请求需要不同的时间才能得到响应
我想在Google Maps API v3、GWT 2.5.1中绘制五条不同的路线。我初始化了一个路由,它在这个类中设置了它的DirectionDisplay
和DirectionsRequest
当我开始我的网络项目时,有时只显示我的第一条路线,有时全部显示五条路线,所以我决定做一个System.out.print(m)
结果是:
01234->;正如所料,显示的所有路线
10234->;错误,仅显示第一条路线
为什么谷歌会在我的第一个请求之前满足我的第二个请求?我试图使用Thread.sleep(1000)
来确保我的请求有时间按顺序返回,同样也是计时器/计时器任务,但没有成功。有什么想法吗
DirectionsService o = DirectionsService.newInstance();
for (Integer i = 0; i < 4; i++) { //routes.size()
final int m = i;
final Route route = new Route("Route " + i.toString());
route.initRoute(m, getRoutingPresenter(), adressData, addressIndex);
//here i initialize the DirectionsRequests and its Displays, which
//i set in this class after execution.
o.route(directionsRequest, new DirectionsResultHandler() {
@Override
public void onCallback(DirectionsResult result,DirectionsStatus status) {
if (status == DirectionsStatus.OK) {
System.out.print(m);
...
}
}
);
}
}
# 1 楼答案
谷歌可以花多长时间来处理你的请求,你应该相应地编写代码。这适用于任何HTTP流量。即使远程服务器保证为所有请求提供固定的服务时间,Internet也不会,您的请求可能会通过任何旧的路径
您可以修改处理代码,使响应顺序无关紧要,也可以编写代码,使其等待所有响应返回,然后自行排序
我会推荐第一种,除非有非常具体的重要原因