Quadrant bearing to azimuth converter
Convert a quadrant bearing into a whole circle azimuth without having to remember which quadrants require addition or subtraction.
Run — free
Enter a compact bearing such as S 60 W or a written form such as south sixty degrees west. The converter reads the starting north or south reference, applies the angle toward east or west, and returns an azimuth measured clockwise from north from 0 through 359.999 degrees, together with a normalized version of the original bearing.
Understand the two direction systems
A quadrant bearing describes a direction relative to either north or south, then turns by an angle toward east or west. For example, S 60 W begins at south and turns sixty degrees toward west. This notation always uses an angle between zero and ninety degrees because each expression stays within one quadrant. A whole circle azimuth uses a single scale instead: north is 0 degrees, east is 90 degrees, south is 180 degrees, and west is 270 degrees. Values increase clockwise until the scale returns to north. Converting between the systems therefore depends on both cardinal letters, not only on the angle. The same sixty-degree angle produces 60 degrees for N 60 E, 120 degrees for S 60 E, 240 degrees for S 60 W, and 300 degrees for N 60 W. This converter performs that quadrant-specific arithmetic and reports one unambiguous clockwise direction suitable for surveying notes, navigation calculations, mapping data, and engineering records. It also returns normalized quadrant notation so the interpretation can be checked immediately.
Enter and verify a bearing
Provide the complete bearing in the text field. Compact notation may use single-letter directions, spaces, a numeric angle, and an optional degree marker, as in N 32.5 E or S 60° W. Written English is also accepted, including north thirty two degrees east and south sixty degrees west. Hyphenated number words such as forty-five are supported. The first direction must be north or south, while the last must be east or west; reversing those roles is not valid quadrant-bearing notation. Angles may include decimals but must remain between zero and ninety inclusive. After conversion, compare the returned normalized bearing with the source before copying the azimuth. This quick check catches transcription mistakes such as entering east where the field note says west. You can also make a reasonableness check from the result: northeast azimuths lie from 0 to 90, southeast from 90 to 180, southwest from 180 to 270, and northwest from 270 to 360. The output uses degrees and measures clockwise from true or assumed north according to your source data.
Use the result without changing its reference
An azimuth identifies an angular direction, but it does not establish which north reference the original bearing used. A survey may refer to true north, grid north, or magnetic north, and this conversion preserves that reference rather than correcting it. If the source is magnetic and the destination system expects true north, apply the appropriate declination separately and document its date and sign. Likewise, this tool converts direction notation only; it does not calculate distance, coordinates, convergence, or a reciprocal course. Boundary inputs deserve attention. A zero-degree bearing points along its north or south reference regardless of whether east or west is written, while a ninety-degree bearing lands exactly on east or west. The converter consistently expresses north as 0 degrees, never 360 degrees, because both values indicate the same direction but 0 is the conventional normalized azimuth. For automated workflows, send one bearing per request and store both returned fields. The azimuth is ready for numerical use, while the normalized bearing provides a readable audit value. API processing costs $0.002 per request, and the algorithm uses no network service or changing reference table.
What you can do with it
Standardize survey field notes
Turn quadrant bearings from deeds or field books into azimuth values for a consistent calculation table.
Prepare mapping imports
Convert directional text into clockwise degree values before loading linework into GIS or CAD software.
Check navigation exercises
Verify quadrant-to-azimuth arithmetic while keeping a normalized bearing beside each answer.
FAQ
How is S 60 W converted?
A southwest bearing adds the angle to 180 degrees, so S 60 W becomes an azimuth of 240 degrees.
Which bearing formats are accepted?
Use north or south, an angle, then east or west. Compact forms such as N 32.5 E and written English forms such as north thirty degrees east are accepted.
Can the angle exceed 90 degrees?
No. Quadrant-bearing angles run from 0 through 90 degrees. Use a whole circle azimuth directly when the value lies outside that range.
Does this correct magnetic declination?
No. It changes notation while preserving the north reference of the source bearing. Apply magnetic, true, or grid corrections separately.
Why does north return 0 instead of 360?
Zero and 360 degrees identify the same direction. The result is normalized to the conventional whole circle range beginning at 0 degrees.
What does the API conversion cost?
Each request costs $0.002. The browser version can run the same deterministic conversion locally.
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/quadrant-to-azimuth \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"south sixty degrees west"}'const res = await fetch("https://api.kit.forhosting.com/geo/quadrant-to-azimuth", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "south sixty degrees west"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/quadrant-to-azimuth",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "south sixty degrees west"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/quadrant-to-azimuth", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"south sixty degrees west"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"south sixty degrees west"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/quadrant-to-azimuth", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"text": "south sixty degrees west"
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.quadrant_to_azimuth",
"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. |