brouter-web
===========

Web client for the BRouter routing engine. *Work in progress*.

BRouter online service:  
http://brouter.de/brouter-web/

This repository is only about the frontend. For the server/backend, BRouter routing engine, Android app, profiles, brouter.de site, see:  
https://github.com/abrensch/brouter

More information:  
http://brouter.de

General BRouter discussions/questions, support:  
http://groups.google.com/group/osm-android-bikerouting

## Installation

As an alternative to the above online version, the standalone server of BRouter can also be run on your local desktop.

### Install BRouter (server with routing engine)

1. download and unzip latest [BRouter revision](http://brouter.de/brouter/revisions.html)  
e.g. for Linux (replace ``~/opt/`` with your preferred install dir and ``1_4_1`` with latest version):  

        mkdir ~/opt/brouter
        cd ~/opt/brouter
        wget http://brouter.de/brouter_bin/brouter_1_4_1.zip
        unzip brouter_1_4_1.zip
        chmod +x ./standalone/server.sh

2. download one or more [data file(s)](http://brouter.de/brouter/segments4/) (rd5) into ``segments4`` dir

### Install BRouter-Web (client)

1. download BRouter-Web as subdirectory ``brouter-web`` of the ``brouter`` directory

         wget https://github.com/nrenner/brouter-web/archive/master.zip
         unzip master.zip
         mv brouter-web-master brouter-web

2. configure URL to ``profiles2`` directory  
set ``BR.conf.profilesUrl`` in [config.js](config.js), e.g. uncomment:

        BR.conf.profilesUrl = 'http://localhost:8000/profiles2/';

### Run

1. start BRouter server in the ``standalone`` directory with ``./server.sh`` or ``server.cmd`` (Windows)
2. serve the ``brouter`` directory for BRouter-Web  
This is needed for pre-loading the selected profile (unless you allowed local file access in the Browser). Depending on your setup (see [How to run things locally](https://github.com/mrdoob/three.js/wiki/How-to-run-things-locally)), start a web server in the ``brouter`` directory, e.g.:

        python -m SimpleHTTPServer

2. open http://localhost:8000/brouter-web/

## Build

Requires [Node and npm](http://nodejs.org/) (or [io.js](https://iojs.org)), [Bower](http://bower.io/) and [Gulp](http://gulpjs.com/):

    npm install -g bower
    npm install -g gulp

Install:

    npm install
    bower install

Build:

    gulp

Develop:

    gulp watch

## License

Copyright (c) 2014 Norbert Renner, licensed under the [MIT License (MIT)](LICENSE)

## Credits and Licenses

* [BRouter](https://github.com/abrensch/brouter) (not included)  
by abrensch; [GNU General Public License, version 3.0 (GPLv3)](https://github.com/abrensch/brouter/blob/master/LICENSE)
* [Leaflet](http://leafletjs.com/)  
Copyright (c) 2010-2014, Vladimir Agafonkin; Copyright (c) 2010-2011, CloudMade; [2-clause BSD License](https://github.com/Leaflet/Leaflet/blob/master/LICENSE)
* [leaflet-routing](https://github.com/Turistforeningen/leaflet-routing)  
Copyright (c) 2013, Turistforeningen, Hans Kristian Flaatten. All rights reserved. [2-clause BSD License](https://github.com/Turistforeningen/leaflet-routing/blob/gh-pages/LICENSE)
* [Leaflet.Elevation](https://github.com/MrMufflon/Leaflet.Elevation)  
Copyright (c) 2013 Felix Bache; [MIT License](https://github.com/MrMufflon/Leaflet.Elevation/blob/master/LICENSE)
* [D3.js](https://github.com/mbostock/d3)  
Copyright (c) 2013, Michael Bostock. All rights reserved.; [3-clause BSD License](https://github.com/mbostock/d3/blob/master/LICENSE)
* [Leaflet.draw](https://github.com/Leaflet/Leaflet.draw)  
Copyright 2012 Jacob Toye; [MIT License](https://github.com/Leaflet/Leaflet.draw/blob/master/MIT-LICENCE.txt)
* [Leaflet Control Geocoder](https://github.com/perliedman/leaflet-control-geocoder)  
Copyright (c) 2012 [sa3m](https://github.com/sa3m), Copyright (c) 2013 Per Liedman; [2-clause BSD License](https://github.com/perliedman/leaflet-control-geocoder/blob/master/LICENSE)
* [leaflet-plugins](https://github.com/shramov/leaflet-plugins)  
Copyright (c) 2011-2012, Pavel Shramov; [2-clause BSD License](https://github.com/shramov/leaflet-plugins/blob/master/LICENSE)
* [Async.js](https://github.com/caolan/async)  
Copyright (c) 2010-2014 Caolan McMahon; [MIT License](https://github.com/caolan/async/blob/master/LICENSE)
* [Bootstrap](http://getbootstrap.com/)  
Copyright (c) 2011-2014 Twitter, Inc; [MIT License](https://github.com/twbs/bootstrap/blob/master/LICENSE)
* [jQuery](https://github.com/jquery/jquery)  
Copyright 2005, 2014 jQuery Foundation and other contributors; [MIT License](https://github.com/jquery/jquery/blob/master/LICENSE.txt)
* [DataTables](https://github.com/DataTables/DataTables)  
Copyright (C) 2008-2014, SpryMedia Ltd.; [MIT License](http://www.datatables.net/license/mit)
* [Leaflet.EasyButton](https://github.com/CliffCloud/Leaflet.EasyButton)  
Copyright (C) 2014 Daniel Montague; [MIT License](https://github.com/CliffCloud/Leaflet.EasyButton/blob/master/LICENSE)
* [Bootbox](https://github.com/makeusabrew/bootbox)  
Copyright (C) 2011-2014 by Nick Payne; [MIT License](https://github.com/makeusabrew/bootbox/blob/master/LICENSE.md)
* [bootstrap-slider](https://github.com/seiyria/bootstrap-slider)  
Copyright (c) 2015 Kyle Kemp, Rohit Kalkur, and contributors; [MIT License](https://github.com/seiyria/bootstrap-slider/blob/master/LICENSE.md)
