GaladrielMap 
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 or NAS and used on full clients such as tablets and smartphones. Only browser need.
Technically this an online tiles map viewer. With GaladrielCache – this an offline viewer with tile grabbing features.
v. 1.4
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 as a navigator.
The GaladrielMap created with use a lot of famous projects, so don’t forget to install dependenses.
Features:
- Both raster and vector tiles support.
- English or Russian interface, dependent of browser language settings
- View one OSM- or mapbox-like on-line map or
-
with GaladrielCache some a stacked maps
Open Sea Map
Open Topo Map
or any number of other maps:
-
Positioning via gpsd and display current (writing now) track file in gpx format:
-
Display routes and POIs files in gpx, kml and csv format:
-
Creating a route localy and save it to the server in gpx format (description below):
-
Exchange coordinates via clipboard (see screenshot above and description below)
-
Weather forecast from Thomas Krüger Weather Service (with GaladrielCache v.1.3 or above)
-
Display AIS info:
-
netAIS support:
Three members of the same private group see each other on its screens. -
Control the GaladrielCache Loader:
Set region, start loader, watch the progress. - 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.
The Dashboard allows you to set a signal for dangerous events, such as shallow or speed. Set up your browser to allow sound signal.
No fanciful javascript, no fanciful css.
Compatibility
Linux. Modern browsers include mobile.
Demo
Available ready to use virtual machine disk image and Raspberry Pi bootable image.
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
Dependences and thanks
- Leaflet in leaflet/ directory
- Coordinate Parser in coordinate-parserPATCHED/ directory
- L.TileLayer.Mercator as L.TileLayer.Mercator/src/L.TileLayer.Mercator.js
- Leaflet.Editable in Leaflet.Editable/ directory
- Leaflet.RotatedMarker as Leaflet.RotatedMarker/leaflet.rotatedMarker.js
- Leaflet Measure Path in leaflet-measure-path/ directory
- leaflet-sidebar-v2 in leaflet-sidebar-v2/ directory
- mapbox-gl-js in mapbox-gl-js/dist/ directory
- mapbox-gl-leaflet as mapbox-gl-leaflet/leaflet-mapbox-gl.js
- supercluster as supercluster/supercluster.js
- gpsdAISd in gpsdAISd/ directory
Create a local copy of dependences and/or edit index.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.
More thanks
- leaflet-omnivore for leaflet-omnivore. This patched to show markers and non well-formed gpx files.
- Metrize Icons by Alessio Atzeni for icons.
- Typicons by Stephen Hutchings for icons.
- Map Icons Collection for icons.
- On/Off FlipSwitch
- leaflet-tracksymbol which became the basis for display AIS data
- openmaptiles for Open Font Glyphs for GL Styles
- GitHub MAPBOX project for navigation ui resources
- OpenMapTiles for Mapbox GL basemap style
- leaflet-ais-tracksymbol for ideas
gpsd
GaladrielMap gets realtime info, such as spatial data, AIS data, instruments from gpsd via askGPSD.php and askAIS.php services. You may configure these services to you gpsd host and port. Defaults are localhost and 2947 port (default for gpsd). How to install and configure gpsd see gpsd pages.
Displaying AIS data is disabled by default, so you must enable it by uncomment string with $aisServerURI variable in params.php.
Tracks
You may use gpxlogger
app from gpsd-clients packet to logging track on your server. Control gpxlogger
are in 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.
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.
Exchange coordinates
To get current position to clipboard to share it via other apps - tap on Position on tab.
Also, tap on POI name on point’s popup to get a position of this point.
To get coordinates of any point - open tab. Coordinates of crosshair will be in text field.
To fly map by coordinates type they of any format to this field and press button.
Create and edit route
Open tab to navigational plotting feature.
You can create and edit the route on the local device, and/or save it to server.
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.
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.
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. Sprites and glyphs you can find in styles/ directory.
Support
You can get support for GaladrielMap and GaladrielCahe for a beer via PayPal or YandexMoney at galadrielmap@gmail.com