Bådposition

Beskrivelse

Boat Position forvandler dit WordPress-site til en live tracking- og sejllogbogstjeneste for din båd.

Plugin’et er udviklet omkring Teltonika RUTX50-routeren (*), en kompakt Linux-baseret 5G-router med indbygget GPS
Et shell-script på routeren sender hvert minut en position til dit site. Plugin’et gemmer hver position, bruger en tilstandsmaskine til at gruppere positionerne i ture og etaper og stiller tre offentlige sider til rådighed:

  • Livekort (/boat-position/map) — viser den aktuelle position på et OpenStreetMap/OpenSeaMap-kort med et roterende pileikon, når båden er undervejs, og en stillestående indikator, når båden ligger stille. Synlige rejseplaner tegnes som grønne, stiplede ruter med flagmarkører.
  • Sejllogbog (/boat-position/history) — kalender med turhistorik. Klik på en dag for at se hele ruten på kortet. Loggede redaktører kan angive havnenavne og sammenflette ture, der fejlagtigt er blevet opdelt.
  • Sejladsplaner (/boat-position/plans) — planlæg fremtidige sejladser som ordnede lister med waypoints og eventuelle forventede ankomsttider (ETA). Der understøttes flere planer, og hver plan kan uafhængigt vises eller skjules på kortet.

Plugin’et tilføjer også en bådlog, der er baseret på almindelige WordPress-indlæg: placér et indlæg i kategorien Bådlog, angiv koordinater (eller brug som standard bådens senest kendte position), så vises det som en markør på livekortet. Dit tema håndterer al tekst og visning, og kortkoden [boat_log_map_link] linker et indlæg tilbage til kortet og animerer kortet til dets position.

Over 150 danske havne er inkluderet som grunddata, så havnenavne automatisk registreres ud fra GPS-koordinater.

Der kræves ingen tredjepartstjenester eller API-nøgler ud over dit eget WordPress-site. Kortene vises ved hjælp af det gratis Leaflet.js-bibliotek med OpenStreetMap- og OpenSeaMap-kortfliser.

(*) Der findes andre alternativer til RUTX50-routeren. Enhver enhed, der har adgang til GPS og internettet, kan konfigureres som kilde til positionsdata
F.eks. Linux maskiner som Rasberry PI tilsluttet en GPS eller bådens NMEA data.

Skærmbilleder

Installation

  1. Upload mappen boat-position til /wp-content/plugins/.
  2. Aktivér plugin’et under Plugins i WordPress-administrationen.
  3. Gå til Indstillinger Boat Position for at angive en hemmelig API-nøgle og finde vejledningen til routerkonfiguration.
  4. Følg vejledningen til routeropsætning under Plugins Boat Position Om for at konfigurere routerens sendgps.sh-script og cron-job.
  5. Send en testposition fra en kommandoprompt for at kontrollere, at endpointet fungerer, før du installerer det på båden.

Efter aktivering: Hvis /boat-position/map giver en 404-fejl, skal du gå til Indstillinger Permalinks og klikke på Gem ændringer for at opdatere omskrivningsreglerne.

FAQ

Hvordan bruger jeg dette plugin?

Installér og aktivér plugin’et, og gå derefter til Indstillinger Boat Position. Angiv en hemmelig API-nøgle, og følg derefter vejledningen til routerkonfiguration på siden Om for at opsætte routerens cron-job.

Virker den kun med RUTX50-routeren?

Nej. Enhver enhed, der kan sende en HTTP POST-anmodning med felterne lat, lon, speed, course og gps_time til REST-endpointet, kan bruges. Siden Om beskriver det præcise format.

Hvor findes de offentlige sider?

Plugin’et opretter automatisk tre sider — der er ikke behov for WordPress-sider eller shortcodes:

  • Livekort: https://yoursite.com/boat-position/map
  • Sejllogbog: https://yoursite.com/boat-position/history
  • Sejladsplaner: https://yoursite.com/boat-position/plans

Kan jeg undgå at gemme den hemmelige nøgle i databasen?

Ja. Definér nøglen som en konstant i wp-config.php:

define( ‘PCIO_BOAT_POSITION_API_KEY’, ‘your-secret-key-here’ );

Når denne konstant er angivet, ignoreres databaseindstillingen, og indstillingsfeltet vises som skrivebeskyttet.

Sejllogbogen er tom — ingen ture vises.

Kontrollér, at routeren sender data, ved at se i din databases tabel wp_boat_positions. Hvis der findes rækker, men ingen ture vises, har turmotoren muligvis endnu ikke behandlet dem — åbn ingest-endpointet direkte, eller se siden Om for curl-kommandoen, der kan bruges til manuel kørsel.

Anmeldelser

Der er ingen anmeldelser for denne widget.

Bidragsydere & udviklere

“Bådposition” er open source-software. Følgende personer har bidraget til dette plugin.

Bidragsydere

“Bådposition” er blevet oversat til 1 sprog. Tak til oversætterne for deres bidrag.

Oversæt “Bådposition” til dit eget sprog.

Interesseret i udvikling?

Gennemse koden, tjek SVN repository, eller abonner på udviklerloggen via RSS.

Ændringslog

