tsa*_*eht 5 java google-maps google-distancematrix-api
我在我的 Java 项目中添加了Google Maps API Java Client的依赖项。我有一组起始距离、目的地距离以及 GeoApiContext 如下:
GeoApiContext context = new GeoApiContext().setApiKey(MY_API_KEY);
String[] destinationAddress = {"40.7127837,-74.0059413", "33.9533487,-117.3961564", "38.6270025,-90.19940419999999"};
String[] originAddress = {"12.8445,80.1523"};
我想获得这些点之间的(飞机?)距离。我知道我们可以发送一个简单的 HTTP 请求,例如https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&origins=40.6655101,-73.89188969999998&destinations=40.690515%73.6334271&key=YOUR_API_KEY
But I want to use the JAVA Google Maps API。我试图做的DistanceMatrixApiRequest s = DistanceMatrixApi.getDistanceMatrix(context, originAddress, destinationAddress);,但没有getArrivalTimes或getDistanceMatrix或反正发送请求。我很困扰。请帮忙。谢谢
尝试这个 :
\n\nprivate static final String API_KEY = "YOUR_API_KEY";\nprivate static final GeoApiContext context = new GeoApiContext().setApiKey(API_KEY);\n\n\npublic DistanceMatrix estimateRouteTime(DateTime time, Boolean isForCalculateArrivalTime, DirectionsApi.RouteRestriction routeRestriction, LatLng departure, LatLng... arrivals) {\n    try {\n        DistanceMatrixApiRequest req = DistanceMatrixApi.newRequest(context);\n        if (isForCalculateArrivalTime) {\n            req.departureTime(time);\n        } else {\n            req.arrivalTime(time);\n        }\n        if (routeRestriction == null) {\n            routeRestriction = DirectionsApi.RouteRestriction.TOLLS;\n        }\n        DistanceMatrix trix = req.origins(departure)\n                .destinations(arrivals)\n                .mode(TravelMode.DRIVING)\n                .avoid(routeRestriction)\n                .language("fr-FR")\n                .await();\n        return trix;\n\n    } catch (ApiException e) {\n        System.out.println(e.getMessage());\n    } catch (Exception e) {\n        System.out.println(e.getMessage());\n    }\n    return null;\n}\nDistanceMatrix 响应对象是这样的:
\n\n{\n   "destination_addresses" : [ "San Francisco, Californie, \xc3\x89tats-Unis" ],\n   "origin_addresses" : [ "Seattle, Washington, \xc3\x89tats-Unis" ],\n   "rows" : [\n      {\n         "elements" : [\n            {\n               "distance" : {\n                  "text" : "1 300 km",\n                  "value" : 1299878\n               },\n               "duration" : {\n                  "text" : "12 heures 32 minutes",\n                  "value" : 45146\n               },\n               "status" : "OK"\n            }\n         ]\n      }\n   ],\n   "status" : "OK"\n}\n代码快照如下:
GeoApiContext context = new GeoApiContext().setApiKey(MY_API_KEY).setQueryRateLimit(QPS);
    try {
        DistanceMatrixApiRequest req = DistanceMatrixApi.newRequest(context); 
        DistanceMatrix trix = req.origins("Vancouver BC","Seattle")
                .destinations("San Francisco","Victoria BC")
                .mode(TravelMode.DRIVING)
                .avoid(RouteRestriction.HIGHWAYS)
                .language("fr-FR")
                .await();
        //Do something with result here
        // ....
    } catch(ApiException e){
        output += this.printError(e);
    } catch(Exception e){
        System.out.println(e.getMessage());
    }   
| 归档时间: | 
 | 
| 查看次数: | 14843 次 | 
| 最近记录: |