Open thanchevici opened 1 year ago
The proposal makes sense to.
What should be discussed are the keys of the members. Typically we use in OGC API schemas "id" for something that is a local identifier (like in this case), "title" for a human-readable label or title (usually a few words) and "description" for a longer explanation. I think, we should require "id" and allow "title" and "description" with a recommendation to provide a "title".
Meeting 2022-11-22: Include in v1.0, but with a slightly different encoding:
"preferences": {
"fastest": { "title": "Computes fastest route" },
"shortest": { "title": "Computes shortest route" }
}
Also include "description" for now.
@cportele these two should be combined. The server will report a mode, with what preferences or options are available. Each mode on the server might have options. "fastest" and "shortest" are not the only one, and not all modes will have this. The goal again is to provide extensibility
Something like this:
{
"modes" : [
{
"motor-vehicle" :
{
"title": "Computes route for a car",
"options" : {
"type" : "array",
"items" : {
"type" : "object",
"enum": [
{"fastest": { "title": "Computes fastest route" }},
{"shortest": { "title": "Computes shortest route" }}]
}
}
},
"uav-survey" :
{
"title": "Generate a lawn mower pattern",
"options" : {
"type" : "object",
"properties":{
"forward-overlap": { "title": "forward overlap percentage", "type" : "integer", "minimum":10, "maximum":50 },
"lateral-overlap": { "title": "lateral overlap percentage", "type" : "integer", "minimum":10, "maximum":50 }
}
}
}
}
]
}
Meeting 2022-12-13:
@cportele @jeffharrison maybe we can do this:
make preferences optional. add an advanced option in the server that is an object. Servers not supporting advanced options will return an empty object
A server reporting with advanced options and "uav-survey" and "uav-inspection" modes will report the following schema for advancedOptions
"advancedOptions" :{
"uav-survey":{
"title":"Generate a lawn mower pattern",
"forward-overlap":{
"title":"forward overlap percentage",
"type":"integer",
"minimum":10,
"maximum":50
},
"lateral-overlap":{
"title":"lateral overlap percentage",
"type":"integer",
"minimum":10,
"maximum":50
},
"AGL":{
"title":"Above ground level flight altitude",
"type":"integer",
"minimum":100,
"maximum":500,
"unit":"feet"
}
},
"uav-inspection":{
"title":"generates an inspection pattern",
"distance":{
"title":"distance from point of interest",
"type":"integer",
"minimum":10,
"maximum":50,
"unit":"meter"
},
"vertical-step":{
"title":"Step in vertical movement",
"type":"integer",
"minimum":10,
"maximum":50,
"unit":"meter"
}
}
}
This will keep the API simple, will not require changes to mode or preferences. To me this looks like a simple solution.
Meeting 2023-01-03:
Hi, currently mode and preferences are strings only. This may create confusion on user side. I suggest changing them to include a description that can be used by clients
Best regards, Teodor