Java Google Maps API v3:多方向请求需要不同的时间才能得到响应

Java Google Maps API v3:多方向请求需要不同的时间才能得到响应,java,gwt,google-maps-api-3,Java,Gwt,Google Maps Api 3,我想在GoogleMapsAPIv3,GWT2.5.1中画五条不同的路线。我初始化一条路由,该路由在此类中设置其方向显示和方向请求 当我开始我的web项目时,有时只显示我的第一条路线,有时全部显示五条路线,所以我决定制作一个System.out.print(m) 结果是: 01234->如预期,显示所有路线 10234->错误,仅显示第一条路线 为什么谷歌会在我的第一个请求之前满足我的第二个请求?我尝试使用Thread.sleep(1000)来确保我的请求有时间按顺序返回,也使用Timer/

我想在GoogleMapsAPIv3,GWT2.5.1中画五条不同的路线。我初始化一条路由,该路由在此类中设置其
方向显示
方向请求

当我开始我的web项目时,有时只显示我的第一条路线,有时全部显示五条路线,所以我决定制作一个
System.out.print(m)

结果是:

  • 01234->如预期,显示所有路线

  • 10234->错误,仅显示第一条路线

为什么谷歌会在我的第一个请求之前满足我的第二个请求?我尝试使用
Thread.sleep(1000)
来确保我的请求有时间按顺序返回,也使用Timer/TimerTasks,但没有成功。有什么想法吗

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);
                       ...
            }
        }
    );
}
}
DirectionsService o=DirectionsService.newInstance();
对于(整数i=0;i<4;i++){//routes.size()
最终int m=i;
最终路线=新路线(“路线”+i.toString());
initRoute(m,getRoutingPresenter(),AddressData,addressIndex);
//这里我初始化DirectionRequests及其显示,这
//我在执行后进入这个类。
o、 路由(directionsRequest,新的DirectionsResultHandler(){
@凌驾
公共void onCallback(DirectionsResult结果、DirectionsStatus状态){
if(status==directionstatus.OK){
系统输出打印(m);
...
}
}
);
}
}

谷歌可以花多长时间来处理您的请求,您应该相应地编写代码。这适用于任何HTTP流量。即使远程服务器保证为所有请求提供固定的服务时间,Internet也不会,您的请求可能会通过任何旧的路由

您可以修改处理代码,使响应顺序无关紧要,也可以编写代码,使其等待所有响应返回,然后对顺序本身进行排序

除非有非常具体的重要原因,否则我会推荐第一种