A fully-featured OpenStreetMap-based map where markers and lines can be added with live collaboration.
 
 
 
 
 
 
Go to file
Candid Dauth c9a69b2147 Add Dockerfile for docs 2021-04-08 22:28:16 +02:00
artwork Add artwork to separate folder 2016-12-27 13:56:11 +01:00
client Update repository URL 2021-04-04 15:35:31 +02:00
docs Add Dockerfile for docs 2021-04-08 22:28:16 +02:00
frontend Fix pressing enter in form modals 2021-04-08 18:37:07 +02:00
leaflet Make search result polylines thicker 2021-04-06 00:01:55 +02:00
server Strip BOM when loading remote files 2021-04-08 19:05:02 +02:00
types Update repository URL 2021-04-04 15:35:31 +02:00
utils Fix parsing of OpenLayers URLs 2021-04-06 00:02:27 +02:00
.dockerignore Ignore docs in docker context 2021-04-08 21:47:33 +02:00
.eslintrc.js Status commit 2021-03-21 23:38:48 +01:00
.gitignore Set up docs deployment to facilmap-docs repository 2021-04-04 15:53:05 +02:00
.htmlhintrc Status commit 2021-03-04 16:45:34 +01:00
Dockerfile Add Dockerfile for docs 2021-04-08 22:28:16 +02:00
LICENSE.md Added attribution and license 2016-10-13 15:55:26 +03:00
README.md Update READMEs 2021-04-02 11:19:52 +02:00
config.env.example Bugfixing 2021-04-01 21:31:11 +02:00
docker-compose.yml Update repository URL 2021-04-04 15:35:31 +02:00
facilmap.conf.example Temporary status commit 2020-12-24 05:57:46 +01:00
lerna.json Status commit 2021-02-28 23:17:33 +01:00
package.json v3.0.0-beta1 2021-03-26 01:50:06 +01:00
yarn.lock Strip BOM when loading remote files 2021-04-08 19:05:02 +02:00

README.md

FacilMap is an online map that aims to bring together many useful functions in a usable and pretty way onto an open-source map based on OpenStreetMap. Features include:

  • Different map styles: OpenMapSurfer, Mapnik, OpenCycleMap, Hike & Bike map.
  • Public Transportation and hillshading overlays.
  • Search and calculate routes. Routes are fully draggable. (Uses Nominatim, OSRM, OpenRouteService, Leaflet.DraggableLines.)
  • Show GPX/KML/OSM/GeoJSON files on the map (use ToolsImport File, type a URL into the search field, or simply drag and drop a file onto the map)
  • Show additional information about places (for example opening hours or a link to the website). Press the map for 1 second somewhere to show information about what is there. (Uses Nominatim.)
  • Zoom to the location of your device and follow it. (Uses leaflet-locatecontrol.)
  • Create a collaborative map under a custom link where you and others can add markers, draw lines, save routes and import GPX/KML/OSM/GeoJSON files
    • Every map has three links, a read-only link, an editable link and an admin link. Everyone who has the link can access the map (similar to Etherpad, just for maps).
    • Live collaboration. All changes to the map are immediately visible to everyone who is looking at it (using socket.io).
    • Markers and lines can have a name and description, which will be visible in a popup when clicking on it.
    • Custom types of markers and lines can be defined, where in addition to the name and description, more text fields, dropdowns and checkboxes can be added to be filled out. Custom dropdown fields can modify the style (colour and width) of the markers and lines automatically, and a legend is generated automatically to explain what the different styles stand for.
    • The current map view can be saved for others to open.
    • Map objects that do not fit a certain filter expression can be hidden (using Filtrex).
    • There is a modification history and changes can be undone.
  • Can be easily run on your server or embedded into your website (see below).

On the client side, FacilMap relies heavily on Vue.js, Leaflet and Bootstrap. On the server side, it uses Node.js, Sequelize and socket.io. FacilMap is written in TypeScript.

Developer documentation

Quick start

  1. Run yarn install to install the dependencies
  2. Run yarn build to build the JS bundles
  3. Copy config.env.example to config.env and adjust the settings
  4. Run yarn server inside the server directory

More details can be found under Run the FacilMap server yourself.