A derived position is never styled as a fix. The mode badge comes from the receiver’s own mode flag, never from the name on the wire, and a dead-reckoned position says so with the time of its last valid fix. The point sits inside two rings, because where it probably is and how far out it could be unnoticed are different questions: a containment radius with no stated probability is drawn broken and reads UNBOUNDED. On the Royal Majesty the console "switched from GPS to DR-derived positions without changing its display in any perceivable way".
import 'overscan'
import 'overscan/overscan.css'
<ov-position
class="liveel"
label="OWN SHIP"
requirement="200"
requirement-for="1 NM TRACK TOLERANCE"
></ov-position>import { OvPosition } from 'overscan/react'
<OvPosition
class="liveel"
label="OWN SHIP"
requirement="200"
requirement-for="1 NM TRACK TOLERANCE"
/>import { OvPosition } from 'overscan/vue'
<OvPosition
class="liveel"
label="OWN SHIP"
requirement="200"
requirement-for="1 NM TRACK TOLERANCE"
/>import OvPosition from 'overscan/svelte/OvPosition.svelte'
<OvPosition
class="liveel"
label="OWN SHIP"
requirement="200"
requirement-for="1 NM TRACK TOLERANCE"
/>import 'overscan'
import 'overscan/overscan.css'
<ov-position
src="models/position-fix.json"
label="OWN SHIP"
requirement="200"
requirement-for="1 NM TRACK TOLERANCE"
></ov-position>import { OvPosition } from 'overscan/react'
<OvPosition
src="models/position-fix.json"
label="OWN SHIP"
requirement="200"
requirement-for="1 NM TRACK TOLERANCE"
/>import { OvPosition } from 'overscan/vue'
<OvPosition
src="models/position-fix.json"
label="OWN SHIP"
requirement="200"
requirement-for="1 NM TRACK TOLERANCE"
/>import OvPosition from 'overscan/svelte/OvPosition.svelte'
<OvPosition
src="models/position-fix.json"
label="OWN SHIP"
requirement="200"
requirement-for="1 NM TRACK TOLERANCE"
/>import 'overscan'
import 'overscan/overscan.css'
<ov-position
src="models/position-dead-reckoned.json"
label="OWN SHIP"
requirement="200"
requirement-for="1 NM TRACK TOLERANCE"
></ov-position>import { OvPosition } from 'overscan/react'
<OvPosition
src="models/position-dead-reckoned.json"
label="OWN SHIP"
requirement="200"
requirement-for="1 NM TRACK TOLERANCE"
/>import { OvPosition } from 'overscan/vue'
<OvPosition
src="models/position-dead-reckoned.json"
label="OWN SHIP"
requirement="200"
requirement-for="1 NM TRACK TOLERANCE"
/>import OvPosition from 'overscan/svelte/OvPosition.svelte'
<OvPosition
src="models/position-dead-reckoned.json"
label="OWN SHIP"
requirement="200"
requirement-for="1 NM TRACK TOLERANCE"
/>import 'overscan'
import 'overscan/overscan.css'
<ov-position
src="models/position-unbounded.json"
label="OWN SHIP"
requirement="200"
requirement-for="1 NM TRACK TOLERANCE"
label="TRACK 4412"
requirement="185"
requirement-for="3 NM SEPARATION"
></ov-position>import { OvPosition } from 'overscan/react'
<OvPosition
src="models/position-unbounded.json"
label="OWN SHIP"
requirement="200"
requirement-for="1 NM TRACK TOLERANCE"
label="TRACK 4412"
requirement="185"
requirement-for="3 NM SEPARATION"
/>import { OvPosition } from 'overscan/vue'
<OvPosition
src="models/position-unbounded.json"
label="OWN SHIP"
requirement="200"
requirement-for="1 NM TRACK TOLERANCE"
label="TRACK 4412"
requirement="185"
requirement-for="3 NM SEPARATION"
/>import OvPosition from 'overscan/svelte/OvPosition.svelte'
<OvPosition
src="models/position-unbounded.json"
label="OWN SHIP"
requirement="200"
requirement-for="1 NM TRACK TOLERANCE"
label="TRACK 4412"
requirement="185"
requirement-for="3 NM SEPARATION"
/>