opengeospatial / ogcapi-routes

public repo for OGC API - Routes Standards Working Group
Other
10 stars 3 forks source link

create constraints conformance class to encapsulate intermediate waypoints #66

Open thanchevici opened 1 year ago

thanchevici commented 1 year ago

hi,

I suggest creating a conformance class "constraints" and moving the waypoints in it. This will allow the API to be more extensible in the future and address use cases like:

The server will have a conformance class "http://www.opengis.net/spec/ogcapi-routes-1/1.0.0-draft.1/conf/constraints" and will report it as such:

{
    "conformance" : [http://www.opengis.net/spec/ogcapi-routes-1/1.0.0-draft.1/conf/intermediate-waypoints],
    "route" :{
        "tolerance" : {
            "description": "distance tolerance in meters",
            "type" : number
        },
        "conformance" : "http://www.opengis.net/spec/rem/1.0.0-draft.1/conf/rem",
        "mode" : {
            "description": "mode of using the route"
            "type" : enum,
            "values" :[follow, avoid]
        }
    },
    "user_defined" :{
         "name" : "search and rescue patterns",
         "type" : enum,
         "values" : ["expanding_square", "coastline_follow"]
    }
}

we can treat route as a user defined, until we get a good handle on it, then create a conformance class for it.

thank you, Teodor

cportele commented 1 year ago

Meeting 2022-11-22: Discuss this together with the Restrictions requirements class, see #65, that is as part of version 1.1. Intermediate waypoints will stay as a requirements class in version 1.0.

thanchevici commented 1 year ago

Everyone:

in a combined routing scenario (road network + offroad) one may want to have a list of waypoints where the vehicle travels onroad followed by offroad, followed by onroad again.

This can be addressed currently by 3 requests to the server (start - wp1 -- on road, wp1-wp2 -- offroad, wp2-end on-road). Shall we consider addressing this via "waypoint segments' or similar?

Cheers, Teodor

thanchevici commented 1 year ago

This example shows how to handle multi-requests

{
  "inputs": {
    "name": "Reagan Airport to Capitol",
    "segments" : [
     {
        "start": [-77.037722, 38.851444],
        "end" : [ -77.009003, 38.889931],
        "preference" :"faster"
     },
     {
        "start": [-77.009003, 38.889931],
        "end" : [-77.019003, 38.989931],
        "preference" :"shorter"
     },
     {
        "start": [-77.019003, 38.989931],
        "end" : [-77.029003, 38.999931],
        "preference" :"offroad"
     }
    ]
    "weight": 8.5
  }
}

This example shows how you get a start/end, no waypoints

{
  "inputs": {
    "name": "Reagan Airport to Capitol",
    "segments": [
      {
      "start": [ -77.037722, 38.851444 ],
       "end":  [-77.009003, 38.889931],
      "preference": "fastest",
      }
    ],
    "weight": 8.5
  }
}
thanchevici commented 1 year ago

As per discussion on 24/01/2023 Dependent Routes A route may depend on a precomputed route (not necessarily from same server) Only the list of waypoints is relevant

Will be discussed as part of Constraints/Restrictions