基于 OSRMRoadManager 中的 API 键创建 URL

Creating URL based on an API key in OSRMRoadManager

我已经在 openrouteservice.org 上注册了 API。如何将其导入 OSRMRoadManager?我已经在 website 上尝试了示例中的所有组合,但我的每次尝试都会导致 403 错误,并带有以下注释 org.json.JSONException: No value for code 和 link:

{
  "error": "Daily quota reached or API key unauthorized"
}

(我之前没有用过那个API,所以我不可能用完配额。密钥是有效的,因为我用link测试过上述网站)

我的 Kotlin 代码(在我最近的尝试中)如下([MY_API_KEY] 显然是在替换我的真实密钥):

    val roadManager = OSRMRoadManager(context, context?.packageName)
    (roadManager as OSRMRoadManager).setService("https://api.openrouteservice.org/v2/directions/driving-car/geojson?api_key=[MY_API_KEY]")
    val waypoints = ArrayList<GeoPoint>()
    waypoints.add(GeoPoint(lastLocLat, lastLocLong)) //last known location
    val endPoint = GeoPoint(randomOverlay.getItem(0).point.latitude, randomOverlay.getItem(0).point.longitude) //destination
    waypoints.add(endPoint)
    val road = roadManager.getRoad(waypoints)

我的猜测是 link 中应该包含不同的航路点坐标,但我不知道如何更改它。

openrouteservice 方向格式与 OSRM 不同,因此您不能使用 OSRMRoadManager。 如果你真的 - 真的 - 想使用openrouteservice,你将不得不开发相应的openrouteserviceRoadManager。

备选方案:使用 OBP 可访问的 3 种路由服务中的一种。优缺点 here.