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 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.6

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.


  1. Both raster and vector tiles support.
  2. English or Russian interface, dependent of browser language settings
  3. View one OSM- or mapbox-like on-line map or
  4. with GaladrielCache some a stacked maps
    Open Sea Map
    Open Topo Map
    or any number of other maps:
    stacked maps

  5. Positioning via gpsd and display current (writing now) track file in gpx format:

  6. Display routes and POIs files in gpx, kml and csv format:
    Display routes and POIs

  7. Creating a route localy and save it to the server in gpx format (description below):
    Creating a route
    Also possible to find coordinates by geographical name or post address, if there is an Internet connection, of course. And vice versa – getting the nearest address for screen centre.

  8. Exchange coordinates via clipboard (see screenshot above and description below)

  9. Weather forecast from Thomas Krüger Weather Service (with GaladrielCache v.1.3 or above)
    Weather forecast

  10. Display AIS info:
    AIS info

  11. netAIS support:
    Three members of the same private group see each other on its screens.

  12. Control the GaladrielCache Loader:
    Control Loader
    Set 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.

  13. 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.


Linux. Modern browsers include mobile.


Available ready to use virtual machine disk image and Raspberry Pi bootable image.


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

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


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.


You may 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.


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 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 text field.
To fly map by coordinates type they of any format to this field and press button.

Create and edit route

Open Handle route 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.


You can get support for GaladrielMap and GaladrielCahe for a beer via PayPal or YandexMoney at