Plateforme de développement Mariner GPS Tools
Calculer l'écart de route (XTE)
Calculer l'écart de route par rapport à une route entre deux waypoints
Interfaces
POST
Point de terminaison REST
/api/v1/xteMCP
Nom de l'outil
calculate_cross_track_errorDemande
Envoyez la demande sous le nom JSON. Les clients MCP transmettent les mêmes champs que les arguments de l'outil.
cURLshell
curl -X POST https://marinergps.tools/api/v1/xte \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "content-type: application/json" \
-d '{
"start": {
"lat": 50,
"lng": -4
},
"end": {
"lat": 50,
"lng": -2
},
"position": {
"lat": 50.2,
"lng": -3
}
}'Corps de la demandejson
{
"start": {
"lat": 50,
"lng": -4
},
"end": {
"lat": 50,
"lng": -2
},
"position": {
"lat": 50.2,
"lng": -3
}
}Réponse
REST enveloppe le résultat du calcul dans l'enveloppe de réussite standard. MCP renvoie les mêmes données de calcul que la sortie structurée de l'outil.
JSON
{
"ok": true,
"data": {
"xte": {
"km": 21.761189017395775,
"nm": 11.75010633826597,
"mi": 13.52177178092823,
"m": 21761.189017395776,
"ft": 71394.95500330106
},
"side": "port",
"alongTrack": {
"km": 71.47269030854304,
"nm": 38.592179440929975,
"mi": 44.4110570497097,
"m": 71472.69030854304,
"ft": 234490.3812224672
},
"remaining": {
"km": 71.47269030856953,
"nm": 38.59217944094428,
"mi": 44.41105704972615,
"m": 71472.69030856952,
"ft": 234490.3812225541
},
"nearestPoint": {
"lat": 50.00429719577797,
"lng": -3.0000000000002274
},
"beforeStart": false,
"beyondEnd": false
}
}{
"ok": false,
"error": {
"code": "invalid_request",
"message": "Invalid request input."
}
}Schémas
Les définitions ci-dessous montrent le schéma JSON complet utilisé pour valider les entrées et décrire les sorties.
Schéma d’entrée
{
"type": "object",
"additionalProperties": false,
"properties": {
"start": {
"type": "object",
"additionalProperties": false,
"properties": {
"lat": {
"type": "string",
"description": "Latitude as decimal degrees or a coordinate string such as 51° 30′ 26.4″ N."
},
"lng": {
"type": "string",
"description": "Longitude as decimal degrees or a coordinate string such as 0° 07′ 39″ W."
}
},
"required": [
"lat",
"lng"
],
"description": "Track start waypoint (A)."
},
"end": {
"type": "object",
"additionalProperties": false,
"properties": {
"lat": {
"type": "string",
"description": "Latitude as decimal degrees or a coordinate string such as 51° 30′ 26.4″ N."
},
"lng": {
"type": "string",
"description": "Longitude as decimal degrees or a coordinate string such as 0° 07′ 39″ W."
}
},
"required": [
"lat",
"lng"
],
"description": "Track end waypoint (B)."
},
"position": {
"type": "object",
"additionalProperties": false,
"properties": {
"lat": {
"type": "string",
"description": "Latitude as decimal degrees or a coordinate string such as 51° 30′ 26.4″ N."
},
"lng": {
"type": "string",
"description": "Longitude as decimal degrees or a coordinate string such as 0° 07′ 39″ W."
}
},
"required": [
"lat",
"lng"
],
"description": "Vessel position (P)."
}
},
"required": [
"start",
"end",
"position"
]
}Schéma de sortie
{
"type": "object",
"additionalProperties": false,
"properties": {
"xte": {
"type": "object",
"additionalProperties": false,
"properties": {
"nm": {
"type": "number"
},
"mi": {
"type": "number"
},
"km": {
"type": "number"
},
"m": {
"type": "number"
},
"ft": {
"type": "number"
}
},
"required": [
"nm",
"mi",
"km",
"m",
"ft"
],
"description": "Cross track error magnitude — perpendicular distance from position to track."
},
"side": {
"type": "string",
"enum": [
"port",
"starboard",
"on-track"
],
"description": "Side of the track the position lies on, travelling start → end."
},
"alongTrack": {
"type": "object",
"additionalProperties": false,
"properties": {
"nm": {
"type": "number"
},
"mi": {
"type": "number"
},
"km": {
"type": "number"
},
"m": {
"type": "number"
},
"ft": {
"type": "number"
}
},
"required": [
"nm",
"mi",
"km",
"m",
"ft"
],
"description": "Distance from start along the track to the point abeam of the position. Negative when the position is abeam a point behind the start."
},
"remaining": {
"type": "object",
"additionalProperties": false,
"properties": {
"nm": {
"type": "number"
},
"mi": {
"type": "number"
},
"km": {
"type": "number"
},
"m": {
"type": "number"
},
"ft": {
"type": "number"
}
},
"required": [
"nm",
"mi",
"km",
"m",
"ft"
],
"description": "Distance remaining along the track from the abeam point to the end waypoint."
},
"nearestPoint": {
"type": "object",
"additionalProperties": false,
"description": "Nearest point on the track (foot of the perpendicular), decimal degrees.",
"properties": {
"lat": {
"type": "number"
},
"lng": {
"type": "number"
}
},
"required": [
"lat",
"lng"
]
},
"beforeStart": {
"type": "boolean",
"description": "True when the abeam point falls before the start waypoint."
},
"beyondEnd": {
"type": "boolean",
"description": "True when the abeam point falls beyond the end waypoint."
}
},
"required": [
"xte",
"side",
"alongTrack",
"remaining",
"nearestPoint",
"beforeStart",
"beyondEnd"
]
}