gpt4 book ai didi

java - 使用 GraphHopper 查找路线上的点

转载 作者:行者123 更新时间:2023-12-02 09:16:13 24 4
gpt4 key购买 nike

我正在使用 GraphHopper 来查找点之间的路线。如果车辆以 x 的平均速度移动,我想预测给定时间 t 车辆的位置。 GraphHopper 有一个用于查找等时线的模块,但我不知道如何在单个路线上运行它。下面是我当前使用的代码

    List<GHPoint> points = new ArrayList<>();

points.add(origin);

for (GHPoint pnt : waypoints) {
points.add(pnt);
}

points.add(destination);

GHRequest req = new GHRequest(points).
setWeighting("shortest").
setVehicle("car").
setLocale(Locale.US);

GHResponse rsp = graphHopper.route(req);

// first check for errors
if(rsp.hasErrors()) {
// handle them!
// rsp.getErrors()
List<Throwable> errors = rsp.getErrors();
return null;
}

PathWrapper bestPath = rsp.getBest();

最佳答案

要解决您的问题,您可以使用位于 hereIsochrone Request API .

要预测您的车辆可能位于的 B 点,我们需要提供以下参数:

  1. point - 指定起始坐标,必需参数;
  2. time_limit - 指定车辆应行驶的时间。很快。这很神奇,请在此处提供您的 t 参数;
  3. vehicle - 应计算路线的车辆配置文件。默认为汽车
  4. distance_limit - 指定车辆应行驶的距离。以米为单位。您可以使用 (t x v) 公式来计算它,因为您指定了车辆以平均速度移动。

就是这样。 GraphHopper API 以 GeoJson 格式向您返回多边形列表。

示例:

int t = 600; // in seconds
int v = 10; // in meters per second
int s = t * v; // in meters
IsochroneApi isochrone = new IsochroneApi();
isochrone.setApiClient(GHApiUtil.createClient());
try {
// Please note: the request string for the point has the order "lat,lon" but the response contains
// an array with the order [lon,lat]
IsochroneResponse rsp = isochrone.getIsochrone("51.183728,14.42801", t, s, VehicleProfileId.CAR,
3, false, "fastest");
final IsochroneResponsePolygon isochrone0 = rsp.getPolygons().get(0);
List<List<BigDecimal>> exteriorRing = isochrone0.getGeometry().getCoordinates().get(0);
System.out.println(exteriorRing);
double lon0 = ((Number) exteriorRing.get(0).get(0)).doubleValue();
double lat0 = ((Number) exteriorRing.get(0).get(1)).doubleValue();
System.out.println("first coord " + lat0 + ", " + lon0);
} catch (Exception ex) {
throw new RuntimeException(ex);
}

关于java - 使用 GraphHopper 查找路线上的点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58963182/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com