Piattaforma per agenti e API Mariner GPS Tools
Calcola l'errore di fuori rotta (XTE)
Calcola la distanza perpendicolare di una posizione da una rotta ortodromica.
Interfacce
/api/v1/xtecalculate_cross_track_errorRichiesta
Invia la richiesta come JSON. I client MCP passano gli stessi campi degli argomenti dello strumento.
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
}
}'{
"start": {
"lat": 50,
"lng": -4
},
"end": {
"lat": 50,
"lng": -2
},
"position": {
"lat": 50.2,
"lng": -3
}
}Risposta
REST racchiude il risultato del calcolo nella busta di successo standard. MCP restituisce gli stessi dati di calcolo come output strutturato dello strumento.
{
"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."
}
}Schemi
Le definizioni seguenti mostrano lo schema JSON completo utilizzato per convalidare gli input e descrivere gli output.
Schema di input
{
"type": "object",
"additionalProperties": false,
"properties": {
"start": {
"type": "object",
"additionalProperties": false,
"properties": {
"lat": {
"type": "string",
"description": "Latitude as signed decimal degrees (-33.8688), decimal degrees with a hemisphere letter (33.8688° S), degrees and decimal minutes (33° 52.13′ S) or DMS (51° 30′ 26.4″ N). S is negative. Do not combine a sign with a hemisphere letter."
},
"lng": {
"type": "string",
"description": "Longitude as signed decimal degrees (-4.15), decimal degrees with a hemisphere letter (4.15° W), degrees and decimal minutes (4° 09.0′ W) or DMS (0° 07′ 39″ W). W is negative. Do not combine a sign with a hemisphere letter."
}
},
"required": [
"lat",
"lng"
],
"description": "Track start waypoint (A)."
},
"end": {
"type": "object",
"additionalProperties": false,
"properties": {
"lat": {
"type": "string",
"description": "Latitude as signed decimal degrees (-33.8688), decimal degrees with a hemisphere letter (33.8688° S), degrees and decimal minutes (33° 52.13′ S) or DMS (51° 30′ 26.4″ N). S is negative. Do not combine a sign with a hemisphere letter."
},
"lng": {
"type": "string",
"description": "Longitude as signed decimal degrees (-4.15), decimal degrees with a hemisphere letter (4.15° W), degrees and decimal minutes (4° 09.0′ W) or DMS (0° 07′ 39″ W). W is negative. Do not combine a sign with a hemisphere letter."
}
},
"required": [
"lat",
"lng"
],
"description": "Track end waypoint (B)."
},
"position": {
"type": "object",
"additionalProperties": false,
"properties": {
"lat": {
"type": "string",
"description": "Latitude as signed decimal degrees (-33.8688), decimal degrees with a hemisphere letter (33.8688° S), degrees and decimal minutes (33° 52.13′ S) or DMS (51° 30′ 26.4″ N). S is negative. Do not combine a sign with a hemisphere letter."
},
"lng": {
"type": "string",
"description": "Longitude as signed decimal degrees (-4.15), decimal degrees with a hemisphere letter (4.15° W), degrees and decimal minutes (4° 09.0′ W) or DMS (0° 07′ 39″ W). W is negative. Do not combine a sign with a hemisphere letter."
}
},
"required": [
"lat",
"lng"
],
"description": "Vessel position (P)."
}
},
"required": [
"start",
"end",
"position"
]
}Schema di output
{
"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"
]
}Risultati del benchmark MCP
Misurato per questo strumento con e senza il server MCP di Mariner GPS Tools collegato.
Misurato a settembre 2026 · 9 modelli · 5 casi di navigazione · 3 ripetizioni · 270 osservazioni · MCP di produzione
Metodologia e risultati completi del benchmarkCollega un client IA