View on GitHub

Raster tiles chartplotter

Download this project as a .zip file Download this project as a tar.gz file

GaladrielMap License: CC BY-SA 4.0

This a server-based chart plotter navigation software for pleasure crafts and off-road cars. The application can be placed on a weak server such as RaspberryPi, NAS or router and used on full clients such as tablets and smartphones. Only browser need.

v. 1.8

screen
Technically this an online tiles map viewer. With GaladrielCache – this an offline viewer with tile grabbing features. It is assumed that the application is used in the onboard local area network of the boat or car. The author uses it from the wi-fi router/GSM modem under OpenWRT as a server on his sailboat “Galadriel”.
The author is not responsible for the consequences of using the GaladrielMap for navigation.

The GaladrielMap created with use a lot of famous projects, so don’t forget to install dependenses.

Features

  1. Online or offline user-defined maps
  2. Positioning via gpsd
  3. Tracking
  4. Display routes and POIs files in gpx, kml and csv format
  5. Creating and edit a route localy and save it to the server in gpx format
  6. Exchange coordinates via clipboard
  7. Weather forecast from Thomas Krüger Weather Service
  8. Display AIS info
  9. netAIS support
  10. A Man OverBoard feature
  11. Optimised for E-Ink screens Dashboard
  12. Control the GaladrielCache Loader
  13. English or Russian interface, dependent of browser language settings

Compatibility

Linux. Modern browsers include mobile.

Demo

Full feature live demo. Sometimes there floating a virtual sailboat.

Ready to use images

Available ready to use virtual machine disk image and Raspberry Pi bootable image. It’s a fully configured Linux system with GaladrielMap, GaladrielCache, netAIS, gpsd, gpxlogger, etc. for test and builds own onboard server.

Install&configure:

You must have a web server under Linux with php support. Just copy app, dependences and set paths.
Paths and other are set and describe in params.php

Emergency kit

All you need to install, including dependences, are in emergencykit/.
You may download full pack – more 4MB, or without vector tiles support pack – less them 1MB.

Dependences and thanks

Create a local copy of dependences and/or edit index.php

More thanks

Maps

The GaladrielMap applies OSM-style tiles map, both raster and vector. It can be one OSM- or mapbox-like on-line map or with GaladrielCache any number of stacked maps, online and offline.
stacked maps
The map source is set in the params.php, and if it is GaladrielCache (default), you have available any number of user-defined map sources. How to define a new map – described in GaladrielCache project.
At least, it include
Open Sea Map
Open Topo Map
maps.

Mapbox-style vector tiles maps

GaladrielMap has limited support the Mapbox-style vector tiles maps. Mapbox style file must be placed on $mapSourcesDir directory of the GaladrielCache with {mapname}.json name. (See GaladrielCache docs.) Sprites and glyphs you can find in styles/ directory.

Positioning

Positioning
GaladrielMap gets realtime spatial data and other info via gpsd. Usually enough plug a GNSS receiver to the server.
How to install and configure gpsd see gpsd pages.
Map always sets to current position. This behavior can be temporarily disabled on the Settings menu. Following the cursor is disabled if Route or Loader menu are open.

Tracking

GaladrielMap use gpxlogger app from gpsd-clients packet to logging track on your server. Control gpxlogger are in Handle tracks tab.
GaladrielMap displaying current track as a not well-formed gpx file. Other tracks may be displayed simultaneously.
Run chkGPXfiles.php in cli to repair non-well-formed gpx files for other applications.
Tracks placed in tracks directory on the server as it described in params.php.
Installation and configuring the gpxlogger described in gpsd documentation. You may use any other server-side logger for tracking in gpx format, set up it in params.php.

Routes and POIs

Display routes and POIs
GaladrielMap display routes and PointOfInterest on gpx, kml and csv formats. Place you routes and POIs files to route directory on the server as it directory described in params.php. Open POI tab.

CSV

Comma-Separated Values text file - the simplest way of cooking personal POI for your trip. Only text editor needed. But, to avoid mistakes, any spreadsheet recommended.
The first line in the CSV file must be field names. Good choice is a "number","name","description","type","link","latitude","longitude"
Latitude and longitude may be in degrees, minutes and seconds, 61°04.7’N for example, or in decimal degrees. A real example of using CSV to store information about ports and piers on Lake Saimaa in Finland - SaimaaPOI. File with geospatial photolinks on CSV format - is a good example too.
Place your CSV to route directory on the server as it directory described in params.php. Avoid setting file names in route same as names in tracks directory.

Creating and edit a route

Creating a route
Open Handle route tab to navigational plotting feature. You can create and edit a route on the local device, and/or save it to server to route directory.
This feature includes a base gpx route editing tool. You can edit any gpx route from the server in the same way as local route, and save it under the same or new name. Displaying edited routes update automatically on all connected devices.
Good case for use – navigational plotting by the navigator in a dry and warm booth for the steersman on the rain and wind.
But it is only a base gpx route editor. Gpx <metadata> not supported, and point <extensions> (GARMIN like it) not supported too. Be careful to edit and save exists gpx.
Also be careful with danger of unauthorized edit routes from guests and childrens. Disable the auto-update routes via params.php.

For route planning, it is useful to find coordinates by geographical name or postal address, if there is an Internet connection, of course. And vice versa – getting the nearest address for the screen centre. Use the input field for it.

Exchange coordinates

To get current position to clipboard to share it via other apps - tap on Position on Dashboard tab.
Also, tap on POI name on point’s popup to get a position of this point.
To get coordinates of any point - open Handle route tab. Coordinates of crosshair will be in the input text field.
To fly map by coordinates type they of any format to this field and press button.

Weather forecast

Weather forecast
If there is an Internet connection you can get the weather forecast from Thomas Krüger Weather Service.

Display AIS info

AIS info
GaladrielMap displayed AIS data via gpsd. The gpsd may need additional set up to get AIS flow from AIC transmitters, but usually no need for additional set up to get data from the AIS receiver.
Displaying AIS data is disabled by default, so you must enable it by uncomment string with $aisServerURI variable in params.php.

netAIS support

netAIS
The netAIS is the local service to exchange position information inside of a private group via internet.
GaladrielMap displayed full netAIS info, include text messages.
For example, three members of the same private group see each other on its screens.

A Man OverBoard

A Man OverBoard
Sets marker, stretches the line to and indicates distance and direction to MOB just by open tab.
Tap to MOB button opens MOB tab and start MOB mode. Track logging turned on, positions the MOB markers saved to the server. You may add new markers and dragging markers to a new position. Tap to marker to select it for stretches the direction line to. Tap on indication of MOB position copies it to clipboard.
MOB information spreading to all connected devices and may edit from any of this.
To finalize MOB mode tap to the dot left of the “Terminate” button first.

Dashboard

dashboard.php - the separate app to display some instruments if it is in your board network, on weak (and/or old) devices, such as E-ink readers, for example. Displayed velocity, depth and true and magnetic heading.
Dashboard velocity
Dashboard heading
Dashboard depth
The Dashboard allows you to set a signal for dangerous events, such as shallow or speed. Set up your browser to allow sound signal.
Dashboard alarm
No fanciful javascript, no fanciful css.

The GaladrielCache Loader

Control Loader
Sets region, start loader, watch the progress. The loader runs on the server, so it autonomous and robust. Loader restart after server reboot and it will work until it finishes.
For see of loaded tiles use coverage switch.

Support

You can get support for GaladrielMap and GaladrielCahe for a beer via PayPal or YandexMoney at galadrielmap@gmail.com