Et WordPress-plugin der modtager live GPS-positioner fra en båd, gemmer dem i en database og viser et live-kort samt en historisk logbog.
Live-kort — /boat-position/map
Logbog — /boat-position/history
/wp-json/boat-position/v1/ingest — Indsend positionKaldes af routeren på båden. Kræver API-nøgle-godkendelse.
POST-felter:
| Felt | Type | Beskrivelse |
|---|---|---|
apikey | string | Hemmelig nøgle — indstil under Indstillinger → Båd GPS eller som PCIO_BOAT_POSITION_API_KEY i wp-config.php |
lat | float | Breddegrad (−90 til 90) |
lon | float | Længdegrad (−180 til 180) |
speed | float | Fart i knob (≥ 0) |
course | float | Kurs i grader (valgfrit, standard 0.0) |
gps_time | string | GPS-tidsstempel (ISO 8601 / UTC) |
Svar: 200 OK med {"status":"ok","id":N} ved succes, eller et WP REST-fejlobjekt ved fejl.
/wp-json/boat-position/v1/latest — Aktuel positionReturnerer den seneste positionsregistrering som JSON.
{
"lat": 55.123,
"lon": 12.456,
"speed": 5.2,
"course": 270.0,
"time": 1716400000
}
/wp-json/boat-position/v1/trips — Sejlturdata| Rute | Beskrivelse |
|---|---|
GET /trips | Alle afsluttede sejlture, nyeste først |
GET /trips/active-dates | Array af ÅÅÅÅ-MM-DD-strenge med mindst én sejltur (bruges til at fremhæve kalenderdage) |
GET /trips/{id}/points | Alle etapper med waypoints for en sejltur (bruges til at tegne ruten på kortet) |
POST /trips/{id}/harbours | Opdater havnenavne for en sejltur (kræver WP-redaktørrolle) |
POST /trips/merge | Flet to sejlture til én (kræver WP-redaktørrolle) |
GET /harbours | Alle kendte havne med koordinater og radius |
GET /legs/{id}/points | Rå waypoints for en enkelt etape |
Klassen class-pcio-bp-trip-engine behandler rå positioner (hvor leg_id IS NULL) og tildeler dem til sejlture og etapper.
Justeringskonstanter (definer i wp-config.php for at tilsidesætte standardværdier):
| Konstant | Standard | Beskrivelse |
|---|---|---|
PCIO_BP_SPEED_UNDERWAY_KN | 1.5 | Knob over hvilken båden anses for at sejle |
PCIO_BP_STOP_CONFIRM_COUNT | 3 | Antal på hinanden følgende langsomme aflæsninger nødvendige for at afslutte en sejltur |
PCIO_BP_NO_DATA_GAP_SECS | 180 | Pause (sekunder) der udløser en estimeret etape |
PCIO_BP_TRIP_END_GAP_SECS | 28800 | Pause (sekunder) der lukker sejlturen helt (8 t) |
PCIO_BP_BATCH_SIZE | 500 | Maks. positioner der behandles pr. kald |
Alle tabeller bruger WordPress-tabelpræfikset (standard wp_).
| Tabel | Beskrivelse |
|---|---|
wp_boat_positions | Rå GPS-positioner (lat, lon, speed, course, gps_time_utc, leg_id) |
wp_boat_trips | Én række pr. sejltur (started_at, ended_at, distance_nm, harbour_start, harbour_end, state) |
wp_boat_legs | Individuelle etapper inden for en sejltur; estimerede etapper markeres til visning som stiplede linjer |
wp_boat_harbours | Kendte havne brugt til at mærke sejlturenes start-/slutpunkter |
API-nøglen kan indstilles under Indstillinger → Båd GPS, eller hardkodes i wp-config.php:
define( 'PCIO_BOAT_POSITION_API_KEY', 'din-hemmelige-nøgle' );
Når konstanten er defineret, vises indstillingsfeltet som skrivebeskyttet og databaseindstillingen ignoreres.
/boat-position/map — Leaflet-kort med OpenStreetMap/OpenSeaMap. Henter /latest hvert 30. sekund og viser en roterende pilikon under sejlads eller en prik ved stilstand./boat-position/history — Kalender-sidebjælke fremhæver dage med registrerede sejlture. Klik på en dag for at indlæse sejlturenes ruter på kortet. WordPress-redaktører kan opdatere havnenavne og flette sejlture direkte.Begge URL'er registreres automatisk ved aktivering af pluginnet. Hvis de returnerer 404, gå til Indstillinger → Permalinks og klik Gem ændringer for at rydde omskrivningsreglerne.