1.7

  • Shell script improvement — No longer relying on routers internal clock for timestamp but instead using the gps utc timestamp.
  • 3D replay improved – Added local time to 3D replay.

1.6

  • Komplette ruteetaper — etaperne for en tur omfatter nu også de stationære GPS-fixes ved afgang og ankomst, så hver etape tegnes helt hen til og fra kajen i stedet for først at begynde og slutte, når båden allerede var i bevægelse. Tidligere blev disse punkter udeladt, fordi bådens hastighed var nul.
  • Mere pålidelig kontrol af GPS-fix — det downloadbare sendgps.sh-routerscript kontrollerer nu GPS-modtagerens aktuelle fix_status og fix_quality og bekræfter samtidig, at koordinaterne er til stede, i stedet for at være afhængig af fix_curr_mode, som kunne indeholde en forældet værdi og dermed sende ugyldige positioner.

1.5

  • 3D-gengivelse af sejlads — sejllogbogens historikside tilbyder nu en 3D-visning, der animerer din tur som en filmisk overflyvning ved hjælp af MapLibre GL og Three.js. En tidslinje, en afspil/pause-knap og en hastighedsvælger giver dig mulighed for at genopleve enhver registreret sejlads på få sekunder.
  • Fejlrettelse — rettede en fatal TypeError i PHP 8, når et tredjepartsplugin (f.eks. Event Tickets) udløser admin_enqueue_scripts via iframe_header() uden at angive et hook-argument.

1.4

  • Lokal tid i sejllogbogen — start- og sluttidspunkter for ture på sejllogbogssiden vises nu i den besøgendes lokale browser-tidszone i stedet for UTC. Positioner gemmes stadig i UTC i databasen og konverteres ved visning.
  • Robust GPS-script — det downloadbare sendgps.sh-routerscript gemmer nu hver position i en kø på disken og sender dem i ældste-først-rækkefølge. Positioner, der registreres, mens båden er offline, sendes derfor, når forbindelsen kommer tilbage, i stedet for at gå tabt.

1.3

  • Aktuel live-rute — livekortet viser nu bådens igangværende tur, mens den foregår (som en ubrudt blå linje med røde stiplede segmenter, hvor GPS-data mangler).
  • Ruteadministratorer — en dedikeret Administrér ruter-capability erstatter den generelle redigeringstilladelse. Tildel den til enhver Forfatter, Redaktør eller Administrator under Indstillinger Boat Position Ruteadministratorer. Administratorer får den automatisk; capability’en fjernes ved afinstallation.
  • Bådlog som standard — nye indlæg placeres nu automatisk i kategorien Bådlog (fungerer i blokeditoren, den klassiske editor og Divi), så logbogsindlæg vises på kortet uden manuel ændring af kategorien.
  • Mobil sejllogbog — på telefoner vises sejllogbogen som et kompakt panel i bunden: kalender og signaturforklaring skjules, turlisten gøres mere kompakt, og oplysningerne om den valgte rute vises ved siden af. Desktop-layoutet er uændret.

1.2

  • Bådlog — skriv sejllogbogsindlæg som almindelige WordPress-indlæg (så dit tema / Divi håndterer al tekst og visning).
    • Indlæg i kategorien Bådlog vises som markører på livekortet.
    • Lokationsfelt i indlægseditoren med et minikort: angiv koordinater manuelt, eller klik på Brug bådens aktuelle position.
    • Bådlog-indlæg uden en angivet position får automatisk bådens senest kendte position ved lagring.
    • Ny kortkode [boat_log_map_link] linker et indlæg tilbage til livekortet og animerer kortet til indlæggets position.
    • Det offentlige REST-feed GET /wp-json/boat-position/v1/blog-posts gør bådlog-markørerne tilgængelige.
    • En Blog-knap på livekortet viser eller skjuler bådlog-markører.
    • Kategorien Bådlog oprettes automatisk ved aktivering.

1.1

  • Sejladsplaner (/boat-position/plans) — ny side til planlægning af fremtidige sejladser.
    • Opret og administrér flere navngivne planer, hver med en valgfri beskrivelse.
    • Tilføj waypoints med navne, koordinater og eventuelle ETA’er (forventede ankomstdatoer).
    • Træk og slip for at ændre rækkefølgen af waypoints; redigér navn og ETA direkte i hver række.
    • Forskydningsværktøj: forskyd alle ETA’er fra et valgt waypoint og frem med et antal dage.
    • Slet enkelte waypoints eller hele planer.
    • Planens titel og noter kan redigeres direkte fra waypoint-visningen.
    • Øjeikon pr. plan: synlig (blå) eller skjult (grå)
    • Alle synlige planer vises på livekortet som grønne, stiplede ruter med flagmarkører.
    • Ved at klikke på åbent vand på kortet kan redaktører tilføje et waypoint direkte til den aktive plan.
    • Hurtigvalgliste ved tilføjelse af waypoints: foreslår alle kendte havne og eksisterende waypoints fra planer.
  • Håndtering af havne på livekortet: alle kendte havne vises som markører. Loggede redaktører kan klikke på en havn for at omdøbe eller slette den og kan klikke på åbent vand for at tilføje en ny havn på den pågældende position.

1.0

  • Første version med tracking og historisk sejllogbog.