With the categories plugin you can plot categories/textual data easily.
51 | 52 |├── .gitmodules ├── .gitignore ├── docs └── index.md ├── flot ├── examples │ ├── .DS_Store │ ├── background.png │ ├── navigate │ │ ├── arrow-up.gif │ │ ├── arrow-down.gif │ │ ├── arrow-left.gif │ │ ├── arrow-right.gif │ │ └── index.html │ ├── ajax │ │ ├── data-eu-gdp-growth-1.json │ │ ├── data-eu-gdp-growth-2.json │ │ ├── data-eu-gdp-growth-3.json │ │ ├── data-eu-gdp-growth-4.json │ │ ├── data-usa-gdp-growth.json │ │ ├── data-japan-gdp-growth.json │ │ ├── data-eu-gdp-growth-5.json │ │ └── data-eu-gdp-growth.json │ ├── axes-time-zones │ │ ├── tz │ │ │ ├── southamerica │ │ │ ├── factory │ │ │ ├── yearistype.sh │ │ │ ├── pacificnew │ │ │ ├── systemv │ │ │ ├── etcetera │ │ │ ├── leapseconds │ │ │ └── backward │ │ └── index.html │ ├── image │ │ ├── hs-2004-27-a-large-web.jpg │ │ └── index.html │ ├── shared │ │ └── jquery-ui │ │ │ └── jquery-ui.min.css │ ├── categories │ │ └── index.html │ ├── basic-usage │ │ └── index.html │ ├── examples.css │ ├── threshold │ │ └── index.html │ ├── symbols │ │ └── index.html │ ├── series-types │ │ └── index.html │ ├── basic-options │ │ └── index.html │ ├── resize │ │ └── index.html │ ├── annotating │ │ └── index.html │ ├── stacking │ │ └── index.html │ ├── axes-interacting │ │ └── index.html │ ├── realtime │ │ └── index.html │ ├── interacting │ │ └── index.html │ ├── index.html │ ├── tracking │ │ └── index.html │ ├── zooming │ │ └── index.html │ └── series-errorbars │ │ └── index.html ├── Makefile ├── LICENSE.txt ├── jquery.flot.symbol.min.js ├── jquery.flot.threshold.min.js ├── jquery.flot.crosshair.min.js ├── jquery.flot.fillbetween.min.js ├── jquery.flot.resize.min.js ├── jquery.flot.stack.min.js ├── jquery.flot.categories.min.js ├── jquery.flot.image.min.js ├── jquery.flot.symbol.js ├── jquery.colorhelpers.min.js ├── FAQ.md ├── jquery.flot.resize.js ├── CONTRIBUTING.md ├── jquery.flot.canvas.min.js └── README.md ├── matrix ├── images │ ├── bg_hr.png │ ├── search.png │ ├── arrow-left.png │ ├── arrow-right.png │ ├── blacktocat.png │ ├── icon_download.png │ ├── sprite_download.png │ ├── multimodal.svg │ └── modes.svg ├── resource │ ├── matrix_pin_end.png │ └── matrix_pin_start.png ├── css │ ├── mapzen-common.css │ ├── leaflet.label.css │ └── classic.css └── js │ ├── MIT-LICENCE.txt │ ├── LICENSE.txt │ └── matrix.js ├── routing ├── images │ ├── bike.png │ ├── drive.png │ ├── list.png │ ├── route.png │ ├── walk.png │ ├── bike-01.png │ ├── cancel.png │ ├── ic_pin.png │ ├── layers.png │ ├── Valhalla.png │ ├── layers-2x.png │ ├── ic_pin-icon.png │ ├── marker-icon.png │ ├── markers-soft.png │ ├── ic_pin_active.png │ ├── marker-icon-2x.png │ ├── marker-icon@2x.png │ ├── marker-shadow.png │ ├── markers-matte.png │ ├── markers-plain.png │ ├── markers-shadow.png │ ├── markers-soft@2x.png │ ├── turnbyturnlogo.png │ ├── ic_pin_active_end.png │ ├── markers-matte@2x.png │ ├── markers-shadow@2x.png │ ├── ic_car_start_pressed.png │ ├── ic_pin_active_start.png │ ├── ic_walk_start_normal.png │ └── ic_walk_start_pressed.png ├── resource │ ├── cal.gif │ ├── dot.png │ ├── bike.png │ ├── drive.png │ ├── hide.png │ ├── list.png │ ├── show.png │ ├── walk.png │ ├── blue_dot.png │ ├── cancel.png │ ├── via_dot.png │ ├── destmarker.png │ ├── dest_red_dot.png │ ├── destmarker@2x.png │ ├── start_green_dot.gif │ ├── startmarker@2x.png │ └── scene.yaml ├── map_style │ ├── zinc-basemap.yaml │ └── refill-style.yaml ├── README.md ├── conf │ └── environment.conf ├── css │ ├── elevation.css │ └── valhalla.css └── js │ └── lrm │ ├── L.Routing.Control.js │ └── L.Routing.Line.js ├── elevation ├── conf │ └── environment.conf ├── css │ ├── mapzen-common.css │ └── elevation.css └── index.html ├── points ├── points.css ├── index.html └── points.js ├── map_matching ├── conf │ └── env.conf ├── css │ ├── mapzen-common.css │ ├── leaflet.label.css │ └── classic.css └── js │ ├── MIT-LICENCE.txt │ └── LICENSE.txt ├── optimized_route ├── conf │ └── env.conf ├── css │ ├── mapzen-common.css │ ├── leaflet.label.css │ └── classic.css └── js │ ├── MIT-LICENCE.txt │ └── LICENSE.txt ├── isochrone ├── styles.css ├── index.html └── main.js ├── polyline └── decode.js ├── locate └── style.css ├── LICENSE.md ├── README.md └── expansion └── index.html /.gitmodules: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .project 2 | .settings 3 | .DS_Store 4 | .DS_Store? 5 | -------------------------------------------------------------------------------- /docs/index.md: -------------------------------------------------------------------------------- 1 | TODO: describe each demo 2 | ------------------------ 3 | -------------------------------------------------------------------------------- /flot/examples/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/flot/examples/.DS_Store -------------------------------------------------------------------------------- /matrix/images/bg_hr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/matrix/images/bg_hr.png -------------------------------------------------------------------------------- /matrix/images/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/matrix/images/search.png -------------------------------------------------------------------------------- /routing/images/bike.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/routing/images/bike.png -------------------------------------------------------------------------------- /routing/images/drive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/routing/images/drive.png -------------------------------------------------------------------------------- /routing/images/list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/routing/images/list.png -------------------------------------------------------------------------------- /routing/images/route.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/routing/images/route.png -------------------------------------------------------------------------------- /routing/images/walk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/routing/images/walk.png -------------------------------------------------------------------------------- /routing/resource/cal.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/routing/resource/cal.gif -------------------------------------------------------------------------------- /routing/resource/dot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/routing/resource/dot.png -------------------------------------------------------------------------------- /routing/images/bike-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/routing/images/bike-01.png -------------------------------------------------------------------------------- /routing/images/cancel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/routing/images/cancel.png -------------------------------------------------------------------------------- /routing/images/ic_pin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/routing/images/ic_pin.png -------------------------------------------------------------------------------- /routing/images/layers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/routing/images/layers.png -------------------------------------------------------------------------------- /routing/resource/bike.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/routing/resource/bike.png -------------------------------------------------------------------------------- /routing/resource/drive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/routing/resource/drive.png -------------------------------------------------------------------------------- /routing/resource/hide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/routing/resource/hide.png -------------------------------------------------------------------------------- /routing/resource/list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/routing/resource/list.png -------------------------------------------------------------------------------- /routing/resource/show.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/routing/resource/show.png -------------------------------------------------------------------------------- /routing/resource/walk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/routing/resource/walk.png -------------------------------------------------------------------------------- /flot/examples/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/flot/examples/background.png -------------------------------------------------------------------------------- /matrix/images/arrow-left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/matrix/images/arrow-left.png -------------------------------------------------------------------------------- /matrix/images/arrow-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/matrix/images/arrow-right.png -------------------------------------------------------------------------------- /matrix/images/blacktocat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/matrix/images/blacktocat.png -------------------------------------------------------------------------------- /routing/images/Valhalla.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/routing/images/Valhalla.png -------------------------------------------------------------------------------- /routing/images/layers-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/routing/images/layers-2x.png -------------------------------------------------------------------------------- /routing/resource/blue_dot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/routing/resource/blue_dot.png -------------------------------------------------------------------------------- /routing/resource/cancel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/routing/resource/cancel.png -------------------------------------------------------------------------------- /routing/resource/via_dot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/routing/resource/via_dot.png -------------------------------------------------------------------------------- /matrix/images/icon_download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/matrix/images/icon_download.png -------------------------------------------------------------------------------- /routing/images/ic_pin-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/routing/images/ic_pin-icon.png -------------------------------------------------------------------------------- /routing/images/marker-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/routing/images/marker-icon.png -------------------------------------------------------------------------------- /routing/images/markers-soft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/routing/images/markers-soft.png -------------------------------------------------------------------------------- /routing/resource/destmarker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/routing/resource/destmarker.png -------------------------------------------------------------------------------- /matrix/images/sprite_download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/matrix/images/sprite_download.png -------------------------------------------------------------------------------- /matrix/resource/matrix_pin_end.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/matrix/resource/matrix_pin_end.png -------------------------------------------------------------------------------- /routing/images/ic_pin_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/routing/images/ic_pin_active.png -------------------------------------------------------------------------------- /routing/images/marker-icon-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/routing/images/marker-icon-2x.png -------------------------------------------------------------------------------- /routing/images/marker-icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/routing/images/marker-icon@2x.png -------------------------------------------------------------------------------- /routing/images/marker-shadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/routing/images/marker-shadow.png -------------------------------------------------------------------------------- /routing/images/markers-matte.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/routing/images/markers-matte.png -------------------------------------------------------------------------------- /routing/images/markers-plain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/routing/images/markers-plain.png -------------------------------------------------------------------------------- /routing/images/markers-shadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/routing/images/markers-shadow.png -------------------------------------------------------------------------------- /routing/images/markers-soft@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/routing/images/markers-soft@2x.png -------------------------------------------------------------------------------- /routing/images/turnbyturnlogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/routing/images/turnbyturnlogo.png -------------------------------------------------------------------------------- /routing/resource/dest_red_dot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/routing/resource/dest_red_dot.png -------------------------------------------------------------------------------- /routing/resource/destmarker@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/routing/resource/destmarker@2x.png -------------------------------------------------------------------------------- /flot/examples/navigate/arrow-up.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/flot/examples/navigate/arrow-up.gif -------------------------------------------------------------------------------- /matrix/resource/matrix_pin_start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/matrix/resource/matrix_pin_start.png -------------------------------------------------------------------------------- /routing/images/ic_pin_active_end.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/routing/images/ic_pin_active_end.png -------------------------------------------------------------------------------- /routing/images/markers-matte@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/routing/images/markers-matte@2x.png -------------------------------------------------------------------------------- /routing/images/markers-shadow@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/routing/images/markers-shadow@2x.png -------------------------------------------------------------------------------- /routing/resource/start_green_dot.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/routing/resource/start_green_dot.gif -------------------------------------------------------------------------------- /routing/resource/startmarker@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/routing/resource/startmarker@2x.png -------------------------------------------------------------------------------- /flot/examples/navigate/arrow-down.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/flot/examples/navigate/arrow-down.gif -------------------------------------------------------------------------------- /flot/examples/navigate/arrow-left.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/flot/examples/navigate/arrow-left.gif -------------------------------------------------------------------------------- /flot/examples/navigate/arrow-right.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/flot/examples/navigate/arrow-right.gif -------------------------------------------------------------------------------- /routing/images/ic_car_start_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/routing/images/ic_car_start_pressed.png -------------------------------------------------------------------------------- /routing/images/ic_pin_active_start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/routing/images/ic_pin_active_start.png -------------------------------------------------------------------------------- /routing/images/ic_walk_start_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/routing/images/ic_walk_start_normal.png -------------------------------------------------------------------------------- /flot/examples/ajax/data-eu-gdp-growth-1.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "Europe (EU27)", 3 | "data": [[1999, 3.0], [2000, 3.9]] 4 | } 5 | -------------------------------------------------------------------------------- /routing/images/ic_walk_start_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/routing/images/ic_walk_start_pressed.png -------------------------------------------------------------------------------- /flot/examples/axes-time-zones/tz/southamerica: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/flot/examples/axes-time-zones/tz/southamerica -------------------------------------------------------------------------------- /flot/examples/image/hs-2004-27-a-large-web.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/valhalla/demos/HEAD/flot/examples/image/hs-2004-27-a-large-web.jpg -------------------------------------------------------------------------------- /flot/examples/ajax/data-eu-gdp-growth-2.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "Europe (EU27)", 3 | "data": [[1999, 3.0], [2000, 3.9], [2001, 2.0], [2002, 1.2]] 4 | } 5 | -------------------------------------------------------------------------------- /routing/map_style/zinc-basemap.yaml: -------------------------------------------------------------------------------- 1 | import: https://mapzen.com/carto/zinc-style/zinc-style.yaml 2 | 3 | global: 4 | sdk_mapzen_api_key: vector-tiles-HqUVidw 5 | -------------------------------------------------------------------------------- /elevation/conf/environment.conf: -------------------------------------------------------------------------------- 1 | var server = { 2 | local: "http://localhost:8002/", 3 | prod:"https://valhalla1.openstreetmap.de/" 4 | } 5 | 6 | var prodToken = "" 7 | -------------------------------------------------------------------------------- /flot/examples/ajax/data-eu-gdp-growth-3.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "Europe (EU27)", 3 | "data": [[1999, 3.0], [2000, 3.9], [2001, 2.0], [2002, 1.2], [2003, 1.3], [2004, 2.5]] 4 | } 5 | -------------------------------------------------------------------------------- /points/points.css: -------------------------------------------------------------------------------- 1 | #map { 2 | height: 650px; 3 | } 4 | 5 | span.rematch { 6 | background-color: #ddd; 7 | } 8 | 9 | span.active { 10 | background-color: #f00; 11 | } 12 | -------------------------------------------------------------------------------- /routing/map_style/refill-style.yaml: -------------------------------------------------------------------------------- 1 | import: https://mapzen.com/carto/refill-style/6/refill-style.yaml 2 | 3 | global: 4 | sdk_transit_overlay: true, 5 | sdk_mapzen_api_key: vector-tiles-HqUVidw -------------------------------------------------------------------------------- /flot/examples/ajax/data-eu-gdp-growth-4.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "Europe (EU27)", 3 | "data": [[1999, 3.0], [2000, 3.9], [2001, 2.0], [2002, 1.2], [2003, 1.3], [2004, 2.5], [2005, 2.0], [2006, 3.1]] 4 | } 5 | -------------------------------------------------------------------------------- /flot/examples/ajax/data-usa-gdp-growth.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "USA", 3 | "data": [[1999, 4.4], [2000, 3.7], [2001, 0.8], [2002, 1.6], [2003, 2.5], [2004, 3.6], [2005, 2.9], [2006, 2.8], [2007, 2.0], [2008, 1.1]] 4 | } 5 | -------------------------------------------------------------------------------- /flot/examples/ajax/data-japan-gdp-growth.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "Japan", 3 | "data": [[1999, -0.1], [2000, 2.9], [2001, 0.2], [2002, 0.3], [2003, 1.4], [2004, 2.7], [2005, 1.9], [2006, 2.0], [2007, 2.3], [2008, -0.7]] 4 | } 5 | -------------------------------------------------------------------------------- /flot/examples/ajax/data-eu-gdp-growth-5.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "Europe (EU27)", 3 | "data": [[1999, 3.0], [2000, 3.9], [2001, 2.0], [2002, 1.2], [2003, 1.3], [2004, 2.5], [2005, 2.0], [2006, 3.1], [2007, 2.9], [2008, 0.9]] 4 | } 5 | -------------------------------------------------------------------------------- /flot/examples/ajax/data-eu-gdp-growth.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "Europe (EU27)", 3 | "data": [[1999, 3.0], [2000, 3.9], [2001, 2.0], [2002, 1.2], [2003, 1.3], [2004, 2.5], [2005, 2.0], [2006, 3.1], [2007, 2.9], [2008, 0.9]] 4 | } 5 | -------------------------------------------------------------------------------- /routing/README.md: -------------------------------------------------------------------------------- 1 | Leaflet Routing Machine / Valhalla by Mapzen 2 | ================================ 3 | 4 | Extends [Leaflet Routing Machine](https://github.com/perliedman/leaflet-routing-machine) with support for [Mapzen's open source routing engine Valhalla](https://github.com/valhalla) 5 | 6 | Work in process -------------------------------------------------------------------------------- /map_matching/conf/env.conf: -------------------------------------------------------------------------------- 1 | var server = { 2 | local: "http://localhost:8002/trace_attributes", 3 | dev: "https://valhalla1.openstreetmap.de/trace_attributes", 4 | prod:"https://valhalla1.openstreetmap.de/trace_attributes" 5 | } 6 | var accessToken = { 7 | local: "", 8 | dev: "", 9 | prod:"" 10 | } 11 | -------------------------------------------------------------------------------- /routing/conf/environment.conf: -------------------------------------------------------------------------------- 1 | var server = { 2 | local: "http://localhost:8002/", 3 | prod:"https://valhalla1.openstreetmap.de/" 4 | } 5 | 6 | var heightServer = { 7 | local: "http://localhost:8002/", 8 | prod:"https://valhalla1.openstreetmap.de/" 9 | } 10 | 11 | //Add your own tokens for testing 12 | var prodToken = "" 13 | -------------------------------------------------------------------------------- /flot/Makefile: -------------------------------------------------------------------------------- 1 | # Makefile for generating minified files 2 | 3 | .PHONY: all 4 | 5 | # we cheat and process all .js files instead of an exhaustive list 6 | all: $(patsubst %.js,%.min.js,$(filter-out %.min.js,$(wildcard *.js))) 7 | 8 | %.min.js: %.js 9 | yui-compressor $< -o $@ 10 | 11 | test: 12 | ./node_modules/.bin/jshint *jquery.flot.js 13 | -------------------------------------------------------------------------------- /flot/examples/axes-time-zones/tz/factory: -------------------------------------------------------------------------------- 1 | #
2 | # This file is in the public domain, so clarified as of
3 | # 2009-05-17 by Arthur David Olson.
4 |
5 | # For companies who don't want to put time zone specification in
6 | # their installation procedures. When users run date, they'll get the message.
7 | # Also useful for the "comp.sources" version.
8 |
9 | # Zone NAME GMTOFF RULES FORMAT
10 | Zone Factory 0 - "Local time zone must be set--see zic manual page"
11 |
--------------------------------------------------------------------------------
/optimized_route/conf/env.conf:
--------------------------------------------------------------------------------
1 | var server = {
2 | local: "http://localhost:8002/",
3 | dev: "https://valhalla1.openstreetmap.de/",
4 | prod: "https://valhalla1.openstreetmap.de/"
5 | }
6 | var accessToken = {
7 | local: "",
8 | dev: "",
9 | prod: ""
10 | }
11 | var locateServer = {
12 | local: "http://localhost:8002/",
13 | dev: "https://valhalla1.openstreetmap.de/",
14 | prod: "https://valhalla1.openstreetmap.de/"
15 | }
16 | var locateToken = {
17 | local: "",
18 | dev: "",
19 | prod: ""
20 | }
21 |
--------------------------------------------------------------------------------
/isochrone/styles.css:
--------------------------------------------------------------------------------
1 | body {
2 | width: 100%;
3 | height: 100vh;
4 | padding: 0;
5 | margin: 0;
6 | font-family: sans-serif;
7 | }
8 |
9 | .container {
10 | display: flex;
11 | flex-direction: row;
12 | height: 100%;
13 | width: 100%;
14 | }
15 |
16 | #map-container {
17 | height: 100%;
18 | width: 75%;
19 | }
20 |
21 | #map {
22 | height: 100%;
23 | width: 100%;
24 | }
25 |
26 | #sidebar {
27 | height: 100%;
28 | flex-grow: 1;
29 | padding: 10px;
30 | text-align: center;
31 | }
32 |
33 | form {
34 | display: block;
35 | text-align: left;
36 | }
37 |
38 | label {
39 | display: block;
40 | margin-top: 10px;
41 | }
--------------------------------------------------------------------------------
/matrix/css/mapzen-common.css:
--------------------------------------------------------------------------------
1 | /* button styles */
2 |
3 | .btn {
4 | border-radius: 0;
5 | border-width: 1px;
6 | text-transform: uppercase;
7 | font-weight: 600;
8 | padding: 10px 16px;
9 | }
10 |
11 |
12 | .btn-mapzen {
13 | border-color: #d4645c;;
14 | background-color: #d4645c;;
15 | color: #fff;
16 | text-shadow: none;
17 | }
18 |
19 | .btn-mapzen:hover, .btn-mapzen:focus {
20 | border-color: #993434;
21 | background-color: #993434;
22 | color: #fff;
23 | }
24 |
25 | .btn-transparent {
26 | background: transparent;
27 | border-color: #444;;
28 | color: #444;;
29 | }
30 |
31 | .btn-transparent:hover, .btn-transparent:focus {
32 | background-color: #e5e5e5;
33 | border-color: #444;;
34 | color: #444;;
35 | }
--------------------------------------------------------------------------------
/map_matching/css/mapzen-common.css:
--------------------------------------------------------------------------------
1 | /* button styles */
2 |
3 | .btn {
4 | border-radius: 0;
5 | border-width: 1px;
6 | text-transform: uppercase;
7 | font-weight: 600;
8 | padding: 10px 16px;
9 | }
10 |
11 |
12 | .btn-mapzen {
13 | border-color: #d4645c;;
14 | background-color: #d4645c;;
15 | color: #fff;
16 | text-shadow: none;
17 | }
18 |
19 | .btn-mapzen:hover, .btn-mapzen:focus {
20 | border-color: #993434;
21 | background-color: #993434;
22 | color: #fff;
23 | }
24 |
25 | .btn-transparent {
26 | background: transparent;
27 | border-color: #444;;
28 | color: #444;;
29 | }
30 |
31 | .btn-transparent:hover, .btn-transparent:focus {
32 | background-color: #e5e5e5;
33 | border-color: #444;;
34 | color: #444;;
35 | }
--------------------------------------------------------------------------------
/optimized_route/css/mapzen-common.css:
--------------------------------------------------------------------------------
1 | /* button styles */
2 |
3 | .btn {
4 | border-radius: 0;
5 | border-width: 1px;
6 | text-transform: uppercase;
7 | font-weight: 600;
8 | padding: 10px 16px;
9 | }
10 |
11 |
12 | .btn-mapzen {
13 | border-color: #d4645c;;
14 | background-color: #d4645c;;
15 | color: #fff;
16 | text-shadow: none;
17 | }
18 |
19 | .btn-mapzen:hover, .btn-mapzen:focus {
20 | border-color: #993434;
21 | background-color: #993434;
22 | color: #fff;
23 | }
24 |
25 | .btn-transparent {
26 | background: transparent;
27 | border-color: #444;;
28 | color: #444;;
29 | }
30 |
31 | .btn-transparent:hover, .btn-transparent:focus {
32 | background-color: #e5e5e5;
33 | border-color: #444;;
34 | color: #444;;
35 | }
--------------------------------------------------------------------------------
/elevation/css/mapzen-common.css:
--------------------------------------------------------------------------------
1 | /* button styles */
2 |
3 | button:focus {
4 | outline: 0;
5 | }
6 |
7 | .btn {
8 | border-radius: 0;
9 | border-width: 1px;
10 | text-transform: uppercase;
11 | font-weight: 600;
12 | padding: 10px 16px;
13 | }
14 |
15 |
16 | .btn-mapzen {
17 | border-color: #d4645c;;
18 | background-color: #d4645c;;
19 | color: #fff;
20 | text-shadow: none;
21 | }
22 |
23 | .btn-mapzen:hover, .btn-mapzen:focus {
24 | border-color: #993434;
25 | background-color: #993434;
26 | color: #fff;
27 | }
28 |
29 | .btn-transparent {
30 | background: transparent;
31 | border-color: #444;;
32 | color: #444;;
33 | }
34 |
35 | .btn-transparent:hover, .btn-transparent:focus {
36 | background-color: #e5e5e5;
37 | border-color: #444;;
38 | color: #444;;
39 | }
--------------------------------------------------------------------------------
/flot/examples/axes-time-zones/tz/yearistype.sh:
--------------------------------------------------------------------------------
1 | #! /bin/sh
2 |
3 | : 'This file is in the public domain, so clarified as of'
4 | : '2006-07-17 by Arthur David Olson.'
5 |
6 | case $#-$1 in
7 | 2-|2-0*|2-*[!0-9]*)
8 | echo "$0: wild year - $1" >&2
9 | exit 1 ;;
10 | esac
11 |
12 | case $#-$2 in
13 | 2-even)
14 | case $1 in
15 | *[24680]) exit 0 ;;
16 | *) exit 1 ;;
17 | esac ;;
18 | 2-nonpres|2-nonuspres)
19 | case $1 in
20 | *[02468][048]|*[13579][26]) exit 1 ;;
21 | *) exit 0 ;;
22 | esac ;;
23 | 2-odd)
24 | case $1 in
25 | *[13579]) exit 0 ;;
26 | *) exit 1 ;;
27 | esac ;;
28 | 2-uspres)
29 | case $1 in
30 | *[02468][048]|*[13579][26]) exit 0 ;;
31 | *) exit 1 ;;
32 | esac ;;
33 | 2-*)
34 | echo "$0: wild type - $2" >&2 ;;
35 | esac
36 |
37 | echo "$0: usage is $0 year even|odd|uspres|nonpres|nonuspres" >&2
38 | exit 1
39 |
--------------------------------------------------------------------------------
/points/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | A utility to show points from a bunch of text
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 | Paste some text in the box below and click "Submit". Any text submitted which contains "PointLL(lat, lng)" will have a marker on the map below. Hovering over a marker will highlight the coordinates in the text.
12 |
13 |
14 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/polyline/decode.js:
--------------------------------------------------------------------------------
1 | //decode an encoded string
2 | function decode(encoded, mul) {
3 | //precision
4 | var inv = 1.0 / mul;
5 | var decoded = [];
6 | var previous = [0,0];
7 | var i = 0;
8 | //for each byte
9 | while(i < encoded.length) {
10 | //for each coord (lat, lon)
11 | var ll = [0,0]
12 | for(var j = 0; j < 2; j++) {
13 | var shift = 0;
14 | var byte = 0x20;
15 | //keep decoding bytes until you have this coord
16 | while(byte >= 0x20) {
17 | byte = encoded.charCodeAt(i++) - 63;
18 | ll[j] |= (byte & 0x1f) << shift;
19 | shift += 5;
20 | }
21 | //add previous offset to get final value and remember for next one
22 | ll[j] = previous[j] + (ll[j] & 1 ? ~(ll[j] >> 1) : (ll[j] >> 1));
23 | previous[j] = ll[j];
24 | }
25 | //scale by precision and chop off long coords also flip the positions so
26 | //its the far more standard lon,lat instead of lat,lon
27 | decoded.push([ll[1] * inv,ll[0] * inv]);
28 | }
29 | //hand back the list of coordinates
30 | return decoded;
31 | };
32 |
--------------------------------------------------------------------------------
/matrix/js/MIT-LICENCE.txt:
--------------------------------------------------------------------------------
1 | Copyright 2012 Jacob Toye
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining
4 | a copy of this software and associated documentation files (the
5 | "Software"), to deal in the Software without restriction, including
6 | without limitation the rights to use, copy, modify, merge, publish,
7 | distribute, sublicense, and/or sell copies of the Software, and to
8 | permit persons to whom the Software is furnished to do so, subject to
9 | the following conditions:
10 |
11 | The above copyright notice and this permission notice shall be
12 | included in all copies or substantial portions of the Software.
13 |
14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/map_matching/js/MIT-LICENCE.txt:
--------------------------------------------------------------------------------
1 | Copyright 2012 Jacob Toye
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining
4 | a copy of this software and associated documentation files (the
5 | "Software"), to deal in the Software without restriction, including
6 | without limitation the rights to use, copy, modify, merge, publish,
7 | distribute, sublicense, and/or sell copies of the Software, and to
8 | permit persons to whom the Software is furnished to do so, subject to
9 | the following conditions:
10 |
11 | The above copyright notice and this permission notice shall be
12 | included in all copies or substantial portions of the Software.
13 |
14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/optimized_route/js/MIT-LICENCE.txt:
--------------------------------------------------------------------------------
1 | Copyright 2012 Jacob Toye
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining
4 | a copy of this software and associated documentation files (the
5 | "Software"), to deal in the Software without restriction, including
6 | without limitation the rights to use, copy, modify, merge, publish,
7 | distribute, sublicense, and/or sell copies of the Software, and to
8 | permit persons to whom the Software is furnished to do so, subject to
9 | the following conditions:
10 |
11 | The above copyright notice and this permission notice shall be
12 | included in all copies or substantial portions of the Software.
13 |
14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/flot/LICENSE.txt:
--------------------------------------------------------------------------------
1 | Copyright (c) 2007-2014 IOLA and Ole Laursen
2 |
3 | Permission is hereby granted, free of charge, to any person
4 | obtaining a copy of this software and associated documentation
5 | files (the "Software"), to deal in the Software without
6 | restriction, including without limitation the rights to use,
7 | copy, modify, merge, publish, distribute, sublicense, and/or sell
8 | copies of the Software, and to permit persons to whom the
9 | Software is furnished to do so, subject to the following
10 | conditions:
11 |
12 | The above copyright notice and this permission notice shall be
13 | included in all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
17 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
19 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
20 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22 | OTHER DEALINGS IN THE SOFTWARE.
23 |
--------------------------------------------------------------------------------
/locate/style.css:
--------------------------------------------------------------------------------
1 | html {
2 | width: 100%;
3 | height: 100%;
4 | }
5 |
6 | body {
7 | font: 13px/1.5 "Helvetica Neue", Helvetica, Arial, sans-serif;
8 | width: 100%;
9 | height: 100%;
10 | color: #383a3a;
11 | min-height: 600px;
12 | padding: 0;
13 | margin: 0;
14 | }
15 |
16 | #container {
17 | height: 100%;
18 | margin: 0;
19 | padding: 0;
20 | display: flex;
21 | flex-direction: row;
22 | flex-wrap: wrap;
23 | width: 100%;
24 | }
25 |
26 | #map-container {
27 | height: 100%;
28 | flex-grow: 1;
29 | }
30 |
31 | #map {
32 | width: 100%;
33 | height: 100%;
34 | }
35 |
36 | #sidebar {
37 | height: 100%;
38 | padding: 10px;
39 | overflow: scroll;
40 | width: 25%;
41 | }
42 |
43 | #logo {
44 | text-align: center;
45 | }
46 |
47 | #properties {
48 | max-height: 50vh;
49 | overflow: scroll;
50 | }
51 |
52 | pre {
53 | background-color: ghostwhite;
54 | border: 1px solid silver;
55 | padding: 5px 5px;
56 | margin: 5px;
57 | }
58 |
59 | .json-key {
60 | color: brown;
61 | }
62 |
63 | .json-number {
64 | color: darkgreen;
65 | }
66 |
67 | .json-string {
68 | color: brown;
69 | }
70 |
71 | .json-constant {
72 | color: navy;
73 | }
--------------------------------------------------------------------------------
/matrix/js/LICENSE.txt:
--------------------------------------------------------------------------------
1 | Copyright (c) 2014, Michael Eisenbraun (http://eisenbraun.github.io/columns/)
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining
4 | a copy of this software and associated documentation files (the
5 | "Software"), to deal in the Software without restriction, including
6 | without limitation the rights to use, copy, modify, merge, publish,
7 | distribute, sublicense, and/or sell copies of the Software, and to
8 | permit persons to whom the Software is furnished to do so, subject to
9 | the following conditions:
10 |
11 | The above copyright notice and this permission notice shall be
12 | included in all copies or substantial portions of the Software.
13 |
14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 |
--------------------------------------------------------------------------------
/map_matching/js/LICENSE.txt:
--------------------------------------------------------------------------------
1 | Copyright (c) 2014, Michael Eisenbraun (http://eisenbraun.github.io/columns/)
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining
4 | a copy of this software and associated documentation files (the
5 | "Software"), to deal in the Software without restriction, including
6 | without limitation the rights to use, copy, modify, merge, publish,
7 | distribute, sublicense, and/or sell copies of the Software, and to
8 | permit persons to whom the Software is furnished to do so, subject to
9 | the following conditions:
10 |
11 | The above copyright notice and this permission notice shall be
12 | included in all copies or substantial portions of the Software.
13 |
14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 |
--------------------------------------------------------------------------------
/optimized_route/js/LICENSE.txt:
--------------------------------------------------------------------------------
1 | Copyright (c) 2014, Michael Eisenbraun (http://eisenbraun.github.io/columns/)
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining
4 | a copy of this software and associated documentation files (the
5 | "Software"), to deal in the Software without restriction, including
6 | without limitation the rights to use, copy, modify, merge, publish,
7 | distribute, sublicense, and/or sell copies of the Software, and to
8 | permit persons to whom the Software is furnished to do so, subject to
9 | the following conditions:
10 |
11 | The above copyright notice and this permission notice shall be
12 | included in all copies or substantial portions of the Software.
13 |
14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 |
--------------------------------------------------------------------------------
/flot/jquery.flot.symbol.min.js:
--------------------------------------------------------------------------------
1 | /* Javascript plotting library for jQuery, version 0.8.3.
2 |
3 | Copyright (c) 2007-2014 IOLA and Ole Laursen.
4 | Licensed under the MIT license.
5 |
6 | */
7 | (function($){function processRawData(plot,series,datapoints){var handlers={square:function(ctx,x,y,radius,shadow){var size=radius*Math.sqrt(Math.PI)/2;ctx.rect(x-size,y-size,size+size,size+size)},diamond:function(ctx,x,y,radius,shadow){var size=radius*Math.sqrt(Math.PI/2);ctx.moveTo(x-size,y);ctx.lineTo(x,y-size);ctx.lineTo(x+size,y);ctx.lineTo(x,y+size);ctx.lineTo(x-size,y)},triangle:function(ctx,x,y,radius,shadow){var size=radius*Math.sqrt(2*Math.PI/Math.sin(Math.PI/3));var height=size*Math.sin(Math.PI/3);ctx.moveTo(x-size/2,y+height/2);ctx.lineTo(x+size/2,y+height/2);if(!shadow){ctx.lineTo(x,y-height/2);ctx.lineTo(x-size/2,y+height/2)}},cross:function(ctx,x,y,radius,shadow){var size=radius*Math.sqrt(Math.PI)/2;ctx.moveTo(x-size,y-size);ctx.lineTo(x+size,y+size);ctx.moveTo(x-size,y+size);ctx.lineTo(x+size,y-size)}};var s=series.points.symbol;if(handlers[s])series.points.symbol=handlers[s]}function init(plot){plot.hooks.processDatapoints.push(processRawData)}$.plot.plugins.push({init:init,name:"symbols",version:"1.0"})})(jQuery);
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2018 Valhalla contributors
4 | Copyright (c) 2015-2017 Mapillary AB, Mapzen
5 |
6 | Permission is hereby granted, free of charge, to any person obtaining a copy
7 | of this software and associated documentation files (the "Software"), to deal
8 | in the Software without restriction, including without limitation the rights
9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | copies of the Software, and to permit persons to whom the Software is
11 | furnished to do so, subject to the following conditions:
12 |
13 | The above copyright notice and this permission notice shall be included in
14 | all copies or substantial portions of the Software.
15 |
16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 | THE SOFTWARE.
23 |
24 |
--------------------------------------------------------------------------------
/flot/examples/axes-time-zones/tz/pacificnew:
--------------------------------------------------------------------------------
1 | #
2 | # This file is in the public domain, so clarified as of
3 | # 2009-05-17 by Arthur David Olson.
4 |
5 | # From Arthur David Olson (1989-04-05):
6 | # On 1989-04-05, the U. S. House of Representatives passed (238-154) a bill
7 | # establishing "Pacific Presidential Election Time"; it was not acted on
8 | # by the Senate or signed into law by the President.
9 | # You might want to change the "PE" (Presidential Election) below to
10 | # "Q" (Quadrennial) to maintain three-character zone abbreviations.
11 | # If you're really conservative, you might want to change it to "D".
12 | # Avoid "L" (Leap Year), which won't be true in 2100.
13 |
14 | # If Presidential Election Time is ever established, replace "XXXX" below
15 | # with the year the law takes effect and uncomment the "##" lines.
16 |
17 | # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
18 | ## Rule Twilite XXXX max - Apr Sun>=1 2:00 1:00 D
19 | ## Rule Twilite XXXX max uspres Oct lastSun 2:00 1:00 PE
20 | ## Rule Twilite XXXX max uspres Nov Sun>=7 2:00 0 S
21 | ## Rule Twilite XXXX max nonpres Oct lastSun 2:00 0 S
22 |
23 | # Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL]
24 | ## Zone America/Los_Angeles-PET -8:00 US P%sT XXXX
25 | ## -8:00 Twilite P%sT
26 |
27 | # For now...
28 | Link America/Los_Angeles US/Pacific-New ##
29 |
--------------------------------------------------------------------------------
/matrix/css/leaflet.label.css:
--------------------------------------------------------------------------------
1 | .leaflet-label {
2 | //background: rgb(235, 235, 235);
3 | //background: rgba(235, 235, 235, 0.81);
4 | //background: #585858;
5 | //background-clip: padding-box;
6 | //border-color: #777;
7 | //border-color: rgba(0,0,0,0.25);
8 | //border-radius: 4px;
9 | //border-style: solid;
10 | //border-width: 4px;
11 | color: #FFFFFF;
12 | //color: #111;
13 | display: block;
14 | font: 12px/20px "Helvetica Neue", Arial, Helvetica, sans-serif;
15 | font-weight: bold;
16 | padding: 1px 6px;
17 | position: absolute;
18 | -webkit-user-select: none;
19 | -moz-user-select: none;
20 | -ms-user-select: none;
21 | user-select: none;
22 | pointer-events: none;
23 | white-space: nowrap;
24 | z-index: 6;
25 | }
26 |
27 | .leaflet-label.leaflet-clickable {
28 | cursor: pointer;
29 | pointer-events: auto;
30 | }
31 |
32 | .leaflet-label:before,
33 | .leaflet-label:after {
34 | border-top: 6px solid transparent;
35 | border-bottom: 6px solid transparent;
36 | content: none;
37 | position: absolute;
38 | top: 5px;
39 | }
40 |
41 | .leaflet-label:before {
42 | border-right: 6px solid black;
43 | border-right-color: inherit;
44 | left: -10px;
45 | }
46 |
47 | .leaflet-label:after {
48 | border-left: 6px solid black;
49 | border-left-color: inherit;
50 | right: -10px;
51 | }
52 |
53 | .leaflet-label-right:before,
54 | .leaflet-label-left:after {
55 | content: "";
56 | }
57 |
--------------------------------------------------------------------------------
/map_matching/css/leaflet.label.css:
--------------------------------------------------------------------------------
1 | .leaflet-label {
2 | //background: rgb(235, 235, 235);
3 | //background: rgba(235, 235, 235, 0.81);
4 | //background: #585858;
5 | //background-clip: padding-box;
6 | //border-color: #777;
7 | //border-color: rgba(0,0,0,0.25);
8 | //border-radius: 4px;
9 | //border-style: solid;
10 | //border-width: 4px;
11 | color: #FFFFFF;
12 | //color: #111;
13 | display: block;
14 | font: 12px/20px "Helvetica Neue", Arial, Helvetica, sans-serif;
15 | font-weight: bold;
16 | padding: 1px 6px;
17 | position: absolute;
18 | -webkit-user-select: none;
19 | -moz-user-select: none;
20 | -ms-user-select: none;
21 | user-select: none;
22 | pointer-events: none;
23 | white-space: nowrap;
24 | z-index: 6;
25 | }
26 |
27 | .leaflet-label.leaflet-clickable {
28 | cursor: pointer;
29 | pointer-events: auto;
30 | }
31 |
32 | .leaflet-label:before,
33 | .leaflet-label:after {
34 | border-top: 6px solid transparent;
35 | border-bottom: 6px solid transparent;
36 | content: none;
37 | position: absolute;
38 | top: 5px;
39 | }
40 |
41 | .leaflet-label:before {
42 | border-right: 6px solid black;
43 | border-right-color: inherit;
44 | left: -10px;
45 | }
46 |
47 | .leaflet-label:after {
48 | border-left: 6px solid black;
49 | border-left-color: inherit;
50 | right: -10px;
51 | }
52 |
53 | .leaflet-label-right:before,
54 | .leaflet-label-left:after {
55 | content: "";
56 | }
57 |
--------------------------------------------------------------------------------
/optimized_route/css/leaflet.label.css:
--------------------------------------------------------------------------------
1 | .leaflet-label {
2 | //background: rgb(235, 235, 235);
3 | //background: rgba(235, 235, 235, 0.81);
4 | //background: #585858;
5 | //background-clip: padding-box;
6 | //border-color: #777;
7 | //border-color: rgba(0,0,0,0.25);
8 | //border-radius: 4px;
9 | //border-style: solid;
10 | //border-width: 4px;
11 | color: #FFFFFF;
12 | //color: #111;
13 | display: block;
14 | font: 12px/20px "Helvetica Neue", Arial, Helvetica, sans-serif;
15 | font-weight: bold;
16 | padding: 1px 6px;
17 | position: absolute;
18 | -webkit-user-select: none;
19 | -moz-user-select: none;
20 | -ms-user-select: none;
21 | user-select: none;
22 | pointer-events: none;
23 | white-space: nowrap;
24 | z-index: 6;
25 | }
26 |
27 | .leaflet-label.leaflet-clickable {
28 | cursor: pointer;
29 | pointer-events: auto;
30 | }
31 |
32 | .leaflet-label:before,
33 | .leaflet-label:after {
34 | border-top: 6px solid transparent;
35 | border-bottom: 6px solid transparent;
36 | content: none;
37 | position: absolute;
38 | top: 5px;
39 | }
40 |
41 | .leaflet-label:before {
42 | border-right: 6px solid black;
43 | border-right-color: inherit;
44 | left: -10px;
45 | }
46 |
47 | .leaflet-label:after {
48 | border-left: 6px solid black;
49 | border-left-color: inherit;
50 | right: -10px;
51 | }
52 |
53 | .leaflet-label-right:before,
54 | .leaflet-label-left:after {
55 | content: "";
56 | }
57 |
--------------------------------------------------------------------------------
/flot/examples/axes-time-zones/tz/systemv:
--------------------------------------------------------------------------------
1 | #
2 | # This file is in the public domain, so clarified as of
3 | # 2009-05-17 by Arthur David Olson.
4 |
5 | # Old rules, should the need arise.
6 | # No attempt is made to handle Newfoundland, since it cannot be expressed
7 | # using the System V "TZ" scheme (half-hour offset), or anything outside
8 | # North America (no support for non-standard DST start/end dates), nor
9 | # the changes in the DST rules in the US after 1976 (which occurred after
10 | # the old rules were written).
11 | #
12 | # If you need the old rules, uncomment ## lines.
13 | # Compile this *without* leap second correction for true conformance.
14 |
15 | # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
16 | Rule SystemV min 1973 - Apr lastSun 2:00 1:00 D
17 | Rule SystemV min 1973 - Oct lastSun 2:00 0 S
18 | Rule SystemV 1974 only - Jan 6 2:00 1:00 D
19 | Rule SystemV 1974 only - Nov lastSun 2:00 0 S
20 | Rule SystemV 1975 only - Feb 23 2:00 1:00 D
21 | Rule SystemV 1975 only - Oct lastSun 2:00 0 S
22 | Rule SystemV 1976 max - Apr lastSun 2:00 1:00 D
23 | Rule SystemV 1976 max - Oct lastSun 2:00 0 S
24 |
25 | # Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL]
26 | ## Zone SystemV/AST4ADT -4:00 SystemV A%sT
27 | ## Zone SystemV/EST5EDT -5:00 SystemV E%sT
28 | ## Zone SystemV/CST6CDT -6:00 SystemV C%sT
29 | ## Zone SystemV/MST7MDT -7:00 SystemV M%sT
30 | ## Zone SystemV/PST8PDT -8:00 SystemV P%sT
31 | ## Zone SystemV/YST9YDT -9:00 SystemV Y%sT
32 | ## Zone SystemV/AST4 -4:00 - AST
33 | ## Zone SystemV/EST5 -5:00 - EST
34 | ## Zone SystemV/CST6 -6:00 - CST
35 | ## Zone SystemV/MST7 -7:00 - MST
36 | ## Zone SystemV/PST8 -8:00 - PST
37 | ## Zone SystemV/YST9 -9:00 - YST
38 | ## Zone SystemV/HST10 -10:00 - HST
39 |
--------------------------------------------------------------------------------
/flot/examples/shared/jquery-ui/jquery-ui.min.css:
--------------------------------------------------------------------------------
1 | /*! jQuery UI - v1.10.0 - 2013-01-26
2 | * http://jqueryui.com
3 | * Includes: jquery.ui.core.css, jquery.ui.resizable.css
4 | * Copyright (c) 2013 jQuery Foundation and other contributors Licensed MIT */
5 |
6 | .ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}
--------------------------------------------------------------------------------
/routing/resource/scene.yaml:
--------------------------------------------------------------------------------
1 | cameras:
2 | camera1:
3 | type: flat
4 |
5 | lights:
6 | light1:
7 | type: directional
8 | direction: [0, 1, -.5]
9 | diffuse: .3
10 | ambient: 1
11 |
12 | sources:
13 | osm:
14 | type: TopoJSONTiles
15 | url: //vector.mapzen.com/osm/all/{z}/{x}/{y}.topojson?api_key=vector-tiles-HqUVidw
16 |
17 | layers:
18 | earth:
19 | data: { source: osm }
20 | draw:
21 | polygons:
22 | order: 0
23 | color: '#ddeeee'
24 |
25 | landuse:
26 | data: { source: osm }
27 | draw:
28 | polygons:
29 | order: 1
30 | color: '#aaffaa'
31 |
32 | water:
33 | data: { source: osm }
34 | draw:
35 | polygons:
36 | order: 2
37 | color: '#88bbee'
38 |
39 | roads:
40 | data: { source: osm }
41 | filter:
42 | not: { kind: ["path", "rail"] }
43 | draw:
44 | lines:
45 | order: 4
46 | color: gray
47 | width: 8
48 | cap: round
49 | highway:
50 | filter:
51 | kind: highway
52 | draw:
53 | lines:
54 | order: 5
55 | color: '#cc6666'
56 | width: 12
57 | outline:
58 | color: grey
59 | width: 1.5
60 | minor_road:
61 | filter:
62 | kind: minor_road
63 | draw:
64 | lines:
65 | order: 3
66 | color: lightgrey
67 | width: 5
--------------------------------------------------------------------------------
/routing/css/elevation.css:
--------------------------------------------------------------------------------
1 | html {
2 | width: 100%;
3 | height: 100%;
4 | }
5 |
6 | body {
7 | font: 13px/1.5 "Helvetica Neue", Helvetica, Arial, sans-serif;
8 | padding: 0px;
9 | margin: 0px;
10 | //background-color: black;
11 | }
12 |
13 | .container-fluid {
14 | height: 100%;
15 | }
16 |
17 | #map {
18 | height:100vh;
19 | width: 100%;
20 | /* position: absolute;
21 | background: #fff;
22 | margin:0;*/
23 | }
24 |
25 | .range-bar {
26 | margin: 20px 0;
27 | }
28 |
29 | .instruction {
30 | margin: 20px 0;
31 | }
32 |
33 | .axisLabel {
34 | position: absolute;
35 | text-align: center;
36 | font-size: 12px;
37 | font-weight: bold;
38 | }
39 |
40 | .xaxisLabel {
41 | bottom: 10px;
42 | left: 0;
43 | right: 0;
44 | }
45 |
46 | .yaxisLabel {
47 | top: 50%;
48 | left: 2px;
49 | font-weight: bold;
50 | transform: rotate(-90deg);
51 | -webkit-transform: rotate(-90deg);
52 | transform-origin: 0 0;
53 | -webkit-transform-origin: 0 0;
54 | }
55 |
56 | #graph{
57 | width: 200px;
58 | height: 300px;
59 | position: center;
60 | margin: 0 auto;
61 | background-color: #FFF;
62 | }
63 |
64 | .legend table, .legend > div {
65 | height: 35px !important;
66 | opacity: 1 !important;
67 | right: -55px;
68 | top: 10px;
69 | width: 116px !important;
70 | }
71 |
72 | .legend table {
73 | border: 1px solid #555;
74 | padding: 5px;
75 | }
76 |
77 | #flot-tooltip {
78 | font-size: 12px;
79 | font-family: Verdana, Arial, sans-serif;
80 | position: absolute;
81 | display: none;
82 | padding: 2px;
83 | background-color: #FFF;
84 | opacity: 1;
85 | border: 1px solid #aaa;
86 | -moz-box-shadow: 0px 1px 1px #ddd;
87 | -webkit-box-shadow: 0px 1px 1px #ddd;
88 | box-shadow: 0px 1px 2px #ddd;
89 | }
--------------------------------------------------------------------------------
/flot/jquery.flot.threshold.min.js:
--------------------------------------------------------------------------------
1 | /* Javascript plotting library for jQuery, version 0.8.3.
2 |
3 | Copyright (c) 2007-2014 IOLA and Ole Laursen.
4 | Licensed under the MIT license.
5 |
6 | */
7 | (function($){var options={series:{threshold:null}};function init(plot){function thresholdData(plot,s,datapoints,below,color){var ps=datapoints.pointsize,i,x,y,p,prevp,thresholded=$.extend({},s);thresholded.datapoints={points:[],pointsize:ps,format:datapoints.format};thresholded.label=null;thresholded.color=color;thresholded.threshold=null;thresholded.originSeries=s;thresholded.data=[];var origpoints=datapoints.points,addCrossingPoints=s.lines.show;var threspoints=[];var newpoints=[];var m;for(i=0;i0&&origpoints[i-ps]!=null){var interx=x+(below-y)*(x-origpoints[i-ps])/(y-origpoints[i-ps+1]);prevp.push(interx);prevp.push(below);for(m=2;m0){var origIndex=$.inArray(s,plot.getData());plot.getData().splice(origIndex+1,0,thresholded)}}function processThresholds(plot,s,datapoints){if(!s.threshold)return;if(s.threshold instanceof Array){s.threshold.sort(function(a,b){return a.below-b.below});$(s.threshold).each(function(i,th){thresholdData(plot,s,datapoints,th.below,th.color)})}else{thresholdData(plot,s,datapoints,s.threshold.below,s.threshold.color)}}plot.hooks.processDatapoints.push(processThresholds)}$.plot.plugins.push({init:init,options:options,name:"threshold",version:"1.2"})})(jQuery);
--------------------------------------------------------------------------------
/flot/examples/categories/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Flot Examples: Categories
6 |
7 |
8 |
9 |
10 |
11 |
37 |
38 |
39 |
40 |
41 | Categories
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 | With the categories plugin you can plot categories/textual data easily.
51 |
52 |
53 |
54 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
--------------------------------------------------------------------------------
/flot/examples/basic-usage/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Flot Examples: Basic Usage
6 |
7 |
8 |
9 |
10 |
33 |
34 |
35 |
36 |
37 | Basic Usage
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 | You don't have to do much to get an attractive plot. Create a placeholder, make sure it has dimensions (so Flot knows at what size to draw the plot), then call the plot function with your data.
47 |
48 | The axes are automatically scaled.
49 |
50 |
51 |
52 |
55 |
56 |
57 |
58 |
--------------------------------------------------------------------------------
/elevation/css/elevation.css:
--------------------------------------------------------------------------------
1 | body {
2 | width: 100%;
3 | height: 100vh;
4 | padding: 0;
5 | margin: 0;
6 | font-family: sans-serif;
7 | }
8 |
9 | .container {
10 | display: flex;
11 | flex-direction: row;
12 | height: 100%;
13 | width: 100%;
14 | overflow: hidden;
15 | }
16 |
17 | #map-container {
18 | height: 100%;
19 | width: 75%;
20 | }
21 |
22 | #map {
23 | height: 100%;
24 | width: 100%;
25 | }
26 |
27 | #sidebar {
28 | height: 100%;
29 | padding: 10px;
30 | text-align: center;
31 | overflow: scroll;
32 | width: 25%;
33 | }
34 |
35 | form {
36 | display: block;
37 | text-align: left;
38 | }
39 |
40 | label {
41 | display: block;
42 | margin-top: 10px;
43 | }
44 |
45 | .range-bar {
46 | margin: 20px 0;
47 | }
48 |
49 | .instruction {
50 | margin: 20px 0;
51 | }
52 |
53 | .axisLabel {
54 | position: absolute;
55 | text-align: center;
56 | font-size: 12px;
57 | font-weight: bold;
58 | }
59 |
60 | .xaxisLabel {
61 | bottom: 10px;
62 | left: 0;
63 | right: 0;
64 | }
65 |
66 | .yaxisLabel {
67 | top: 50%;
68 | left: 2px;
69 | font-weight: bold;
70 | transform: rotate(-90deg);
71 | -webkit-transform: rotate(-90deg);
72 | transform-origin: 0 0;
73 | -webkit-transform-origin: 0 0;
74 | }
75 |
76 | .legend table,
77 | .legend>div {
78 | height: 35px !important;
79 | opacity: 1 !important;
80 | right: -55px;
81 | top: 10px;
82 | width: 116px !important;
83 | }
84 |
85 | .legend table {
86 | border: 1px solid #555;
87 | padding: 5px;
88 | }
89 |
90 | #flot-tooltip {
91 | font-size: 12px;
92 | font-family: Verdana, Arial, sans-serif;
93 | position: absolute;
94 | display: none;
95 | padding: 2px;
96 | background-color: #FFF;
97 | opacity: 1;
98 | border: 1px solid #aaa;
99 | -moz-box-shadow: 0px 1px 1px #ddd;
100 | -webkit-box-shadow: 0px 1px 1px #ddd;
101 | box-shadow: 0px 1px 2px #ddd;
102 | }
--------------------------------------------------------------------------------
/matrix/images/multimodal.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
22 |
--------------------------------------------------------------------------------
/flot/jquery.flot.crosshair.min.js:
--------------------------------------------------------------------------------
1 | /* Javascript plotting library for jQuery, version 0.8.3.
2 |
3 | Copyright (c) 2007-2014 IOLA and Ole Laursen.
4 | Licensed under the MIT license.
5 |
6 | */
7 | (function($){var options={crosshair:{mode:null,color:"rgba(170, 0, 0, 0.80)",lineWidth:1}};function init(plot){var crosshair={x:-1,y:-1,locked:false};plot.setCrosshair=function setCrosshair(pos){if(!pos)crosshair.x=-1;else{var o=plot.p2c(pos);crosshair.x=Math.max(0,Math.min(o.left,plot.width()));crosshair.y=Math.max(0,Math.min(o.top,plot.height()))}plot.triggerRedrawOverlay()};plot.clearCrosshair=plot.setCrosshair;plot.lockCrosshair=function lockCrosshair(pos){if(pos)plot.setCrosshair(pos);crosshair.locked=true};plot.unlockCrosshair=function unlockCrosshair(){crosshair.locked=false};function onMouseOut(e){if(crosshair.locked)return;if(crosshair.x!=-1){crosshair.x=-1;plot.triggerRedrawOverlay()}}function onMouseMove(e){if(crosshair.locked)return;if(plot.getSelection&&plot.getSelection()){crosshair.x=-1;return}var offset=plot.offset();crosshair.x=Math.max(0,Math.min(e.pageX-offset.left,plot.width()));crosshair.y=Math.max(0,Math.min(e.pageY-offset.top,plot.height()));plot.triggerRedrawOverlay()}plot.hooks.bindEvents.push(function(plot,eventHolder){if(!plot.getOptions().crosshair.mode)return;eventHolder.mouseout(onMouseOut);eventHolder.mousemove(onMouseMove)});plot.hooks.drawOverlay.push(function(plot,ctx){var c=plot.getOptions().crosshair;if(!c.mode)return;var plotOffset=plot.getPlotOffset();ctx.save();ctx.translate(plotOffset.left,plotOffset.top);if(crosshair.x!=-1){var adj=plot.getOptions().crosshair.lineWidth%2?.5:0;ctx.strokeStyle=c.color;ctx.lineWidth=c.lineWidth;ctx.lineJoin="round";ctx.beginPath();if(c.mode.indexOf("x")!=-1){var drawX=Math.floor(crosshair.x)+adj;ctx.moveTo(drawX,0);ctx.lineTo(drawX,plot.height())}if(c.mode.indexOf("y")!=-1){var drawY=Math.floor(crosshair.y)+adj;ctx.moveTo(0,drawY);ctx.lineTo(plot.width(),drawY)}ctx.stroke()}ctx.restore()});plot.hooks.shutdown.push(function(plot,eventHolder){eventHolder.unbind("mouseout",onMouseOut);eventHolder.unbind("mousemove",onMouseMove)})}$.plot.plugins.push({init:init,options:options,name:"crosshair",version:"1.0"})})(jQuery);
--------------------------------------------------------------------------------
/flot/examples/examples.css:
--------------------------------------------------------------------------------
1 | * { padding: 0; margin: 0; vertical-align: top; }
2 |
3 | body {
4 | background: url(background.png) repeat-x;
5 | font: 18px/1.5em "proxima-nova", Helvetica, Arial, sans-serif;
6 | }
7 |
8 | a { color: #069; }
9 | a:hover { color: #28b; }
10 |
11 | h2 {
12 | margin-top: 15px;
13 | font: normal 32px "omnes-pro", Helvetica, Arial, sans-serif;
14 | }
15 |
16 | h3 {
17 | margin-left: 30px;
18 | font: normal 26px "omnes-pro", Helvetica, Arial, sans-serif;
19 | color: #666;
20 | }
21 |
22 | p {
23 | margin-top: 10px;
24 | }
25 |
26 | button {
27 | font-size: 18px;
28 | padding: 1px 7px;
29 | }
30 |
31 | input {
32 | font-size: 18px;
33 | }
34 |
35 | input[type=checkbox] {
36 | margin: 7px;
37 | }
38 |
39 | #header {
40 | position: relative;
41 | width: 900px;
42 | margin: auto;
43 | }
44 |
45 | #header h2 {
46 | margin-left: 10px;
47 | vertical-align: middle;
48 | font-size: 42px;
49 | font-weight: bold;
50 | text-decoration: none;
51 | color: #000;
52 | }
53 |
54 | #content {
55 | width: 880px;
56 | margin: 0 auto;
57 | padding: 10px;
58 | }
59 |
60 | #footer {
61 | margin-top: 25px;
62 | margin-bottom: 10px;
63 | text-align: center;
64 | font-size: 12px;
65 | color: #999;
66 | }
67 |
68 | .demo-container {
69 | box-sizing: border-box;
70 | width: 850px;
71 | height: 450px;
72 | padding: 20px 15px 15px 15px;
73 | margin: 15px auto 30px auto;
74 | border: 1px solid #ddd;
75 | background: #fff;
76 | background: linear-gradient(#f6f6f6 0, #fff 50px);
77 | background: -o-linear-gradient(#f6f6f6 0, #fff 50px);
78 | background: -ms-linear-gradient(#f6f6f6 0, #fff 50px);
79 | background: -moz-linear-gradient(#f6f6f6 0, #fff 50px);
80 | background: -webkit-linear-gradient(#f6f6f6 0, #fff 50px);
81 | box-shadow: 0 3px 10px rgba(0,0,0,0.15);
82 | -o-box-shadow: 0 3px 10px rgba(0,0,0,0.1);
83 | -ms-box-shadow: 0 3px 10px rgba(0,0,0,0.1);
84 | -moz-box-shadow: 0 3px 10px rgba(0,0,0,0.1);
85 | -webkit-box-shadow: 0 3px 10px rgba(0,0,0,0.1);
86 | }
87 |
88 | .demo-placeholder {
89 | width: 100%;
90 | height: 100%;
91 | font-size: 14px;
92 | line-height: 1.2em;
93 | }
94 |
95 | .legend table {
96 | border-spacing: 5px;
97 | }
--------------------------------------------------------------------------------
/flot/jquery.flot.fillbetween.min.js:
--------------------------------------------------------------------------------
1 | /* Javascript plotting library for jQuery, version 0.8.3.
2 |
3 | Copyright (c) 2007-2014 IOLA and Ole Laursen.
4 | Licensed under the MIT license.
5 |
6 | */
7 | (function($){var options={series:{fillBetween:null}};function init(plot){function findBottomSeries(s,allseries){var i;for(i=0;i=allseries.length){return null}return allseries[s.fillBetween]}return null}function computeFillBottoms(plot,s,datapoints){if(s.fillBetween==null){return}var other=findBottomSeries(s,plot.getData());if(!other){return}var ps=datapoints.pointsize,points=datapoints.points,otherps=other.datapoints.pointsize,otherpoints=other.datapoints.points,newpoints=[],px,py,intery,qx,qy,bottom,withlines=s.lines.show,withbottom=ps>2&&datapoints.format[2].y,withsteps=withlines&&s.lines.steps,fromgap=true,i=0,j=0,l,m;while(true){if(i>=points.length){break}l=newpoints.length;if(points[i]==null){for(m=0;m=otherpoints.length){if(!withlines){for(m=0;mqx){if(withlines&&i>0&&points[i-ps]!=null){intery=py+(points[i-ps+1]-py)*(qx-px)/(points[i-ps]-px);newpoints.push(qx);newpoints.push(intery);for(m=2;m0&&otherpoints[j-otherps]!=null){bottom=qy+(otherpoints[j-otherps+1]-qy)*(px-qx)/(otherpoints[j-otherps]-qx)}i+=ps}fromgap=false;if(l!==newpoints.length&&withbottom){newpoints[l+2]=bottom}}if(withsteps&&l!==newpoints.length&&l>0&&newpoints[l]!==null&&newpoints[l]!==newpoints[l-ps]&&newpoints[l+1]!==newpoints[l-ps+1]){for(m=0;m=0;t--){if(i[t]==this){i.splice(t,1);break}}e.removeData(m);if(!i.length){if(r){cancelAnimationFrame(a)}else{clearTimeout(a)}a=null}},add:function(e){if(!n[f]&&this[s]){return false}var i;function a(e,n,a){var r=$(this),s=r.data(m)||{};s.w=n!==t?n:r.width();s.h=a!==t?a:r.height();i.apply(this,arguments)}if($.isFunction(e)){i=e;return a}else{i=e.handler;e.handler=a}}};function h(t){if(r===true){r=t||1}for(var s=i.length-1;s>=0;s--){var l=$(i[s]);if(l[0]==e||l.is(":visible")){var f=l.width(),c=l.height(),d=l.data(m);if(d&&(f!==d.w||c!==d.h)){l.trigger(u,[d.w=f,d.h=c]);r=t||true}}else{d=l.data(m);d.w=0;d.h=0}}if(a!==null){if(r&&(t==null||t-r<1e3)){a=e.requestAnimationFrame(h)}else{a=setTimeout(h,n[o]);r=false}}}if(!e.requestAnimationFrame){e.requestAnimationFrame=function(){return e.webkitRequestAnimationFrame||e.mozRequestAnimationFrame||e.oRequestAnimationFrame||e.msRequestAnimationFrame||function(t,i){return e.setTimeout(function(){t((new Date).getTime())},n[l])}}()}if(!e.cancelAnimationFrame){e.cancelAnimationFrame=function(){return e.webkitCancelRequestAnimationFrame||e.mozCancelRequestAnimationFrame||e.oCancelRequestAnimationFrame||e.msCancelRequestAnimationFrame||clearTimeout}()}})(jQuery,this);(function($){var options={};function init(plot){function onResize(){var placeholder=plot.getPlaceholder();if(placeholder.width()==0||placeholder.height()==0)return;plot.resize();plot.setupGrid();plot.draw()}function bindEvents(plot,eventHolder){plot.getPlaceholder().resize(onResize)}function shutdown(plot,eventHolder){plot.getPlaceholder().unbind("resize",onResize)}plot.hooks.bindEvents.push(bindEvents);plot.hooks.shutdown.push(shutdown)}$.plot.plugins.push({init:init,options:options,name:"resize",version:"1.0"})})(jQuery);
--------------------------------------------------------------------------------
/flot/examples/threshold/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Flot Examples: Thresholds
6 |
7 |
8 |
9 |
10 |
11 |
48 |
49 |
50 |
51 |
52 | Thresholds
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 | With the threshold plugin, you can apply a specific color to the part of a data series below a threshold. This is can be useful for highlighting negative values, e.g. when displaying net results or what's in stock.
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
74 |
75 |
76 |
77 |
--------------------------------------------------------------------------------
/points/points.js:
--------------------------------------------------------------------------------
1 | var map;
2 | var markers = [];
3 |
4 | function makePoints(event) {
5 | var text = document.getElementById("inputtext").value;
6 | var re = /[^0-9,] *(-?[0-9]+\.[0-9]+), *(-?[0-9]+\.[0-9]+) *[^0-9,]/g;
7 | var array;
8 |
9 | if (markers.length > 0) {
10 | for (var i = 0; i < markers.length; i++) {
11 | markers[i].removeFrom(map);
12 | }
13 | markers = [];
14 | }
15 |
16 | var last_idx = 0;
17 | var new_text = "";
18 | while ((array = re.exec(text)) !== null) {
19 | var lat = parseFloat(array[1]);
20 | var lng = parseFloat(array[2]);
21 | var idx = array.index;
22 | var len = array[0].length;
23 |
24 | var match_id = markers.length;
25 |
26 | new_text += text.substr(last_idx, idx - last_idx) + '' + array[0] + '';
27 | last_idx = idx + array[0].length;
28 |
29 | var marker = L.marker([lat, lng]);
30 | marker.match_id = match_id;
31 | marker.on('mouseover', function(e) {
32 | var id = e.target.match_id;
33 | document.getElementById("match_" + id).className = "rematch active";
34 | });
35 | marker.on('mouseout', function(e) {
36 | var id = e.target.match_id;
37 | document.getElementById("match_" + id).className = "rematch";
38 | });
39 | markers.push(marker.addTo(map));
40 | }
41 | new_text += text.substr(last_idx, text.length - last_idx);
42 | document.getElementById("output").innerHTML = new_text;
43 |
44 | if (markers.length == 1) {
45 | map.setView(marker[0].getLatLng(), 18);
46 |
47 | } else if (markers.length > 1) {
48 | var latlngs = [];
49 | for (var i = 0; i < markers.length; i++) {
50 | latlngs.push(markers[i].getLatLng());
51 | }
52 | map.fitBounds(L.latLngBounds(latlngs));
53 | }
54 | }
55 |
56 | document.addEventListener("DOMContentLoaded", function(event) {
57 | var form = document.getElementById("inputform");
58 | form.addEventListener("submit", makePoints);
59 |
60 | map = L.map('map');
61 | L.tileLayer('http://tile.openstreetmap.org/{z}/{x}/{y}.png', {
62 | attribution: 'Map data © OpenStreetMap contributors',
63 | maxZoom: 19,
64 | }).addTo(map);
65 | });
66 |
--------------------------------------------------------------------------------
/flot/examples/symbols/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Flot Examples: Symbols
6 |
7 |
8 |
9 |
10 |
11 |
54 |
55 |
56 |
57 |
58 | Symbols
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 | Points can be marked in several ways, with circles being the built-in default. For other point types, you can define a callback function to draw the symbol. Some common symbols are available in the symbol plugin.
68 |
69 |
70 |
71 |
74 |
75 |
76 |
77 |
--------------------------------------------------------------------------------
/flot/jquery.flot.stack.min.js:
--------------------------------------------------------------------------------
1 | /* Javascript plotting library for jQuery, version 0.8.3.
2 |
3 | Copyright (c) 2007-2014 IOLA and Ole Laursen.
4 | Licensed under the MIT license.
5 |
6 | */
7 | (function($){var options={series:{stack:null}};function init(plot){function findMatchingSeries(s,allseries){var res=null;for(var i=0;i2&&(horizontal?datapoints.format[2].x:datapoints.format[2].y),withsteps=withlines&&s.lines.steps,fromgap=true,keyOffset=horizontal?1:0,accumulateOffset=horizontal?0:1,i=0,j=0,l,m;while(true){if(i>=points.length)break;l=newpoints.length;if(points[i]==null){for(m=0;m=otherpoints.length){if(!withlines){for(m=0;mqx){if(withlines&&i>0&&points[i-ps]!=null){intery=py+(points[i-ps+accumulateOffset]-py)*(qx-px)/(points[i-ps+keyOffset]-px);newpoints.push(qx);newpoints.push(intery+qy);for(m=2;m0&&otherpoints[j-otherps]!=null)bottom=qy+(otherpoints[j-otherps+accumulateOffset]-qy)*(px-qx)/(otherpoints[j-otherps+keyOffset]-qx);newpoints[l+accumulateOffset]+=bottom;i+=ps}fromgap=false;if(l!=newpoints.length&&withbottom)newpoints[l+2]+=bottom}if(withsteps&&l!=newpoints.length&&l>0&&newpoints[l]!=null&&newpoints[l]!=newpoints[l-ps]&&newpoints[l+1]!=newpoints[l-ps+1]){for(m=0;m
2 |
3 |
4 |
5 | Flot Examples: Image Plots
6 |
7 |
8 |
9 |
10 |
11 |
43 |
44 |
45 |
46 |
47 | Image Plots
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 | The Cat's Eye Nebula (picture from Hubble).
57 |
58 | With the image plugin, you can plot static images against a set of axes. This is for useful for adding ticks to complex prerendered visualizations. Instead of inputting data points, you specify the images and where their two opposite corners are supposed to be in plot space.
59 |
60 | Images represent a little further complication because you need to make sure they are loaded before you can use them (Flot skips incomplete images). The plugin comes with a couple of helpers for doing that.
61 |
62 |
63 |
64 |
67 |
68 |
69 |
70 |
--------------------------------------------------------------------------------
/flot/examples/series-types/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Flot Examples: Series Types
6 |
7 |
8 |
9 |
10 |
68 |
69 |
70 |
71 |
72 | Series Types
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 | Flot supports lines, points, filled areas, bars and any combinations of these, in the same plot and even on the same data series.
82 |
83 |
84 |
85 |
88 |
89 |
90 |
91 |
--------------------------------------------------------------------------------
/flot/jquery.flot.categories.min.js:
--------------------------------------------------------------------------------
1 | /* Javascript plotting library for jQuery, version 0.8.3.
2 |
3 | Copyright (c) 2007-2014 IOLA and Ole Laursen.
4 | Licensed under the MIT license.
5 |
6 | */
7 | (function($){var options={xaxis:{categories:null},yaxis:{categories:null}};function processRawData(plot,series,data,datapoints){var xCategories=series.xaxis.options.mode=="categories",yCategories=series.yaxis.options.mode=="categories";if(!(xCategories||yCategories))return;var format=datapoints.format;if(!format){var s=series;format=[];format.push({x:true,number:true,required:true});format.push({y:true,number:true,required:true});if(s.bars.show||s.lines.show&&s.lines.fill){var autoscale=!!(s.bars.show&&s.bars.zero||s.lines.show&&s.lines.zero);format.push({y:true,number:true,required:false,defaultValue:0,autoscale:autoscale});if(s.bars.horizontal){delete format[format.length-1].y;format[format.length-1].x=true}}datapoints.format=format}for(var m=0;mindex)index=categories[v];return index+1}function categoriesTickGenerator(axis){var res=[];for(var label in axis.categories){var v=axis.categories[label];if(v>=axis.min&&v<=axis.max)res.push([v,label])}res.sort(function(a,b){return a[0]-b[0]});return res}function setupCategoriesForAxis(series,axis,datapoints){if(series[axis].options.mode!="categories")return;if(!series[axis].categories){var c={},o=series[axis].options.categories||{};if($.isArray(o)){for(var i=0;i ").load(handler).error(handler).attr("src",url)})};function drawSeries(plot,ctx,series){var plotOffset=plot.getPlotOffset();if(!series.images||!series.images.show)return;var points=series.datapoints.points,ps=series.datapoints.pointsize;for(var i=0;ix2){tmp=x2;x2=x1;x1=tmp}if(y1>y2){tmp=y2;y2=y1;y1=tmp}if(series.images.anchor=="center"){tmp=.5*(x2-x1)/(img.width-1);x1-=tmp;x2+=tmp;tmp=.5*(y2-y1)/(img.height-1);y1-=tmp;y2+=tmp}if(x1==x2||y1==y2||x1>=xaxis.max||x2<=xaxis.min||y1>=yaxis.max||y2<=yaxis.min)continue;var sx1=0,sy1=0,sx2=img.width,sy2=img.height;if(x1xaxis.max){sx2+=(sx2-sx1)*(xaxis.max-x2)/(x2-x1);x2=xaxis.max}if(y1yaxis.max){sy1+=(sy1-sy2)*(yaxis.max-y2)/(y2-y1);y2=yaxis.max}x1=xaxis.p2c(x1);x2=xaxis.p2c(x2);y1=yaxis.p2c(y1);y2=yaxis.p2c(y2);if(x1>x2){tmp=x2;x2=x1;x1=tmp}if(y1>y2){tmp=y2;y2=y1;y1=tmp}tmp=ctx.globalAlpha;ctx.globalAlpha*=series.images.alpha;ctx.drawImage(img,sx1,sy1,sx2-sx1,sy2-sy1,x1+plotOffset.left,y1+plotOffset.top,x2-x1,y2-y1);ctx.globalAlpha=tmp}}function processRawData(plot,series,data,datapoints){if(!series.images.show)return;datapoints.format=[{required:true},{x:true,number:true,required:true},{y:true,number:true,required:true},{x:true,number:true,required:true},{y:true,number:true,required:true}]}function init(plot){plot.hooks.processRawData.push(processRawData);plot.hooks.drawSeries.push(drawSeries)}$.plot.plugins.push({init:init,options:options,name:"image",version:"1.1"})})(jQuery);
--------------------------------------------------------------------------------
/flot/examples/basic-options/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Flot Examples: Basic Options
6 |
7 |
8 |
9 |
10 |
67 |
68 |
69 |
70 |
71 | Basic Options
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 | There are plenty of options you can set to control the precise looks of your plot. You can control the ticks on the axes, the legend, the graph type, etc.
81 |
82 | Flot goes to great lengths to provide sensible defaults so that you don't have to customize much for a good-looking result.
83 |
84 |
85 |
86 |
89 |
90 |
91 |
92 |
--------------------------------------------------------------------------------
/flot/examples/resize/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Flot Examples: Resizing
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
50 |
51 |
52 |
53 |
54 | Resizing
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 | Sometimes it makes more sense to just let the plot take up the available space. In that case, we need to redraw the plot each time the placeholder changes its size. If you include the resize plugin, this is handled automatically.
66 |
67 | Drag the bottom and right sides of the plot to resize it.
68 |
69 |
70 |
71 |
74 |
75 |
76 |
77 |
--------------------------------------------------------------------------------
/flot/jquery.flot.symbol.js:
--------------------------------------------------------------------------------
1 | /* Flot plugin that adds some extra symbols for plotting points.
2 |
3 | Copyright (c) 2007-2014 IOLA and Ole Laursen.
4 | Licensed under the MIT license.
5 |
6 | The symbols are accessed as strings through the standard symbol options:
7 |
8 | series: {
9 | points: {
10 | symbol: "square" // or "diamond", "triangle", "cross"
11 | }
12 | }
13 |
14 | */
15 |
16 | (function ($) {
17 | function processRawData(plot, series, datapoints) {
18 | // we normalize the area of each symbol so it is approximately the
19 | // same as a circle of the given radius
20 |
21 | var handlers = {
22 | square: function (ctx, x, y, radius, shadow) {
23 | // pi * r^2 = (2s)^2 => s = r * sqrt(pi)/2
24 | var size = radius * Math.sqrt(Math.PI) / 2;
25 | ctx.rect(x - size, y - size, size + size, size + size);
26 | },
27 | diamond: function (ctx, x, y, radius, shadow) {
28 | // pi * r^2 = 2s^2 => s = r * sqrt(pi/2)
29 | var size = radius * Math.sqrt(Math.PI / 2);
30 | ctx.moveTo(x - size, y);
31 | ctx.lineTo(x, y - size);
32 | ctx.lineTo(x + size, y);
33 | ctx.lineTo(x, y + size);
34 | ctx.lineTo(x - size, y);
35 | },
36 | triangle: function (ctx, x, y, radius, shadow) {
37 | // pi * r^2 = 1/2 * s^2 * sin (pi / 3) => s = r * sqrt(2 * pi / sin(pi / 3))
38 | var size = radius * Math.sqrt(2 * Math.PI / Math.sin(Math.PI / 3));
39 | var height = size * Math.sin(Math.PI / 3);
40 | ctx.moveTo(x - size/2, y + height/2);
41 | ctx.lineTo(x + size/2, y + height/2);
42 | if (!shadow) {
43 | ctx.lineTo(x, y - height/2);
44 | ctx.lineTo(x - size/2, y + height/2);
45 | }
46 | },
47 | cross: function (ctx, x, y, radius, shadow) {
48 | // pi * r^2 = (2s)^2 => s = r * sqrt(pi)/2
49 | var size = radius * Math.sqrt(Math.PI) / 2;
50 | ctx.moveTo(x - size, y - size);
51 | ctx.lineTo(x + size, y + size);
52 | ctx.moveTo(x - size, y + size);
53 | ctx.lineTo(x + size, y - size);
54 | }
55 | };
56 |
57 | var s = series.points.symbol;
58 | if (handlers[s])
59 | series.points.symbol = handlers[s];
60 | }
61 |
62 | function init(plot) {
63 | plot.hooks.processDatapoints.push(processRawData);
64 | }
65 |
66 | $.plot.plugins.push({
67 | init: init,
68 | name: 'symbols',
69 | version: '1.0'
70 | });
71 | })(jQuery);
72 |
--------------------------------------------------------------------------------
/flot/jquery.colorhelpers.min.js:
--------------------------------------------------------------------------------
1 | (function($){$.color={};$.color.make=function(r,g,b,a){var o={};o.r=r||0;o.g=g||0;o.b=b||0;o.a=a!=null?a:1;o.add=function(c,d){for(var i=0;i=1){return"rgb("+[o.r,o.g,o.b].join(",")+")"}else{return"rgba("+[o.r,o.g,o.b,o.a].join(",")+")"}};o.normalize=function(){function clamp(min,value,max){return valuemax?max:value}o.r=clamp(0,parseInt(o.r),255);o.g=clamp(0,parseInt(o.g),255);o.b=clamp(0,parseInt(o.b),255);o.a=clamp(0,o.a,1);return o};o.clone=function(){return $.color.make(o.r,o.b,o.g,o.a)};return o.normalize()};$.color.extract=function(elem,css){var c;do{c=elem.css(css).toLowerCase();if(c!=""&&c!="transparent")break;elem=elem.parent()}while(elem.length&&!$.nodeName(elem.get(0),"body"));if(c=="rgba(0, 0, 0, 0)")c="transparent";return $.color.parse(c)};$.color.parse=function(str){var res,m=$.color.make;if(res=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(str))return m(parseInt(res[1],10),parseInt(res[2],10),parseInt(res[3],10));if(res=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(str))return m(parseInt(res[1],10),parseInt(res[2],10),parseInt(res[3],10),parseFloat(res[4]));if(res=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(str))return m(parseFloat(res[1])*2.55,parseFloat(res[2])*2.55,parseFloat(res[3])*2.55);if(res=/rgba\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(str))return m(parseFloat(res[1])*2.55,parseFloat(res[2])*2.55,parseFloat(res[3])*2.55,parseFloat(res[4]));if(res=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(str))return m(parseInt(res[1],16),parseInt(res[2],16),parseInt(res[3],16));if(res=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(str))return m(parseInt(res[1]+res[1],16),parseInt(res[2]+res[2],16),parseInt(res[3]+res[3],16));var name=$.trim(str).toLowerCase();if(name=="transparent")return m(255,255,255,0);else{res=lookupColors[name]||[0,0,0];return m(res[0],res[1],res[2])}};var lookupColors={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0]}})(jQuery);
--------------------------------------------------------------------------------
/isochrone/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Isochrones
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
--------------------------------------------------------------------------------
/flot/examples/annotating/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Flot Examples: Adding Annotations
6 |
7 |
8 |
9 |
10 |
65 |
66 |
67 |
68 |
69 | Adding Annotations
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 | Flot has support for simple background decorations such as lines and rectangles. They can be useful for marking up certain areas. You can easily add any HTML you need with standard DOM manipulation, e.g. for labels. For drawing custom shapes there is also direct access to the canvas.
79 |
80 |
81 |
82 |
85 |
86 |
87 |
88 |
--------------------------------------------------------------------------------
/flot/examples/stacking/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Flot Examples: Stacking
6 |
7 |
8 |
9 |
10 |
11 |
74 |
75 |
76 |
77 |
78 | Stacking
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 | With the stack plugin, you can have Flot stack the series. This is useful if you wish to display both a total and the constituents it is made of. The only requirement is that you provide the input sorted on x.
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
105 |
106 |
107 |
108 |
--------------------------------------------------------------------------------
/flot/examples/axes-interacting/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Flot Examples: Interacting with axes
6 |
7 |
8 |
9 |
10 |
71 |
72 |
73 |
74 |
75 | Interacting with axes
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 | With multiple axes, you sometimes need to interact with them. A simple way to do this is to draw the plot, deduce the axis placements and insert a couple of divs on top to catch events.
85 |
86 | Try clicking an axis.
87 |
88 |
89 |
90 |
91 |
92 |
95 |
96 |
97 |
98 |
--------------------------------------------------------------------------------
/flot/examples/axes-time-zones/tz/etcetera:
--------------------------------------------------------------------------------
1 | #
2 | # This file is in the public domain, so clarified as of
3 | # 2009-05-17 by Arthur David Olson.
4 |
5 | # These entries are mostly present for historical reasons, so that
6 | # people in areas not otherwise covered by the tz files could "zic -l"
7 | # to a time zone that was right for their area. These days, the
8 | # tz files cover almost all the inhabited world, and the only practical
9 | # need now for the entries that are not on UTC are for ships at sea
10 | # that cannot use POSIX TZ settings.
11 |
12 | Zone Etc/GMT 0 - GMT
13 | Zone Etc/UTC 0 - UTC
14 | Zone Etc/UCT 0 - UCT
15 |
16 | # The following link uses older naming conventions,
17 | # but it belongs here, not in the file `backward',
18 | # as functions like gmtime load the "GMT" file to handle leap seconds properly.
19 | # We want this to work even on installations that omit the other older names.
20 | Link Etc/GMT GMT
21 |
22 | Link Etc/UTC Etc/Universal
23 | Link Etc/UTC Etc/Zulu
24 |
25 | Link Etc/GMT Etc/Greenwich
26 | Link Etc/GMT Etc/GMT-0
27 | Link Etc/GMT Etc/GMT+0
28 | Link Etc/GMT Etc/GMT0
29 |
30 | # We use POSIX-style signs in the Zone names and the output abbreviations,
31 | # even though this is the opposite of what many people expect.
32 | # POSIX has positive signs west of Greenwich, but many people expect
33 | # positive signs east of Greenwich. For example, TZ='Etc/GMT+4' uses
34 | # the abbreviation "GMT+4" and corresponds to 4 hours behind UTC
35 | # (i.e. west of Greenwich) even though many people would expect it to
36 | # mean 4 hours ahead of UTC (i.e. east of Greenwich).
37 | #
38 | # In the draft 5 of POSIX 1003.1-200x, the angle bracket notation allows for
39 | # TZ='+4'; if you want time zone abbreviations conforming to
40 | # ISO 8601 you can use TZ='<-0400>+4'. Thus the commonly-expected
41 | # offset is kept within the angle bracket (and is used for display)
42 | # while the POSIX sign is kept outside the angle bracket (and is used
43 | # for calculation).
44 | #
45 | # Do not use a TZ setting like TZ='GMT+4', which is four hours behind
46 | # GMT but uses the completely misleading abbreviation "GMT".
47 |
48 | # Earlier incarnations of this package were not POSIX-compliant,
49 | # and had lines such as
50 | # Zone GMT-12 -12 - GMT-1200
51 | # We did not want things to change quietly if someone accustomed to the old
52 | # way does a
53 | # zic -l GMT-12
54 | # so we moved the names into the Etc subdirectory.
55 |
56 | Zone Etc/GMT-14 14 - GMT-14 # 14 hours ahead of GMT
57 | Zone Etc/GMT-13 13 - GMT-13
58 | Zone Etc/GMT-12 12 - GMT-12
59 | Zone Etc/GMT-11 11 - GMT-11
60 | Zone Etc/GMT-10 10 - GMT-10
61 | Zone Etc/GMT-9 9 - GMT-9
62 | Zone Etc/GMT-8 8 - GMT-8
63 | Zone Etc/GMT-7 7 - GMT-7
64 | Zone Etc/GMT-6 6 - GMT-6
65 | Zone Etc/GMT-5 5 - GMT-5
66 | Zone Etc/GMT-4 4 - GMT-4
67 | Zone Etc/GMT-3 3 - GMT-3
68 | Zone Etc/GMT-2 2 - GMT-2
69 | Zone Etc/GMT-1 1 - GMT-1
70 | Zone Etc/GMT+1 -1 - GMT+1
71 | Zone Etc/GMT+2 -2 - GMT+2
72 | Zone Etc/GMT+3 -3 - GMT+3
73 | Zone Etc/GMT+4 -4 - GMT+4
74 | Zone Etc/GMT+5 -5 - GMT+5
75 | Zone Etc/GMT+6 -6 - GMT+6
76 | Zone Etc/GMT+7 -7 - GMT+7
77 | Zone Etc/GMT+8 -8 - GMT+8
78 | Zone Etc/GMT+9 -9 - GMT+9
79 | Zone Etc/GMT+10 -10 - GMT+10
80 | Zone Etc/GMT+11 -11 - GMT+11
81 | Zone Etc/GMT+12 -12 - GMT+12
82 |
--------------------------------------------------------------------------------
/routing/css/valhalla.css:
--------------------------------------------------------------------------------
1 | body {
2 | font: 13px/1.5 "Helvetica Neue", Helvetica, Arial, sans-serif;
3 | padding: 0px;
4 | margin: 0px;
5 | background-color: #E6E6E6;
6 | }
7 |
8 | img {
9 | display: block;
10 | margin-left: auto;
11 | margin-right: auto;
12 | }
13 |
14 | #map {
15 | height:100vh;
16 | width: 100%;
17 | /* position: absolute;
18 | background: #fff;
19 | margin:0;*/
20 | }
21 |
22 | hr {
23 | margin-top: 20px;
24 | margin-bottom: 20px;
25 | border: 0;
26 | border-top: 1px solid #A4A4A4;
27 | }
28 |
29 | .modes {
30 | width:20px;
31 | height:20px;
32 | }
33 |
34 | #instructions h1, h2, h3, h4, h5, h6 {
35 | color:black;
36 | }
37 |
38 | div#route_inst {
39 | height: auto;
40 | overflow: auto;
41 | color: #ccc;
42 | border-collapse: collapse;
43 | }
44 |
45 | div#route_inst table td.distance{
46 | width: 60px;
47 | text-align: right;
48 | }
49 |
50 | .leaflet-control td.guide {
51 | padding: 3px;
52 | word-wrap: break-word;
53 | width: 270px;
54 | white-space: pre-wrap;
55 | white-space: -moz-pre-wrap;
56 | }
57 |
58 | .leaflet-control td.measure {
59 | padding: 3px;
60 | word-wrap: break-word;
61 | width: 60px;
62 | white-space: pre-wrap;
63 | white-space: -moz-pre-wrap;
64 | }
65 |
66 | .biketextbox, .scootertextbox, .transittextbox {
67 | width: 18%;
68 | box-sizing: border-box;
69 | -moz-box-sizing: border-box;
70 | -webkit-box-sizing: border-box;
71 | color: black;
72 | }
73 |
74 | ##hidechart {
75 | min-width: 30px;
76 | text-align: center;
77 | }
78 |
79 | #drive_btn, #bike_btn, #walk_btn, #motor_scooter_btn, #motorcycle_btn, #multi_btn, #elevation_btn, #truck_btn, #bikeshare_btn {
80 | border-color: #A4A4A4;
81 | background-color: #A4A4A4;
82 | color: #fff;
83 | }
84 |
85 | #clearbtn {
86 | width: 120px;
87 | text-align: center;
88 | }
89 |
90 | #clear_btn {
91 | border-color: #d4645c;
92 | background-color: #d4645c;
93 | color: #fff;
94 | }
95 |
96 | #routeResponse {
97 | margin-top: 30px;
98 | margin-bottom: 10px;
99 | }
100 |
101 | .reset {
102 | border-color: #d4645c;
103 | background-color: #d4645c;
104 | color: #fff;
105 | float: left;
106 | padding: 10px 26px;
107 | border: 1px solid #68c175;
108 | text-transform: uppercase;
109 | }
110 |
111 | #inputFile {
112 | border: 0 none;
113 | color: #FFFFFF;
114 | font-size: 12px;
115 | width: 350px;
116 | margin-bottom: 10px;
117 | }
118 |
119 | #fileSelector {
120 | color: #000000;
121 | overflow: hidden;
122 | width: 350px;
123 | -moz-border-radius: 9px 9px 9px 9px;
124 | -webkit-border-radius: 9px 9px 9px 9px;
125 | border-radius: 8px 8px 9px 9px;
126 | box-shadow: 1px 1px 11px #330033;
127 | /*background: url("arrow.gif") no-repeat scroll 319px 5px #A4A4A4;*/
128 | }
129 |
130 | #flot-tooltip {
131 | font-size: 12px;
132 | font-family: Verdana, Arial, sans-serif;
133 | position: absolute;
134 | display: none;
135 | padding: 2px;
136 | background-color: #FFF;
137 | opacity: 1;
138 | border: 1px solid #aaa;
139 | -moz-box-shadow: 0px 1px 1px #ddd;
140 | -webkit-box-shadow: 0px 1px 1px #ddd;
141 | box-shadow: 0px 1px 2px #ddd;
142 | }
143 |
--------------------------------------------------------------------------------
/matrix/css/classic.css:
--------------------------------------------------------------------------------
1 | .columns .ui-table{border-collapse:collapse;border-width:1px 1px 0 1px;border-style:solid;border-color:#ccc;width:100%}.columns .ui-table thead tr{background-image:-webkit-linear-gradient(top, #dbdbdb 10%, #b8b8b8 100%);background-image:linear-gradient(to bottom, #dbdbdb 10%, #b8b8b8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#DBDBDB', endColorstr='#B8B8B8',GradientType=0 );color:#333;font-size:14px;font-weight:bold;text-align:left}.columns .ui-table thead tr th{padding:5px 5px 5px 8px;border-right:1px solid #878787;border-bottom:1px solid #878787}.columns .ui-table thead tr th:first-child{border-left:1px solid #ccc}.columns .ui-table thead tr th:last-child{border-right:1px solid #ccc}.columns .ui-table thead tr th .ui-arrow{display:block;float:right;font-size:10px;width:10px}.columns .ui-table thead tr th.ui-table-sort-up,.columns .ui-table thead tr th.ui-table-sort-down{background:-webkit-linear-gradient(top, #d0d9e4 10%, #94a3c0 100%);background:linear-gradient(to bottom, #d0d9e4 10%, #94a3c0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#D0D9E4', endColorstr='#94A3C0',GradientType=0 )}.columns .ui-table tbody{font-size:14px}.columns .ui-table tbody tr td{border-right:1px solid #ccc;padding:12px}.columns .ui-table tbody tr.ui-table-rows-even{background:#F1F4F8}.columns .ui-table tbody tr.ui-table-rows-odd{background:#ffffff}.columns .ui-table-footer{background-image:-webkit-linear-gradient(top, #cbcbcb 10%, #aaa 100%);background-image:linear-gradient(to bottom, #cbcbcb 10%, #aaa 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#CBCBCB', endColorstr='#AAAAAA',GradientType=0 );border-top:1px solid #878787;width:100%;padding:8px 0;font-size:11px;text-align:left;color:#333}.columns .ui-table-footer span{vertical-align:middle}.columns .ui-table-footer .ui-table-size,.columns .ui-table-footer .ui-table-results,.columns .ui-table-footer .ui-table-controls{display:inline-block;width:32%}.columns .ui-table-footer .ui-table-size{padding-left:20px}.columns .ui-table-footer .ui-table-results{text-align:center}.columns .ui-table-footer .ui-table-controls{text-align:right}.columns .ui-table-footer .ui-table-control-next,.columns .ui-table-footer .ui-table-control-prev,.columns .ui-table-footer .ui-table-control-disabled{display:inline-block;background-image:-webkit-linear-gradient(top, #fdfdfd 10%, #c0bfbe 100%);background-image:linear-gradient(to bottom, #fdfdfd 10%, #c0bfbe 100%);background-color:transparent;border:1px solid #333;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;list-style:none;margin:0;padding:5px;vertical-align:middle;font-weight:bold;color:#333;cursor:pointer;text-align:center}.columns .ui-table-footer .ui-table-control-disabled img{opacity:0.5}.columns .ui-columns-search{font-size:14px;background:-webkit-linear-gradient(top, #d1d1d1 10%, #a7a7a8 100%);background:linear-gradient(to bottom, #d1d1d1 10%, #a7a7a8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#D1D1D1', endColorstr='#A7A7A8',GradientType=0 );padding:10px;border-bottom:1px solid #878787;text-align:right}.columns .ui-columns-search input{width:200px;border-radius:10px;padding:4px 10px 4px 25px;border:2px solid transparent;background-image:url(../images/search.png);background-position:5px center;background-repeat:no-repeat}.columns .ui-columns-search input:focus{border:2px solid #6196CD;outline:none}
2 | .columns {
3 | margin: 20px auto !important;
4 | }
5 |
--------------------------------------------------------------------------------
/map_matching/css/classic.css:
--------------------------------------------------------------------------------
1 | .columns .ui-table{border-collapse:collapse;border-width:1px 1px 0 1px;border-style:solid;border-color:#ccc;width:100%}.columns .ui-table thead tr{background-image:-webkit-linear-gradient(top, #dbdbdb 10%, #b8b8b8 100%);background-image:linear-gradient(to bottom, #dbdbdb 10%, #b8b8b8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#DBDBDB', endColorstr='#B8B8B8',GradientType=0 );color:#333;font-size:14px;font-weight:bold;text-align:left}.columns .ui-table thead tr th{padding:5px 5px 5px 8px;border-right:1px solid #878787;border-bottom:1px solid #878787}.columns .ui-table thead tr th:first-child{border-left:1px solid #ccc}.columns .ui-table thead tr th:last-child{border-right:1px solid #ccc}.columns .ui-table thead tr th .ui-arrow{display:block;float:right;font-size:10px;width:10px}.columns .ui-table thead tr th.ui-table-sort-up,.columns .ui-table thead tr th.ui-table-sort-down{background:-webkit-linear-gradient(top, #d0d9e4 10%, #94a3c0 100%);background:linear-gradient(to bottom, #d0d9e4 10%, #94a3c0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#D0D9E4', endColorstr='#94A3C0',GradientType=0 )}.columns .ui-table tbody{font-size:14px}.columns .ui-table tbody tr td{border-right:1px solid #ccc;padding:12px}.columns .ui-table tbody tr.ui-table-rows-even{background:#F1F4F8}.columns .ui-table tbody tr.ui-table-rows-odd{background:#ffffff}.columns .ui-table-footer{background-image:-webkit-linear-gradient(top, #cbcbcb 10%, #aaa 100%);background-image:linear-gradient(to bottom, #cbcbcb 10%, #aaa 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#CBCBCB', endColorstr='#AAAAAA',GradientType=0 );border-top:1px solid #878787;width:100%;padding:8px 0;font-size:11px;text-align:left;color:#333}.columns .ui-table-footer span{vertical-align:middle}.columns .ui-table-footer .ui-table-size,.columns .ui-table-footer .ui-table-results,.columns .ui-table-footer .ui-table-controls{display:inline-block;width:32%}.columns .ui-table-footer .ui-table-size{padding-left:20px}.columns .ui-table-footer .ui-table-results{text-align:center}.columns .ui-table-footer .ui-table-controls{text-align:right}.columns .ui-table-footer .ui-table-control-next,.columns .ui-table-footer .ui-table-control-prev,.columns .ui-table-footer .ui-table-control-disabled{display:inline-block;background-image:-webkit-linear-gradient(top, #fdfdfd 10%, #c0bfbe 100%);background-image:linear-gradient(to bottom, #fdfdfd 10%, #c0bfbe 100%);background-color:transparent;border:1px solid #333;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;list-style:none;margin:0;padding:5px;vertical-align:middle;font-weight:bold;color:#333;cursor:pointer;text-align:center}.columns .ui-table-footer .ui-table-control-disabled img{opacity:0.5}.columns .ui-columns-search{font-size:14px;background:-webkit-linear-gradient(top, #d1d1d1 10%, #a7a7a8 100%);background:linear-gradient(to bottom, #d1d1d1 10%, #a7a7a8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#D1D1D1', endColorstr='#A7A7A8',GradientType=0 );padding:10px;border-bottom:1px solid #878787;text-align:right}.columns .ui-columns-search input{width:200px;border-radius:10px;padding:4px 10px 4px 25px;border:2px solid transparent;background-image:url(../images/search.png);background-position:5px center;background-repeat:no-repeat}.columns .ui-columns-search input:focus{border:2px solid #6196CD;outline:none}
2 | .columns {
3 | margin: 20px auto !important;
4 | }
5 |
--------------------------------------------------------------------------------
/optimized_route/css/classic.css:
--------------------------------------------------------------------------------
1 | .columns .ui-table{border-collapse:collapse;border-width:1px 1px 0 1px;border-style:solid;border-color:#ccc;width:100%}.columns .ui-table thead tr{background-image:-webkit-linear-gradient(top, #dbdbdb 10%, #b8b8b8 100%);background-image:linear-gradient(to bottom, #dbdbdb 10%, #b8b8b8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#DBDBDB', endColorstr='#B8B8B8',GradientType=0 );color:#333;font-size:14px;font-weight:bold;text-align:left}.columns .ui-table thead tr th{padding:5px 5px 5px 8px;border-right:1px solid #878787;border-bottom:1px solid #878787}.columns .ui-table thead tr th:first-child{border-left:1px solid #ccc}.columns .ui-table thead tr th:last-child{border-right:1px solid #ccc}.columns .ui-table thead tr th .ui-arrow{display:block;float:right;font-size:10px;width:10px}.columns .ui-table thead tr th.ui-table-sort-up,.columns .ui-table thead tr th.ui-table-sort-down{background:-webkit-linear-gradient(top, #d0d9e4 10%, #94a3c0 100%);background:linear-gradient(to bottom, #d0d9e4 10%, #94a3c0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#D0D9E4', endColorstr='#94A3C0',GradientType=0 )}.columns .ui-table tbody{font-size:14px}.columns .ui-table tbody tr td{border-right:1px solid #ccc;padding:12px}.columns .ui-table tbody tr.ui-table-rows-even{background:#F1F4F8}.columns .ui-table tbody tr.ui-table-rows-odd{background:#ffffff}.columns .ui-table-footer{background-image:-webkit-linear-gradient(top, #cbcbcb 10%, #aaa 100%);background-image:linear-gradient(to bottom, #cbcbcb 10%, #aaa 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#CBCBCB', endColorstr='#AAAAAA',GradientType=0 );border-top:1px solid #878787;width:100%;padding:8px 0;font-size:11px;text-align:left;color:#333}.columns .ui-table-footer span{vertical-align:middle}.columns .ui-table-footer .ui-table-size,.columns .ui-table-footer .ui-table-results,.columns .ui-table-footer .ui-table-controls{display:inline-block;width:32%}.columns .ui-table-footer .ui-table-size{padding-left:20px}.columns .ui-table-footer .ui-table-results{text-align:center}.columns .ui-table-footer .ui-table-controls{text-align:right}.columns .ui-table-footer .ui-table-control-next,.columns .ui-table-footer .ui-table-control-prev,.columns .ui-table-footer .ui-table-control-disabled{display:inline-block;background-image:-webkit-linear-gradient(top, #fdfdfd 10%, #c0bfbe 100%);background-image:linear-gradient(to bottom, #fdfdfd 10%, #c0bfbe 100%);background-color:transparent;border:1px solid #333;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;list-style:none;margin:0;padding:5px;vertical-align:middle;font-weight:bold;color:#333;cursor:pointer;text-align:center}.columns .ui-table-footer .ui-table-control-disabled img{opacity:0.5}.columns .ui-columns-search{font-size:14px;background:-webkit-linear-gradient(top, #d1d1d1 10%, #a7a7a8 100%);background:linear-gradient(to bottom, #d1d1d1 10%, #a7a7a8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#D1D1D1', endColorstr='#A7A7A8',GradientType=0 );padding:10px;border-bottom:1px solid #878787;text-align:right}.columns .ui-columns-search input{width:200px;border-radius:10px;padding:4px 10px 4px 25px;border:2px solid transparent;background-image:url(../images/search.png);background-position:5px center;background-repeat:no-repeat}.columns .ui-columns-search input:focus{border:2px solid #6196CD;outline:none}
2 | .columns {
3 | margin: 20px auto !important;
4 | }
5 |
--------------------------------------------------------------------------------
/flot/examples/realtime/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Flot Examples: Real-time updates
6 |
7 |
8 |
9 |
10 |
98 |
99 |
100 |
101 |
102 | Real-time updates
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 | You can update a chart periodically to get a real-time effect by using a timer to insert the new data in the plot and redraw it.
112 |
113 | Time between updates: milliseconds
114 |
115 |
116 |
117 |
120 |
121 |
122 |
123 |
--------------------------------------------------------------------------------
/flot/FAQ.md:
--------------------------------------------------------------------------------
1 | ## Frequently asked questions ##
2 |
3 | #### How much data can Flot cope with? ####
4 |
5 | Flot will happily draw everything you send to it so the answer
6 | depends on the browser. The excanvas emulation used for IE (built with
7 | VML) makes IE by far the slowest browser so be sure to test with that
8 | if IE users are in your target group (for large plots in IE, you can
9 | also check out Flashcanvas which may be faster).
10 |
11 | 1000 points is not a problem, but as soon as you start having more
12 | points than the pixel width, you should probably start thinking about
13 | downsampling/aggregation as this is near the resolution limit of the
14 | chart anyway. If you downsample server-side, you also save bandwidth.
15 |
16 |
17 | #### Flot isn't working when I'm using JSON data as source! ####
18 |
19 | Actually, Flot loves JSON data, you just got the format wrong.
20 | Double check that you're not inputting strings instead of numbers,
21 | like [["0", "-2.13"], ["5", "4.3"]]. This is most common mistake, and
22 | the error might not show up immediately because Javascript can do some
23 | conversion automatically.
24 |
25 |
26 | #### Can I export the graph? ####
27 |
28 | You can grab the image rendered by the canvas element used by Flot
29 | as a PNG or JPEG (remember to set a background). Note that it won't
30 | include anything not drawn in the canvas (such as the legend). And it
31 | doesn't work with excanvas which uses VML, but you could try
32 | Flashcanvas.
33 |
34 |
35 | #### The bars are all tiny in time mode? ####
36 |
37 | It's not really possible to determine the bar width automatically.
38 | So you have to set the width with the barWidth option which is NOT in
39 | pixels, but in the units of the x axis (or the y axis for horizontal
40 | bars). For time mode that's milliseconds so the default value of 1
41 | makes the bars 1 millisecond wide.
42 |
43 |
44 | #### Can I use Flot with libraries like Mootools or Prototype? ####
45 |
46 | Yes, Flot supports it out of the box and it's easy! Just use jQuery
47 | instead of $, e.g. call jQuery.plot instead of $.plot and use
48 | jQuery(something) instead of $(something). As a convenience, you can
49 | put in a DOM element for the graph placeholder where the examples and
50 | the API documentation are using jQuery objects.
51 |
52 | Depending on how you include jQuery, you may have to add one line of
53 | code to prevent jQuery from overwriting functions from the other
54 | libraries, see the documentation in jQuery ("Using jQuery with other
55 | libraries") for details.
56 |
57 |
58 | #### Flot doesn't work with [insert name of Javascript UI framework]! ####
59 |
60 | Flot is using standard HTML to make charts. If this is not working,
61 | it's probably because the framework you're using is doing something
62 | weird with the DOM or with the CSS that is interfering with Flot.
63 |
64 | A common problem is that there's display:none on a container until the
65 | user does something. Many tab widgets work this way, and there's
66 | nothing wrong with it - you just can't call Flot inside a display:none
67 | container as explained in the README so you need to hold off the Flot
68 | call until the container is actually displayed (or use
69 | visibility:hidden instead of display:none or move the container
70 | off-screen).
71 |
72 | If you find there's a specific thing we can do to Flot to help, feel
73 | free to submit a bug report. Otherwise, you're welcome to ask for help
74 | on the forum/mailing list, but please don't submit a bug report to
75 | Flot.
76 |
--------------------------------------------------------------------------------
/flot/jquery.flot.resize.js:
--------------------------------------------------------------------------------
1 | /* Flot plugin for automatically redrawing plots as the placeholder resizes.
2 |
3 | Copyright (c) 2007-2014 IOLA and Ole Laursen.
4 | Licensed under the MIT license.
5 |
6 | It works by listening for changes on the placeholder div (through the jQuery
7 | resize event plugin) - if the size changes, it will redraw the plot.
8 |
9 | There are no options. If you need to disable the plugin for some plots, you
10 | can just fix the size of their placeholders.
11 |
12 | */
13 |
14 | /* Inline dependency:
15 | * jQuery resize event - v1.1 - 3/14/2010
16 | * http://benalman.com/projects/jquery-resize-plugin/
17 | *
18 | * Copyright (c) 2010 "Cowboy" Ben Alman
19 | * Dual licensed under the MIT and GPL licenses.
20 | * http://benalman.com/about/license/
21 | */
22 | (function($,e,t){"$:nomunge";var i=[],n=$.resize=$.extend($.resize,{}),a,r=false,s="setTimeout",u="resize",m=u+"-special-event",o="pendingDelay",l="activeDelay",f="throttleWindow";n[o]=200;n[l]=20;n[f]=true;$.event.special[u]={setup:function(){if(!n[f]&&this[s]){return false}var e=$(this);i.push(this);e.data(m,{w:e.width(),h:e.height()});if(i.length===1){a=t;h()}},teardown:function(){if(!n[f]&&this[s]){return false}var e=$(this);for(var t=i.length-1;t>=0;t--){if(i[t]==this){i.splice(t,1);break}}e.removeData(m);if(!i.length){if(r){cancelAnimationFrame(a)}else{clearTimeout(a)}a=null}},add:function(e){if(!n[f]&&this[s]){return false}var i;function a(e,n,a){var r=$(this),s=r.data(m)||{};s.w=n!==t?n:r.width();s.h=a!==t?a:r.height();i.apply(this,arguments)}if($.isFunction(e)){i=e;return a}else{i=e.handler;e.handler=a}}};function h(t){if(r===true){r=t||1}for(var s=i.length-1;s>=0;s--){var l=$(i[s]);if(l[0]==e||l.is(":visible")){var f=l.width(),c=l.height(),d=l.data(m);if(d&&(f!==d.w||c!==d.h)){l.trigger(u,[d.w=f,d.h=c]);r=t||true}}else{d=l.data(m);d.w=0;d.h=0}}if(a!==null){if(r&&(t==null||t-r<1e3)){a=e.requestAnimationFrame(h)}else{a=setTimeout(h,n[o]);r=false}}}if(!e.requestAnimationFrame){e.requestAnimationFrame=function(){return e.webkitRequestAnimationFrame||e.mozRequestAnimationFrame||e.oRequestAnimationFrame||e.msRequestAnimationFrame||function(t,i){return e.setTimeout(function(){t((new Date).getTime())},n[l])}}()}if(!e.cancelAnimationFrame){e.cancelAnimationFrame=function(){return e.webkitCancelRequestAnimationFrame||e.mozCancelRequestAnimationFrame||e.oCancelRequestAnimationFrame||e.msCancelRequestAnimationFrame||clearTimeout}()}})(jQuery,this);
23 |
24 | (function ($) {
25 | var options = { }; // no options
26 |
27 | function init(plot) {
28 | function onResize() {
29 | var placeholder = plot.getPlaceholder();
30 |
31 | // somebody might have hidden us and we can't plot
32 | // when we don't have the dimensions
33 | if (placeholder.width() == 0 || placeholder.height() == 0)
34 | return;
35 |
36 | plot.resize();
37 | plot.setupGrid();
38 | plot.draw();
39 | }
40 |
41 | function bindEvents(plot, eventHolder) {
42 | plot.getPlaceholder().resize(onResize);
43 | }
44 |
45 | function shutdown(plot, eventHolder) {
46 | plot.getPlaceholder().unbind("resize", onResize);
47 | }
48 |
49 | plot.hooks.bindEvents.push(bindEvents);
50 | plot.hooks.shutdown.push(shutdown);
51 | }
52 |
53 | $.plot.plugins.push({
54 | init: init,
55 | options: options,
56 | name: 'resize',
57 | version: '1.0'
58 | });
59 | })(jQuery);
60 |
--------------------------------------------------------------------------------
/flot/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | ## Contributing to Flot ##
2 |
3 | We welcome all contributions, but following these guidelines results in less
4 | work for us, and a faster and better response.
5 |
6 | ### Issues ###
7 |
8 | Issues are not a way to ask general questions about Flot. If you see unexpected
9 | behavior but are not 100% certain that it is a bug, please try posting to the
10 | [forum](http://groups.google.com/group/flot-graphs) first, and confirm that
11 | what you see is really a Flot problem before creating a new issue for it. When
12 | reporting a bug, please include a working demonstration of the problem, if
13 | possible, or at least a clear description of the options you're using and the
14 | environment (browser and version, jQuery version, other libraries) that you're
15 | running under.
16 |
17 | If you have suggestions for new features, or changes to existing ones, we'd
18 | love to hear them! Please submit each suggestion as a separate new issue.
19 |
20 | If you would like to work on an existing issue, please make sure it is not
21 | already assigned to someone else. If an issue is assigned to someone, that
22 | person has already started working on it. So, pick unassigned issues to prevent
23 | duplicated effort.
24 |
25 | ### Pull Requests ###
26 |
27 | To make merging as easy as possible, please keep these rules in mind:
28 |
29 | 1. Submit new features or architectural changes to the *<version>-work*
30 | branch for the next major release. Submit bug fixes to the master branch.
31 |
32 | 2. Divide larger changes into a series of small, logical commits with
33 | descriptive messages.
34 |
35 | 3. Rebase, if necessary, before submitting your pull request, to reduce the
36 | work we need to do to merge it.
37 |
38 | 4. Format your code according to the style guidelines below.
39 |
40 | ### Flot Style Guidelines ###
41 |
42 | Flot follows the [jQuery Core Style Guidelines](http://docs.jquery.com/JQuery_Core_Style_Guidelines),
43 | with the following updates and exceptions:
44 |
45 | #### Spacing ####
46 |
47 | Use four-space indents, no tabs. Do not add horizontal space around parameter
48 | lists, loop definitions, or array/object indices. For example:
49 |
50 | ```js
51 | for ( var i = 0; i < data.length; i++ ) { // This block is wrong!
52 | if ( data[ i ] > 1 ) {
53 | data[ i ] = 2;
54 | }
55 | }
56 |
57 | for (var i = 0; i < data.length; i++) { // This block is correct!
58 | if (data[i] > 1) {
59 | data[i] = 2;
60 | }
61 | }
62 | ```
63 |
64 | #### Comments ####
65 |
66 | Use [jsDoc](http://usejsdoc.org) comments for all file and function headers.
67 | Use // for all inline and block comments, regardless of length.
68 |
69 | All // comment blocks should have an empty line above *and* below them. For
70 | example:
71 |
72 | ```js
73 | var a = 5;
74 |
75 | // We're going to loop here
76 | // TODO: Make this loop faster, better, stronger!
77 |
78 | for (var x = 0; x < 10; x++) {}
79 | ```
80 |
81 | #### Wrapping ####
82 |
83 | Block comments should be wrapped at 80 characters.
84 |
85 | Code should attempt to wrap at 80 characters, but may run longer if wrapping
86 | would hurt readability more than having to scroll horizontally. This is a
87 | judgement call made on a situational basis.
88 |
89 | Statements containing complex logic should not be wrapped arbitrarily if they
90 | do not exceed 80 characters. For example:
91 |
92 | ```js
93 | if (a == 1 && // This block is wrong!
94 | b == 2 &&
95 | c == 3) {}
96 |
97 | if (a == 1 && b == 2 && c == 3) {} // This block is correct!
98 | ```
99 |
--------------------------------------------------------------------------------
/flot/examples/interacting/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Flot Examples: Interactivity
6 |
7 |
8 |
9 |
10 |
87 |
88 |
89 |
90 | Interactivity
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 | One of the goals of Flot is to support user interactions. Try pointing and clicking on the points.
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 | A tooltip is easy to build with a bit of jQuery code and the data returned from the plot.
108 |
109 |
110 |
111 |
112 |
113 |
116 |
117 |
118 |
119 |
--------------------------------------------------------------------------------
/flot/examples/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Flot Examples
6 |
7 |
15 |
16 |
17 |
27 |
28 |
29 |
30 |
31 | Flot Examples
32 |
33 |
34 |
35 |
36 | Here are some examples for Flot, the Javascript charting library for jQuery:
37 |
38 | Basic Usage
39 |
40 |
41 | - Basic example
42 | - Different graph types and simple categories/textual data
43 | - Setting various options and annotating a chart
44 | - Updating graphs with AJAX and real-time updates
45 |
46 |
47 | Interactivity
48 |
49 |
50 | - Turning series on/off
51 | - Rectangular selection support and zooming and zooming with overview (both with selection plugin)
52 | - Interacting with the data points
53 | - Panning and zooming (with navigation plugin)
54 | - Automatically redraw when window is resized (with resize plugin)
55 |
56 |
57 | Additional Features
58 |
59 |
60 | - Using other symbols than circles for points (with symbol plugin)
61 | - Plotting time series, visitors per day with zooming and weekends (with selection plugin) and time zone support
62 | - Multiple axes and interacting with the axes
63 | - Thresholding the data (with threshold plugin)
64 | - Stacked charts (with stacking plugin)
65 | - Using filled areas to plot percentiles (with fillbetween plugin)
66 | - Tracking curves with crosshair (with crosshair plugin)
67 | - Plotting prerendered images (with image plugin)
68 | - Plotting error bars (with errorbars plugin)
69 | - Pie charts (with pie plugin)
70 | - Rendering text with canvas instead of HTML (with canvas plugin)
71 |
72 |
73 |
74 |
75 |
78 |
79 |
80 |
81 |
--------------------------------------------------------------------------------
/flot/examples/axes-time-zones/tz/leapseconds:
--------------------------------------------------------------------------------
1 | #
2 | # This file is in the public domain, so clarified as of
3 | # 2009-05-17 by Arthur David Olson.
4 |
5 | # Allowance for leapseconds added to each timezone file.
6 |
7 | # The International Earth Rotation Service periodically uses leap seconds
8 | # to keep UTC to within 0.9 s of UT1
9 | # (which measures the true angular orientation of the earth in space); see
10 | # Terry J Quinn, The BIPM and the accurate measure of time,
11 | # Proc IEEE 79, 7 (July 1991), 894-905.
12 | # There were no leap seconds before 1972, because the official mechanism
13 | # accounting for the discrepancy between atomic time and the earth's rotation
14 | # did not exist until the early 1970s.
15 |
16 | # The correction (+ or -) is made at the given time, so lines
17 | # will typically look like:
18 | # Leap YEAR MON DAY 23:59:60 + R/S
19 | # or
20 | # Leap YEAR MON DAY 23:59:59 - R/S
21 |
22 | # If the leapsecond is Rolling (R) the given time is local time
23 | # If the leapsecond is Stationary (S) the given time is UTC
24 |
25 | # Leap YEAR MONTH DAY HH:MM:SS CORR R/S
26 | Leap 1972 Jun 30 23:59:60 + S
27 | Leap 1972 Dec 31 23:59:60 + S
28 | Leap 1973 Dec 31 23:59:60 + S
29 | Leap 1974 Dec 31 23:59:60 + S
30 | Leap 1975 Dec 31 23:59:60 + S
31 | Leap 1976 Dec 31 23:59:60 + S
32 | Leap 1977 Dec 31 23:59:60 + S
33 | Leap 1978 Dec 31 23:59:60 + S
34 | Leap 1979 Dec 31 23:59:60 + S
35 | Leap 1981 Jun 30 23:59:60 + S
36 | Leap 1982 Jun 30 23:59:60 + S
37 | Leap 1983 Jun 30 23:59:60 + S
38 | Leap 1985 Jun 30 23:59:60 + S
39 | Leap 1987 Dec 31 23:59:60 + S
40 | Leap 1989 Dec 31 23:59:60 + S
41 | Leap 1990 Dec 31 23:59:60 + S
42 | Leap 1992 Jun 30 23:59:60 + S
43 | Leap 1993 Jun 30 23:59:60 + S
44 | Leap 1994 Jun 30 23:59:60 + S
45 | Leap 1995 Dec 31 23:59:60 + S
46 | Leap 1997 Jun 30 23:59:60 + S
47 | Leap 1998 Dec 31 23:59:60 + S
48 | Leap 2005 Dec 31 23:59:60 + S
49 | Leap 2008 Dec 31 23:59:60 + S
50 | Leap 2012 Jun 30 23:59:60 + S
51 |
52 | # INTERNATIONAL EARTH ROTATION AND REFERENCE SYSTEMS SERVICE (IERS)
53 | #
54 | # SERVICE INTERNATIONAL DE LA ROTATION TERRESTRE ET DES SYSTEMES DE REFERENCE
55 | #
56 | #
57 | # SERVICE DE LA ROTATION TERRESTRE
58 | # OBSERVATOIRE DE PARIS
59 | # 61, Av. de l'Observatoire 75014 PARIS (France)
60 | # Tel. : 33 (0) 1 40 51 22 26
61 | # FAX : 33 (0) 1 40 51 22 91
62 | # e-mail : (E-Mail Removed)
63 | # http://hpiers.obspm.fr/eop-pc
64 | #
65 | # Paris, 5 January 2012
66 | #
67 | #
68 | # Bulletin C 43
69 | #
70 | # To authorities responsible
71 | # for the measurement and
72 | # distribution of time
73 | #
74 | #
75 | # UTC TIME STEP
76 | # on the 1st of July 2012
77 | #
78 | #
79 | # A positive leap second will be introduced at the end of June 2012.
80 | # The sequence of dates of the UTC second markers will be:
81 | #
82 | # 2012 June 30, 23h 59m 59s
83 | # 2012 June 30, 23h 59m 60s
84 | # 2012 July 1, 0h 0m 0s
85 | #
86 | # The difference between UTC and the International Atomic Time TAI is:
87 | #
88 | # from 2009 January 1, 0h UTC, to 2012 July 1 0h UTC : UTC-TAI = - 34s
89 | # from 2012 July 1, 0h UTC, until further notice : UTC-TAI = - 35s
90 | #
91 | # Leap seconds can be introduced in UTC at the end of the months of December
92 | # or June, depending on the evolution of UT1-TAI. Bulletin C is mailed every
93 | # six months, either to announce a time step in UTC or to confirm that there
94 | # will be no time step at the next possible date.
95 | #
96 | #
97 | # Daniel GAMBIS
98 | # Head
99 | # Earth Orientation Center of IERS
100 | # Observatoire de Paris, France
101 |
--------------------------------------------------------------------------------
/expansion/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Expansion
5 |
6 |
7 |
8 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
105 |
106 |
107 |
--------------------------------------------------------------------------------
/elevation/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
62 |
63 |
70 |
71 |
72 |
--------------------------------------------------------------------------------
/flot/jquery.flot.canvas.min.js:
--------------------------------------------------------------------------------
1 | /* Javascript plotting library for jQuery, version 0.8.3.
2 |
3 | Copyright (c) 2007-2014 IOLA and Ole Laursen.
4 | Licensed under the MIT license.
5 |
6 | */
7 | (function($){var options={canvas:true};var render,getTextInfo,addText;var hasOwnProperty=Object.prototype.hasOwnProperty;function init(plot,classes){var Canvas=classes.Canvas;if(render==null){getTextInfo=Canvas.prototype.getTextInfo,addText=Canvas.prototype.addText,render=Canvas.prototype.render}Canvas.prototype.render=function(){if(!plot.getOptions().canvas){return render.call(this)}var context=this.context,cache=this._textCache;context.save();context.textBaseline="middle";for(var layerKey in cache){if(hasOwnProperty.call(cache,layerKey)){var layerCache=cache[layerKey];for(var styleKey in layerCache){if(hasOwnProperty.call(layerCache,styleKey)){var styleCache=layerCache[styleKey],updateStyles=true;for(var key in styleCache){if(hasOwnProperty.call(styleCache,key)){var info=styleCache[key],positions=info.positions,lines=info.lines;if(updateStyles){context.fillStyle=info.font.color;context.font=info.font.definition;updateStyles=false}for(var i=0,position;position=positions[i];i++){if(position.active){for(var j=0,line;line=position.lines[j];j++){context.fillText(lines[j].text,line[0],line[1])}}else{positions.splice(i--,1)}}if(positions.length==0){delete styleCache[key]}}}}}}}context.restore()};Canvas.prototype.getTextInfo=function(layer,text,font,angle,width){if(!plot.getOptions().canvas){return getTextInfo.call(this,layer,text,font,angle,width)}var textStyle,layerCache,styleCache,info;text=""+text;if(typeof font==="object"){textStyle=font.style+" "+font.variant+" "+font.weight+" "+font.size+"px "+font.family}else{textStyle=font}layerCache=this._textCache[layer];if(layerCache==null){layerCache=this._textCache[layer]={}}styleCache=layerCache[textStyle];if(styleCache==null){styleCache=layerCache[textStyle]={}}info=styleCache[text];if(info==null){var context=this.context;if(typeof font!=="object"){var element=$(" ").css("position","absolute").addClass(typeof font==="string"?font:null).appendTo(this.getTextLayer(layer));font={lineHeight:element.height(),style:element.css("font-style"),variant:element.css("font-variant"),weight:element.css("font-weight"),family:element.css("font-family"),color:element.css("color")};font.size=element.css("line-height",1).height();element.remove()}textStyle=font.style+" "+font.variant+" "+font.weight+" "+font.size+"px "+font.family;info=styleCache[text]={width:0,height:0,positions:[],lines:[],font:{definition:textStyle,color:font.color}};context.save();context.font=textStyle;var lines=(text+"").replace(/
|\r\n|\r/g,"\n").split("\n");for(var i=0;i
2 |
3 |
50 |
--------------------------------------------------------------------------------
/flot/examples/tracking/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Flot Examples: Tracking
6 |
7 |
8 |
9 |
10 |
11 |
109 |
110 |
111 |
112 |
113 | Tracking
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 | You can add crosshairs that'll track the mouse position, either on both axes or as here on only one.
123 |
124 | If you combine it with listening on hover events, you can use it to track the intersection on the curves by interpolating the data points (look at the legend).
125 |
126 |
127 |
128 |
129 |
130 |
133 |
134 |
135 |
136 |
--------------------------------------------------------------------------------
/matrix/js/matrix.js:
--------------------------------------------------------------------------------
1 | const app = angular.module('matrix', [])
2 |
3 | const defaultMode = 'auto'
4 | const serviceUrl = 'https://valhalla1.openstreetmap.de/'
5 |
6 | // hooks up to the div whose data-ng-controller attribute matches this name
7 | app.controller('MatrixController', function($scope, $rootScope, $sce, $http) {
8 | const road = L.tileLayer('http://b.tile.openstreetmap.org/{z}/{x}/{y}.png', {
9 | attribution: '© OpenStreetMap contributers'
10 | })
11 |
12 | const map = L.map('map', {
13 | zoom: 13,
14 | zoomControl: true,
15 | center: {
16 | lat: 40.7486,
17 | lng: -73.9690
18 | },
19 | layers: [road]
20 | })
21 |
22 | const getOriginIcon = function () {
23 | return new L.Icon({
24 | iconUrl: '../matrix/resource/matrix_pin_start.png',
25 | iconSize: [30, 36],
26 | shadowUrl: null
27 | })
28 | }
29 |
30 | const getDestinationIcon = function () {
31 | return new L.Icon({
32 | iconUrl: '../matrix/resource/matrix_pin_end.png',
33 | iconSize: [30, 36],
34 | shadowUrl: null
35 | })
36 | }
37 |
38 | let counterText = 0
39 | let markers = []
40 |
41 | $rootScope.$on('map.setView', function (ev, geo, zoom) {
42 | map.setView(geo, zoom || 8)
43 | map.options.maxZoom = 14
44 | })
45 |
46 | $rootScope.$on('map.dropMarker', function (ev, geo, locCount, icon) {
47 | const marker = new L.marker(geo, { icon: icon })
48 | marker.bindLabel((locCount).toString(), {
49 | position: [geo.lat, geo.lon],
50 | noHide: true,
51 | offset: (locCount < 10) ? [-9, -12] : [-13, -12]
52 | })
53 | map.addLayer(marker)
54 | markers.push(marker)
55 | })
56 |
57 | $scope.setMode = function (mode) {
58 | $scope.mode = mode
59 | }
60 |
61 | $scope.mode = defaultMode
62 | $scope.startPoints = []
63 | $scope.endPoints = []
64 | $scope.matrixResult = []
65 | $scope.editingFocus = 'start_points'
66 | $scope.appView = 'control'
67 |
68 | $scope.backToControlView = function (e) {
69 | $scope.appView = 'control'
70 | }
71 |
72 | $scope.clearAll = function (e) {
73 | $scope.startPoints = []
74 | $scope.endPoints = []
75 | $scope.matrixResult = []
76 | $scope.appView = 'control'
77 | $scope.editingFocus = 'start_points'
78 | for (let i = 0; i < markers.length; i++) {
79 | map.removeLayer(markers[i])
80 | }
81 | markers = []
82 | counterText = 0
83 | }
84 |
85 | $scope.goToEndPoints = function (e) {
86 | $scope.editingFocus = 'end_points'
87 | counterText = 0
88 | }
89 |
90 | map.on('click', function (e) {
91 | const geo = {
92 | lat: e.latlng.lat.toFixed(6),
93 | lon: e.latlng.lng.toFixed(6)
94 | }
95 | if ($scope.editingFocus === 'end_points') {
96 | $rootScope.$emit('map.dropMarker', [geo.lat, geo.lon], counterText, getDestinationIcon())
97 | $scope.endPoints.push(geo)
98 | } else {
99 | $rootScope.$emit('map.dropMarker', [geo.lat, geo.lon], counterText, getOriginIcon())
100 | $scope.startPoints.push(geo)
101 | }
102 | counterText++
103 | $scope.$apply()
104 | })
105 |
106 | const matrixBtn = document.getElementById('matrix_btn')
107 | matrixBtn.addEventListener('click', matrix)
108 |
109 | function matrix () {
110 | const params = JSON.stringify({
111 | sources: $scope.startPoints,
112 | targets: $scope.endPoints,
113 | costing: $scope.mode,
114 | units: 'km'
115 | })
116 |
117 | const url = serviceUrl + 'sources_to_targets?json=' + params
118 | document.getElementById('matrixResponseLink').href = url
119 |
120 | fetch(url).then(data => data.json()).then(data => {
121 | $scope.matrixResult = data.sources_to_targets.flat()
122 | $scope.appView = 'matrixTable'
123 | $scope.$apply()
124 | })
125 | }
126 | })
127 |
--------------------------------------------------------------------------------
/flot/examples/axes-time-zones/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Flot Examples: Time zones
6 |
7 |
8 |
9 |
10 |
11 |
12 |
83 |
84 |
85 |
86 |
87 | Time zones
88 |
89 |
90 |
91 |
92 | UTC
93 |
94 |
95 |
96 |
97 | Browser
98 |
99 |
100 |
101 |
102 | Chicago
103 |
104 |
105 |
106 |
107 |
108 |
109 |
112 |
113 |
114 |
115 |
--------------------------------------------------------------------------------
/flot/examples/zooming/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Flot Examples: Selection and zooming
6 |
7 |
8 |
9 |
10 |
11 |
121 |
122 |
123 |
124 |
125 | Selection and zooming
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 | Selection support makes it easy to construct flexible zooming schemes. With a few lines of code, the small overview plot to the right has been connected to the large plot. Try selecting a rectangle on either of them.
136 |
137 |
138 |
139 |
142 |
143 |
144 |
145 |
--------------------------------------------------------------------------------
/flot/README.md:
--------------------------------------------------------------------------------
1 | # Flot [](https://travis-ci.org/flot/flot)
2 |
3 | ## About ##
4 |
5 | Flot is a Javascript plotting library for jQuery.
6 | Read more at the website:
7 |
8 | Take a look at the the examples in examples/index.html; they should give a good
9 | impression of what Flot can do, and the source code of the examples is probably
10 | the fastest way to learn how to use Flot.
11 |
12 |
13 | ## Installation ##
14 |
15 | Just include the Javascript file after you've included jQuery.
16 |
17 | Generally, all browsers that support the HTML5 canvas tag are
18 | supported.
19 |
20 | For support for Internet Explorer < 9, you can use [Excanvas]
21 | [excanvas], a canvas emulator; this is used in the examples bundled
22 | with Flot. You just include the excanvas script like this:
23 |
24 | ```html
25 |
26 | ```
27 |
28 | If it's not working on your development IE 6.0, check that it has
29 | support for VML which Excanvas is relying on. It appears that some
30 | stripped down versions used for test environments on virtual machines
31 | lack the VML support.
32 |
33 | You can also try using [Flashcanvas][flashcanvas], which uses Flash to
34 | do the emulation. Although Flash can be a bit slower to load than VML,
35 | if you've got a lot of points, the Flash version can be much faster
36 | overall. Flot contains some wrapper code for activating Excanvas which
37 | Flashcanvas is compatible with.
38 |
39 | You need at least jQuery 1.2.6, but try at least 1.3.2 for interactive
40 | charts because of performance improvements in event handling.
41 |
42 |
43 | ## Basic usage ##
44 |
45 | Create a placeholder div to put the graph in:
46 |
47 | ```html
48 |
49 | ```
50 |
51 | You need to set the width and height of this div, otherwise the plot
52 | library doesn't know how to scale the graph. You can do it inline like
53 | this:
54 |
55 | ```html
56 |
57 | ```
58 |
59 | You can also do it with an external stylesheet. Make sure that the
60 | placeholder isn't within something with a display:none CSS property -
61 | in that case, Flot has trouble measuring label dimensions which
62 | results in garbled looks and might have trouble measuring the
63 | placeholder dimensions which is fatal (it'll throw an exception).
64 |
65 | Then when the div is ready in the DOM, which is usually on document
66 | ready, run the plot function:
67 |
68 | ```js
69 | $.plot($("#placeholder"), data, options);
70 | ```
71 |
72 | Here, data is an array of data series and options is an object with
73 | settings if you want to customize the plot. Take a look at the
74 | examples for some ideas of what to put in or look at the
75 | [API reference](API.md). Here's a quick example that'll draw a line
76 | from (0, 0) to (1, 1):
77 |
78 | ```js
79 | $.plot($("#placeholder"), [ [[0, 0], [1, 1]] ], { yaxis: { max: 1 } });
80 | ```
81 |
82 | The plot function immediately draws the chart and then returns a plot
83 | object with a couple of methods.
84 |
85 |
86 | ## What's with the name? ##
87 |
88 | First: it's pronounced with a short o, like "plot". Not like "flawed".
89 |
90 | So "Flot" rhymes with "plot".
91 |
92 | And if you look up "flot" in a Danish-to-English dictionary, some of
93 | the words that come up are "good-looking", "attractive", "stylish",
94 | "smart", "impressive", "extravagant". One of the main goals with Flot
95 | is pretty looks.
96 |
97 |
98 | ## Notes about the examples ##
99 |
100 | In order to have a useful, functional example of time-series plots using time
101 | zones, date.js from [timezone-js][timezone-js] (released under the Apache 2.0
102 | license) and the [Olson][olson] time zone database (released to the public
103 | domain) have been included in the examples directory. They are used in
104 | examples/axes-time-zones/index.html.
105 |
106 |
107 | [excanvas]: http://code.google.com/p/explorercanvas/
108 | [flashcanvas]: http://code.google.com/p/flashcanvas/
109 | [timezone-js]: https://github.com/mde/timezone-js
110 | [olson]: http://ftp.iana.org/time-zones
111 |
--------------------------------------------------------------------------------
/routing/js/lrm/L.Routing.Line.js:
--------------------------------------------------------------------------------
1 | (function() {
2 | 'use strict';
3 |
4 | var L = require('leaflet');
5 |
6 | L.Routing = L.Routing || {};
7 |
8 | L.Routing.Line = L.LayerGroup.extend({
9 | includes: L.Mixin.Events,
10 |
11 | options: {
12 | styles: [
13 | {color: 'black', opacity: 0.15, weight: 9},
14 | {color: 'white', opacity: 0.8, weight: 6},
15 | {color: 'red', opacity: 1, weight: 2}
16 | ],
17 | missingRouteStyles: [
18 | {color: 'black', opacity: 0.15, weight: 7},
19 | {color: 'white', opacity: 0.6, weight: 4},
20 | {color: 'gray', opacity: 0.8, weight: 2, dashArray: '7,12'}
21 | ],
22 | addWaypoints: true,
23 | extendToWaypoints: true,
24 | missingRouteTolerance: 10
25 | },
26 |
27 | initialize: function(route, options) {
28 | L.setOptions(this, options);
29 | L.LayerGroup.prototype.initialize.call(this, options);
30 | this._route = route;
31 |
32 | if (this.options.extendToWaypoints) {
33 | this._extendToWaypoints();
34 | }
35 |
36 | if (route.subRoutes) {
37 | for(var i = 0; i < route.subRoutes.length; i++) {
38 | if(!route.subRoutes[i].styles) route.subRoutes[i].styles = this.options.styles;
39 | this._addSegment(
40 | route.subRoutes[i].coordinates,
41 | route.subRoutes[i].styles,
42 | this.options.addWaypoints);
43 | }
44 | } else {
45 | this._addSegment(
46 | route.coordinates,
47 | this.options.styles,
48 | this.options.addWaypoints);
49 | }
50 | },
51 |
52 | addTo: function(map) {
53 | map.addLayer(this);
54 | return this;
55 | },
56 | getBounds: function() {
57 | return L.latLngBounds(this._route.coordinates);
58 | },
59 |
60 | _findWaypointIndices: function() {
61 | var wps = this._route.inputWaypoints,
62 | indices = [],
63 | i;
64 | for (i = 0; i < wps.length; i++) {
65 | indices.push(this._findClosestRoutePoint(wps[i].latLng));
66 | }
67 |
68 | return indices;
69 | },
70 |
71 | _findClosestRoutePoint: function(latlng) {
72 | var minDist = Number.MAX_VALUE,
73 | minIndex,
74 | i,
75 | d;
76 |
77 | for (i = this._route.coordinates.length - 1; i >= 0 ; i--) {
78 | // TODO: maybe do this in pixel space instead?
79 | d = latlng.distanceTo(this._route.coordinates[i]);
80 | if (d < minDist) {
81 | minIndex = i;
82 | minDist = d;
83 | }
84 | }
85 |
86 | return minIndex;
87 | },
88 |
89 | _extendToWaypoints: function() {
90 | var wps = this._route.inputWaypoints,
91 | wpIndices = this._getWaypointIndices(),
92 | i,
93 | wpLatLng,
94 | routeCoord;
95 |
96 | for (i = 0; i < wps.length; i++) {
97 | wpLatLng = wps[i].latLng;
98 | routeCoord = L.latLng(this._route.coordinates[wpIndices[i]]);
99 | if (wpLatLng.distanceTo(routeCoord) >
100 | this.options.missingRouteTolerance) {
101 | this._addSegment([wpLatLng, routeCoord],
102 | this.options.missingRouteStyles);
103 | }
104 | }
105 | },
106 |
107 | _addSegment: function(coords, styles, mouselistener) {
108 | var i,
109 | pl;
110 | for (i = 0; i < styles.length; i++) {
111 | pl = L.polyline(coords, styles[i]);
112 | this.addLayer(pl);
113 | if (mouselistener) {
114 | pl.on('mousedown', this._onLineTouched, this);
115 | }
116 | }
117 | },
118 |
119 | _findNearestWpBefore: function(i) {
120 | var wpIndices = this._getWaypointIndices(),
121 | j = wpIndices.length - 1;
122 | while (j >= 0 && wpIndices[j] > i) {
123 | j--;
124 | }
125 |
126 | return j;
127 | },
128 |
129 | _onLineTouched: function(e) {
130 | var afterIndex = this._findNearestWpBefore(this._findClosestRoutePoint(e.latlng));
131 | this.fire('linetouched', {
132 | afterIndex: afterIndex,
133 | latlng: e.latlng
134 | });
135 | },
136 |
137 | _getWaypointIndices: function() {
138 | if (!this._wpIndices) {
139 | this._wpIndices = this._route.waypointIndices || this._findWaypointIndices();
140 | }
141 |
142 | return this._wpIndices;
143 | }
144 | });
145 |
146 | L.Routing.line = function(route, options) {
147 | return new L.Routing.Line(route, options);
148 | };
149 |
150 | module.exports = L.Routing;
151 | })();
152 |
--------------------------------------------------------------------------------
/flot/examples/series-errorbars/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Flot Examples: Error Bars
6 |
7 |
8 |
9 |
10 |
11 |
12 |
128 |
129 |
130 |
131 |
132 | Error Bars
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 | With the errorbars plugin you can plot error bars to show standard deviation and other useful statistical properties.
142 |
143 |
144 |
145 |
148 |
149 |
150 |
151 |
--------------------------------------------------------------------------------
/isochrone/main.js:
--------------------------------------------------------------------------------
1 | let currentLocation = { lat: 53.544332, lng: 9.914540 }
2 |
3 | // make a map using osm tiles
4 | const map = new maplibregl.Map({
5 | style: 'https://tiles.openfreemap.org/styles/liberty',
6 | center: currentLocation,
7 | zoom: 14.3,
8 | container: 'map'
9 | })
10 |
11 | let tooltips = []
12 |
13 | function parseContour (s) {
14 | try {
15 | const range = n => [...Array(n).keys()]
16 | const time = parseInt(s.split(' '))
17 | let values = []
18 | if (s.includes('increments')) {
19 | // [time, 2 * time, 3 * time, ...]
20 | values = range(3).map(i => (i + 1) * time)
21 | } else {
22 | values = [time]
23 | }
24 |
25 | return values.map(t => Object.fromEntries([['time', t]]))
26 | } catch (e) {
27 | console.error(e)
28 | }
29 | }
30 |
31 | const marker = new maplibregl.Marker({ draggable: true })
32 | .setLngLat(currentLocation)
33 | .addTo(map)
34 |
35 | marker.on('dragend', event => {
36 | onLocationChanged(event.target.getLatLng())
37 | })
38 |
39 | function onLocationChanged (coordinates) {
40 | currentLocation = coordinates
41 | document.getElementById('latlng').value = `${coordinates.lat.toFixed(6)}, ${coordinates.lng.toFixed(6)}`
42 | getContours()
43 | }
44 |
45 | function onMapClick (e) {
46 | const coordinates = e.lngLat
47 | marker.setLngLat(coordinates)
48 | onLocationChanged(coordinates)
49 | }
50 |
51 | function getContours () {
52 | // isochrone api query parameters
53 | const json = {
54 | locations: [{ lat: currentLocation.lat, lon: currentLocation.lng }],
55 | costing: document.getElementById('costing').value,
56 | denoise: document.getElementById('denoise').value,
57 | generalize: document.getElementById('generalize').value,
58 | contours: parseContour(document.getElementById('contours').value),
59 | polygons: document.getElementById('polygons_lines').value === 'polygons'
60 | }
61 |
62 | const url = document.getElementById('baseurl').value + '/isochrone?json=' + JSON.stringify(json)
63 |
64 | fetch(url).then(response => response.json()).then(isochrones => {
65 | // clear this if its not empty
66 | if (map.getSource('isochrones')) {
67 | map.removeLayer('isochrones-layer')
68 | map.removeSource('isochrones')
69 | }
70 |
71 | // clear the tooltips
72 | tooltips.forEach(tooltip => { tooltip.remove() })
73 | tooltips = []
74 |
75 | // create the geojson object
76 | map.addSource('isochrones', {
77 | type: 'geojson',
78 | data: isochrones
79 | })
80 |
81 | map.addLayer({
82 | id: 'isochrones-layer',
83 | type: 'fill',
84 | source: 'isochrones',
85 | paint: {
86 | 'fill-opacity': ['*', ['get', 'opacity'], 2],
87 | 'fill-color': ['get', 'color']
88 | }
89 | })
90 |
91 | // Calculate the bounding box of the isochrones
92 | const bounds = turf.bbox(isochrones)
93 |
94 | // Fit the map to the bounds of the isochrones
95 | map.fitBounds(bounds, { padding: 20 })
96 |
97 | // Add tooltips
98 | isochrones.features.forEach(function (feature) {
99 | let coordinates = feature.geometry.coordinates[0][0]
100 | if (coordinates.length > 2) {
101 | coordinates = coordinates[0]
102 | }
103 | const description = feature.properties.contour + ' min'
104 |
105 | const popup = new maplibregl.Popup({ closeOnClick: false })
106 | .setLngLat(coordinates)
107 | .setHTML(description)
108 | .addTo(map)
109 |
110 | tooltips.push(popup)
111 | })
112 | })
113 | }
114 |
115 | function onLatLngInputChanged () {
116 | try {
117 | const s = document.getElementById('latlng').value
118 | const values = s.split(',').map(i => parseFloat(i))
119 | coord = { lat: values[0], lng: values[1] }
120 | map.panTo(coord)
121 | onMapClick({ lngLat: coord })
122 | } catch (e) {
123 | console.error(e)
124 | }
125 | }
126 |
127 | map.on('click', onMapClick)
128 | // hook up the callback for the text box changing
129 | document.getElementById('latlng').addEventListener('change', onLatLngInputChanged);
130 | ['denoise', 'generalize', 'costing', 'polygons_lines', 'contours'].forEach(
131 | element => document.getElementById(element).addEventListener('change', getContours)
132 | )
133 |
134 | map.once('styledata', () => { onMapClick({ lngLat: currentLocation }) })
135 |
--------------------------------------------------------------------------------
/flot/examples/axes-time-zones/tz/backward:
--------------------------------------------------------------------------------
1 | #
2 | # This file is in the public domain, so clarified as of
3 | # 2009-05-17 by Arthur David Olson.
4 |
5 | # This file provides links between current names for time zones
6 | # and their old names. Many names changed in late 1993.
7 |
8 | Link Africa/Asmara Africa/Asmera
9 | Link Africa/Bamako Africa/Timbuktu
10 | Link America/Argentina/Catamarca America/Argentina/ComodRivadavia
11 | Link America/Adak America/Atka
12 | Link America/Argentina/Buenos_Aires America/Buenos_Aires
13 | Link America/Argentina/Catamarca America/Catamarca
14 | Link America/Atikokan America/Coral_Harbour
15 | Link America/Argentina/Cordoba America/Cordoba
16 | Link America/Tijuana America/Ensenada
17 | Link America/Indiana/Indianapolis America/Fort_Wayne
18 | Link America/Indiana/Indianapolis America/Indianapolis
19 | Link America/Argentina/Jujuy America/Jujuy
20 | Link America/Indiana/Knox America/Knox_IN
21 | Link America/Kentucky/Louisville America/Louisville
22 | Link America/Argentina/Mendoza America/Mendoza
23 | Link America/Rio_Branco America/Porto_Acre
24 | Link America/Argentina/Cordoba America/Rosario
25 | Link America/St_Thomas America/Virgin
26 | Link Asia/Ashgabat Asia/Ashkhabad
27 | Link Asia/Chongqing Asia/Chungking
28 | Link Asia/Dhaka Asia/Dacca
29 | Link Asia/Kathmandu Asia/Katmandu
30 | Link Asia/Kolkata Asia/Calcutta
31 | Link Asia/Macau Asia/Macao
32 | Link Asia/Jerusalem Asia/Tel_Aviv
33 | Link Asia/Ho_Chi_Minh Asia/Saigon
34 | Link Asia/Thimphu Asia/Thimbu
35 | Link Asia/Makassar Asia/Ujung_Pandang
36 | Link Asia/Ulaanbaatar Asia/Ulan_Bator
37 | Link Atlantic/Faroe Atlantic/Faeroe
38 | Link Europe/Oslo Atlantic/Jan_Mayen
39 | Link Australia/Sydney Australia/ACT
40 | Link Australia/Sydney Australia/Canberra
41 | Link Australia/Lord_Howe Australia/LHI
42 | Link Australia/Sydney Australia/NSW
43 | Link Australia/Darwin Australia/North
44 | Link Australia/Brisbane Australia/Queensland
45 | Link Australia/Adelaide Australia/South
46 | Link Australia/Hobart Australia/Tasmania
47 | Link Australia/Melbourne Australia/Victoria
48 | Link Australia/Perth Australia/West
49 | Link Australia/Broken_Hill Australia/Yancowinna
50 | Link America/Rio_Branco Brazil/Acre
51 | Link America/Noronha Brazil/DeNoronha
52 | Link America/Sao_Paulo Brazil/East
53 | Link America/Manaus Brazil/West
54 | Link America/Halifax Canada/Atlantic
55 | Link America/Winnipeg Canada/Central
56 | Link America/Regina Canada/East-Saskatchewan
57 | Link America/Toronto Canada/Eastern
58 | Link America/Edmonton Canada/Mountain
59 | Link America/St_Johns Canada/Newfoundland
60 | Link America/Vancouver Canada/Pacific
61 | Link America/Regina Canada/Saskatchewan
62 | Link America/Whitehorse Canada/Yukon
63 | Link America/Santiago Chile/Continental
64 | Link Pacific/Easter Chile/EasterIsland
65 | Link America/Havana Cuba
66 | Link Africa/Cairo Egypt
67 | Link Europe/Dublin Eire
68 | Link Europe/London Europe/Belfast
69 | Link Europe/Chisinau Europe/Tiraspol
70 | Link Europe/London GB
71 | Link Europe/London GB-Eire
72 | Link Etc/GMT GMT+0
73 | Link Etc/GMT GMT-0
74 | Link Etc/GMT GMT0
75 | Link Etc/GMT Greenwich
76 | Link Asia/Hong_Kong Hongkong
77 | Link Atlantic/Reykjavik Iceland
78 | Link Asia/Tehran Iran
79 | Link Asia/Jerusalem Israel
80 | Link America/Jamaica Jamaica
81 | Link Asia/Tokyo Japan
82 | Link Pacific/Kwajalein Kwajalein
83 | Link Africa/Tripoli Libya
84 | Link America/Tijuana Mexico/BajaNorte
85 | Link America/Mazatlan Mexico/BajaSur
86 | Link America/Mexico_City Mexico/General
87 | Link Pacific/Auckland NZ
88 | Link Pacific/Chatham NZ-CHAT
89 | Link America/Denver Navajo
90 | Link Asia/Shanghai PRC
91 | Link Pacific/Pago_Pago Pacific/Samoa
92 | Link Pacific/Chuuk Pacific/Yap
93 | Link Pacific/Chuuk Pacific/Truk
94 | Link Pacific/Pohnpei Pacific/Ponape
95 | Link Europe/Warsaw Poland
96 | Link Europe/Lisbon Portugal
97 | Link Asia/Taipei ROC
98 | Link Asia/Seoul ROK
99 | Link Asia/Singapore Singapore
100 | Link Europe/Istanbul Turkey
101 | Link Etc/UCT UCT
102 | Link America/Anchorage US/Alaska
103 | Link America/Adak US/Aleutian
104 | Link America/Phoenix US/Arizona
105 | Link America/Chicago US/Central
106 | Link America/Indiana/Indianapolis US/East-Indiana
107 | Link America/New_York US/Eastern
108 | Link Pacific/Honolulu US/Hawaii
109 | Link America/Indiana/Knox US/Indiana-Starke
110 | Link America/Detroit US/Michigan
111 | Link America/Denver US/Mountain
112 | Link America/Los_Angeles US/Pacific
113 | Link Pacific/Pago_Pago US/Samoa
114 | Link Etc/UTC UTC
115 | Link Etc/UTC Universal
116 | Link Europe/Moscow W-SU
117 | Link Etc/UTC Zulu
118 |
--------------------------------------------------------------------------------
/flot/examples/navigate/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Flot Examples: Navigation
6 |
7 |
26 |
27 |
28 |
29 |
30 |
127 |
128 |
129 |
130 |
131 | Navigation
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 | With the navigate plugin it is easy to add panning and zooming. Drag to pan, double click to zoom (or use the mouse scrollwheel).
143 |
144 | The plugin fires events (useful for synchronizing several plots) and adds a couple of public methods so you can easily build a little user interface around it, like the little buttons at the top right in the plot.
145 |
146 |
147 |
148 |
151 |
152 |
153 |
154 |
--------------------------------------------------------------------------------