Home > Software design >  Creating URL based on an API key in OSRMRoadManager
Creating URL based on an API key in OSRMRoadManager

Time:02-26

I've signed up for an API on openrouteservice.org. How do I import it into OSRMRoadManager? I've tried all the combinations from the examples on their website, but my every try results in the 403 error with a comment org.json.JSONException: No value for code and a link to the following:

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

(I haven't used that API before, so I couldn't have used up the quota. The key is valid, as I have tested it with the links from the aforementioned website)

My Kotlin code (in my most recent attempt) is as following ([MY_API_KEY] is obviously replacing my real 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)

My guess is that the waypoint coordinates should be included differently in the link, but I don't know how to alter that.

CodePudding user response:

openrouteservice directions format is not identical to OSRM, so you cannot use OSRMRoadManager. If you really - really - want to use openrouteservice, you will have to develop corresponding openrouteserviceRoadManager.

Alternative: use one among the 3 routing services already accessible with OBP. Pros and cons here.

  • Related