Horizontal sextant angle distance
Turn a horizontal sextant angle between two charted marks into distances: with a baseline of 100 between A and B and an angle of 60°, the circle through both marks and you has a radius of 57.735, and you are 86.6025 from the baseline. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Baseline
- 100
- Angle deg
- 60
- Decimal places
- 4
- Radius
- 57.735
- Distance to baseline
- 86.6025
Distance from chord AB to observer given horizontal sextant angle. Search intent: horizontal sextant angle fix. No network calls or random seeds are required. Failed jobs are not billed.
From one angle to a distance
A horizontal sextant angle is measured between two marks, A and B, whose distance apart you can read on the chart; that distance is the baseline. From those two numbers the calculator gives two results. The first is the radius of the circle through A, B and your position, found by dividing the baseline by twice the sine of the angle. The second is your distance from the baseline, found by dividing half the baseline by the tangent of half the angle. With a baseline of 100 and an angle of 60°, the radius is 57.735 and the distance is 86.6025, in the same unit as the baseline.
Getting a sound result
Enter the angle in degrees and the baseline in one unit, and read both results in that same unit. The distance formula treats you as standing square in front of the middle of the baseline, so the result is most meaningful when the two marks appear roughly evenly placed on either side of your position. Small angles produce large distances, so read the angle carefully. Values that are missing or are not numbers are refused before any calculation, and when you ask for decimals the rounding is applied once, half up, at the end.
When to use it
Use when search intent matches. Distance from chord AB to observer given horizontal sextant angle. English-only delivery; Nitro hydrates other locales.
No network calls or random seeds are required. Failed jobs are not billed. No network calls or random seeds are required.
Failed jobs are not billed.
What you can do with it
Teaching
Pinned goldens.
FAQ
What is a horizontal sextant angle?
It is the angle you measure, holding the sextant flat, between two marks you can identify on the chart, A and B. Together with their charted distance apart, that single angle tells you how far away you are.
What does the radius in the result mean?
It is the radius of the circle that passes through both marks and your position. From any point on that arc the two marks appear under the same angle, so it is your circle of position; it equals the baseline divided by twice the sine of the angle.
In what unit is the distance given?
In the same unit as the distance between the marks that you enter. If you measure it in metres on the chart, the radius and the distance come out in metres; in nautical miles, they come out in nautical miles.
How are the results rounded?
Only if you ask for decimals, and only once, from the unrounded values, rounding half up. In the example, with 4 decimals, the distance from the baseline shows as 86.6025.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/geo/horizontal-sextant-angle \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"baseline":100,"angle_deg":30}'const res = await fetch("https://api.kit.forhosting.com/geo/horizontal-sextant-angle", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"baseline": 100,
"angle_deg": 30
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/horizontal-sextant-angle",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"baseline": 100,
"angle_deg": 30
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/horizontal-sextant-angle", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"baseline":100,"angle_deg":30}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"baseline":100,"angle_deg":30}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/horizontal-sextant-angle", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"baseline": 100,
"angle_deg": 30
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.horizontal_sextant_angle",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
The calculator is free in the browser, deterministic, and identical on the API path. Inputs are validated before arithmetic so invalid payloads fail with invalid_input. Half-up rounding is applied once from raw IEEE values when decimals are requested.
How it works
Distance from chord AB to observer given horizontal sextant angle. No network calls or random seeds are required. Failed jobs are not billed. No network calls or random seeds are required. Failed jobs are not billed. R=AB/(2 sin θ); distance_to_baseline=(AB/2)/tan(θ/2). The calculator is free in the browser, deterministic, and identical on the API path. Inputs are validated before arithmetic so invalid payloads fail with invalid_input. Half-up rounding is applied once from raw IEEE values when decimals are requested. The calculator is free in the browser, deterministic, and identical on the API path. Inputs are validated before arithmetic so invalid payloads fail with invalid_input. Half-up rounding is applied once from raw IEEE values when decimals are requested. The calculator is free in the browser, deterministic, and identical on the API path. Inputs are validated before arithmetic so invalid payloads fail with
Inputs, limits and rounding
Optional decimals use half-up once. Optional output fields are omitted, never null. No network calls or random seeds are required. Failed jobs are not billed. No network calls or random seeds are required. Failed jobs are not billed. Provide required JSON fields with DOM-safe names. Invalid types raise invalid_input. The calculator is free in the browser, deterministic, and identical on the API path. Inputs are validated before arithmetic so invalid payloads fail with invalid_input. Half-up rounding is applied once from raw IEEE values when decimals are requested. The calculator is free in the browser, deterministic, and identical on the API path. Inputs are validated before arithmetic so invalid payloads fail with invalid_input. Half-up rounding is applied once from raw IEEE values when decimals are requested.
When to use it
The calculator is free in the browser, deterministic, and identical on the API path. Inputs are validated before arithmetic so invalid payloads fail with invalid_input. Half-up rounding is applied once from raw IEEE values when decimals are requested. The calculator is free in the browser, deterministic, and identical on the API path. Inputs are validated before arithmetic so invalid payloads fail with invalid_input. Half-up rounding is applied once from raw IEEE values when decimals are requested.
Integration use cases
Quick check
Free widget.
Automation
API same JSON.
Technical questions
Free?
Yes tier A.
Network?
No.
Bad input?
invalid_input.
API?
Yes.
Locales?
EN-only; Nitro hydrates.