From 4d882e6d16036c99055cfb8df0bf8c25bcbb8d8c Mon Sep 17 00:00:00 2001
From: Jacek Kowalski <Jacek@jacekk.info>
Date: Sun, 14 May 2017 22:21:25 +0000
Subject: [PATCH] Change alert view and add top menu

---
 map.js                 |   37 
 mock/vehicle.json      | 1510 ++++++++++++++++++++++++++++++++++++++++++++++++
 lang_en.js             |    3 
 map.html               |   51 
 map_filters.js         |    6 
 mock/vehicles.json     |    1 
 mock/tripPassages.json |   98 +++
 lang_pl.js             |    3 
 map.css                |  109 ++-
 9 files changed, 1,732 insertions(+), 86 deletions(-)

diff --git a/lang_en.js b/lang_en.js
index 74f5b55..2184ddf 100644
--- a/lang_en.js
+++ b/lang_en.js
@@ -1,9 +1,12 @@
 var lang = {
 	page_name: 'TTSS Kraków',
+	
+	index: 'Departures',
 	page_title: 'TTSS Krak\u00F3w - Real-time tram departures',
 	page_title_stop_name: 'TTSS Krak\u00F3w - $stop - Real-time tram departures',
 	
 	map: 'Map',
+	map_title: 'TTSS Kraków - Tram map',
 	
 	jquery_not_loaded: 'Required JavaScript jQuery library failed to load. You may try refreshing the page.',
 	enter_stop_name_to_begin: 'Enter the stop name to begin.',
diff --git a/lang_pl.js b/lang_pl.js
index d124ae5..308a056 100644
--- a/lang_pl.js
+++ b/lang_pl.js
@@ -1,9 +1,12 @@
 var lang = {
 	page_name: 'TTSS Kraków',
+	
+	index: 'Odjazdy',
 	page_title: 'TTSS Krak\u00F3w - Odjazdy tramwajów na żywo',
 	page_title_stop_name: 'TTSS Krak\u00F3w - $stop - Odjazdy tramwajów na żywo',
 	
 	map: 'Mapa',
+	map_title: 'TTSS Kraków - Mapa tramwajów',
 	
 	jquery_not_loaded: 'Wymagana biblioteka jQuery nie została poprawnie załadowana. Spróbuj odświeżyć stronę.',
 	enter_stop_name_to_begin: 'Zacznij wpisywać nazwę przystanku.',
diff --git a/map.css b/map.css
index 29aad28..f2f9a49 100644
--- a/map.css
+++ b/map.css
@@ -1,34 +1,76 @@
-html, body, #map {
+html, body, #map, #header {
 	margin: 0;
-	font-family: sans-serif;
+	padding: 0;
+	font: 14px sans-serif;
 	overflow: hidden;
 }
 
-#map {
+#header {
 	position: absolute;
 	top: 0;
 	left: 0;
 	right: 0;
-	bottom: 0;
+	height: 2em;
+	background: #f8f8f8;
+	border-bottom: 1px solid #999;
+}
+#header ul {
+	display: table;
+	padding: 0;
+	margin: 0;
+	width: 100%;
+}
+#header ul li {
+	display: table-cell;
+	list-style: none;
+	white-space: nowrap;
+	vertical-align: top;
+}
+#header ul li:last-child {
+	width: 100%;
+	white-space: inherit;
+	text-align: right;
+}
+#header ul li > * {
+	line-height: 1em;
+	display: inline-block;
+	padding: 0.5em;
+}
+#alert {
+	margin-left: 5px;
+	
+	transition: background-color .4s;
+}
+.error {
+	background-color: red;
+	color: white;
+	font-weight: bold;
 }
 
+#map {
+	position: absolute;
+	top: 29px;
+	left: 0;
+	right: 0;
+	bottom: 0;
+}
 #map .ol-attribution {
 	left: 0;
 	right: auto;
 	text-align: left;
 }
 
-#popup {
+#panel {
 	color: black;
 	background: white;
 	padding: 5px;
-	border-left: 1px solid black;
+	border-left: 1px solid #999;
 	font-size: 14px;
 	
 	position: absolute;
 	width: 350px;
 	right: -365px;
-	top: 0;
+	top: 29px;
 	bottom: 0;
 	
 	transition: right .4s, width .4s;
@@ -38,70 +80,65 @@
 	overflow-y: auto;
 }
 
-#popup.show {
+#panel.show {
 	right: 0;
 }
 
 @media (max-width: 600px) {
-	#popup {
+	#panel {
 		width: 80%;
 		right: -100%;
 	}
 	
-	#popup.show {
+	#panel.show {
 		right: 0%;
 	}
 }
 
-#popup .close {
-	float: right;
-	cursor: pointer;
-	font-size: 20px;
-}
-#popup .type {
+#panel .type {
 	padding-bottom: 0;
 	color: #444;
 	font-size: 80%;
 }
-#popup p {
+#panel p {
 	margin: 0;
 	padding: 5px;
 }
-#popup .name {
+#panel .name {
 	font-weight: bold;
 }
-#popup .vehicleInfo {
+#panel .vehicleInfo {
 	font-size: 21px;
 	margin: -4px 0 -5px;
 }
-#popup table {
+#panel table {
 	margin-top: 3px;
 	border-top: 1px solid gray;
 	width: 100%;
 	border-collapse: collapse;
 }
-#popup table th {
+#panel table th {
 	text-align: left;
 	border-bottom: 1px solid #999;
 	padding-top: 5px;
 }
-#popup table td {
+#panel table td {
 	vertical-align: top;
 }
-#popup .active {
+#panel .active {
 	background: #f5f5f5;
 	color: gray;
 }
-#popup .success {
+#panel .success {
 	background: #dff0d8;
 }
-#popup .warning {
+#panel .warning {
 	background: #fcf8e3;
 }
-#popup .danger {
+#panel .danger {
 	background: #f2dede;
 }
-#popup table .vehicleInfo {
+#panel table .vehicleInfo {
 	float: right;
 }
 
@@ -113,18 +150,12 @@
 	background-color: rgba(255,255,255,.6);
 }
 
-#fail, #popup .error {
-	background: red;
-	color: white;
-	font-weight: bold;
-	padding: 5px;
-}
-#fail {
-	top: -10em;
-	right: 0.5em;
-}
-.ol-zoom {
-	top: 2.2em;
+.close {
+	float: right;
+	cursor: pointer;
+	font-size: 20px;
+	margin: 0;
+	padding: 3px;
 }
 
 a {
diff --git a/map.html b/map.html
index 263b587..e1e2047 100644
--- a/map.html
+++ b/map.html
@@ -1,25 +1,32 @@
 <!DOCTYPE html>
 <html>
-<head>
-<title>TTSS Kraków - Mapa</title>
-<meta charset="utf-8" />
-<meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width" />
-<link rel="manifest" href="map.manifest" />
-<link rel="stylesheet" href="https://openlayers.org/en/v4.1.0/css/ol.css" type="text/css" />
-<link rel="stylesheet" href="map.css" type="text/css" />
-</head>
-<body>
-<div id="map">
-<div id="title" class="ol-unselectable ol-control"><a href="/">TTSS Kraków</a></div>
-<div id="fail" class="ol-unselectable ol-control"></div>
-</div>
-<div id="popup"></div>
-<script src="https://code.jquery.com/jquery-3.1.1.min.js" integrity="sha384-3ceskX3iaEnIogmQchP8opvBy3Mi7Ce34nWjpBIwVTHfGYWQS9jwHDVRnpKKHJg7" crossorigin="anonymous"></script>
-<script src="https://cdn.polyfill.io/v2/polyfill.min.js?features=requestAnimationFrame,Element.prototype.classList"></script>
-<script src="https://openlayers.org/en/v4.1.0/build/ol.js" integrity="sha384-FkrvSU9IkctjoF6eTvw82jZvg4Rn04zw5X2nCQnYF+vT8IbAY+DJ23IIoaVDtiMe" crossorigin="anonymous"></script>
-<script tyle="text/javascript" src="lang_pl.js" id="lang_script"></script>
-<script tyle="text/javascript" src="common.js"></script>
-<script tyle="text/javascript" src="map.js"></script>
-<script tyle="text/javascript" src="serviceworker-install.js"></script>
-</body>
+	<head>
+		<title>TTSS Kraków - Mapa tramwajów</title>
+		<meta charset="utf-8" />
+		<meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width" />
+		<link rel="manifest" href="map.manifest" />
+		<link rel="stylesheet" href="https://openlayers.org/en/v4.1.0/css/ol.css" type="text/css" />
+		<link rel="stylesheet" href="map.css" type="text/css" />
+	</head>
+	<body>
+		<div id="header">
+			<ul>
+				<li><a href="/map.html" data-translate="page_name">TTSS Kraków</a></li>
+				<li><a href="/" data-translate="index">Odjazdy</a></li>
+				<li><span id="alert">Ładowanie, ładowanie, ładowanie, ładowanie...</span></li>
+			</ul>
+		</div>
+		
+		<div id="map"></div>
+		
+		<div id="panel"></div>
+		
+		<script src="https://code.jquery.com/jquery-3.1.1.min.js" integrity="sha384-3ceskX3iaEnIogmQchP8opvBy3Mi7Ce34nWjpBIwVTHfGYWQS9jwHDVRnpKKHJg7" crossorigin="anonymous"></script>
+		<script src="https://cdn.polyfill.io/v2/polyfill.min.js?features=requestAnimationFrame,Element.prototype.classList"></script>
+		<script src="https://openlayers.org/en/v4.1.0/build/ol.js" integrity="sha384-FkrvSU9IkctjoF6eTvw82jZvg4Rn04zw5X2nCQnYF+vT8IbAY+DJ23IIoaVDtiMe" crossorigin="anonymous"></script>
+		<script tyle="text/javascript" src="lang_pl.js" id="lang_script"></script>
+		<script tyle="text/javascript" src="common.js"></script>
+		<script tyle="text/javascript" src="map.js"></script>
+		<script tyle="text/javascript" src="serviceworker-install.js"></script>
+	</body>
 </html>
diff --git a/map.js b/map.js
index 0cbdf09..5a8c6bf 100644
--- a/map.js
+++ b/map.js
@@ -27,7 +27,7 @@
 var ignore_hashchange = false;
 
 var Panel = {
-	element: document.getElementById('popup'),
+	element: document.getElementById('panel'),
 	closeCallback: undefined,
 	
 	callCloseCallback: function() {
@@ -63,22 +63,16 @@
 };
 
 var Alert = {
-	element: document.getElementById('fail'),
-	action: undefined,
+	element: document.getElementById('alert'),
 	
-	fail: function(message, action) {
-		if(this.action) {
-			this.element.removeEventListener('click', this.action);
-			this.action = undefined;
-		}
-		
+	show: function(message) {
 		setText(this.element, message);
-		this.element.style.top = '0.5em';
-		
-		if(action) {
-			this.action = action;
-			this.element.addEventListener('click', action);
-		}
+		this.element.className = '';
+	},
+	
+	fail: function(message) {
+		this.show(message);
+		this.element.className = 'error';
 	},
 };
 
@@ -602,7 +596,7 @@
 
 function init() {
 	if(!window.jQuery) {
-		Alert.fail(lang.jquery_not_loaded);
+		Alert.show(lang.jquery_not_loaded);
 		return;
 	}
 	
@@ -667,14 +661,7 @@
 			attributionOptions: ({
 				collapsible: false,
 			})
-		}).extend([
-			new ol.control.Control({
-				element: document.getElementById('title'),
-			}),
-			new ol.control.Control({
-				element: Alert.element,
-			})
-		]),
+		}),
 		loadTilesWhileAnimating: true,
 	});
 	map_sphere = new ol.Sphere(6378137);
@@ -771,7 +758,7 @@
 		if(vehicles_xhr) vehicles_xhr.abort();
 		if(vehicles_timer) clearTimeout(vehicles_timer);
 		  
-		Alert.fail(lang.error_refresh);
+		Alert.show(lang.error_refresh);
 	}, 1800000);
 }
 
diff --git a/map_filters.js b/map_filters.js
new file mode 100644
index 0000000..5ab7eec
--- /dev/null
+++ b/map_filters.js
@@ -0,0 +1,6 @@
+ var filters = {
+	 list: [],
+	 
+	 
+	 
+ };
diff --git a/mock/tripPassages.json b/mock/tripPassages.json
new file mode 100644
index 0000000..bc5b22c
--- /dev/null
+++ b/mock/tripPassages.json
@@ -0,0 +1,98 @@
+{
+  "actual": [
+    {
+      "actualTime": "00:19",
+      "status": "PREDICTED",
+      "stop": {
+        "id": "6350927454370005272",
+        "name": "Smolki",
+        "shortName": "572"
+      },
+      "stop_seq_num": "15"
+    },
+    {
+      "actualTime": "00:21",
+      "status": "PREDICTED",
+      "stop": {
+        "id": "6350927454370005282",
+        "name": "Rondo Matecznego",
+        "shortName": "610"
+      },
+      "stop_seq_num": "16"
+    },
+    {
+      "actualTime": "00:22",
+      "status": "PREDICTED",
+      "stop": {
+        "id": "6350927454370005283",
+        "name": "Rzemieślnicza",
+        "shortName": "611"
+      },
+      "stop_seq_num": "17"
+    },
+    {
+      "actualTime": "00:24",
+      "status": "PREDICTED",
+      "stop": {
+        "id": "6350927454370005306",
+        "name": "Łagiewniki",
+        "shortName": "922"
+      },
+      "stop_seq_num": "18"
+    },
+    {
+      "actualTime": "00:27",
+      "status": "PREDICTED",
+      "stop": {
+        "id": "6350927454370005286",
+        "name": "PT",
+        "shortName": "614"
+      },
+      "stop_seq_num": "19"
+    }
+  ],
+  "directionText": "Zajezdnia Podgórze",
+  "old": [
+    {
+      "plannedTime": "00:15",
+      "status": "DEPARTED",
+      "stop": {
+        "id": "6350927454370005331",
+        "name": "Cmentarz Podgórski",
+        "shortName": "621"
+      },
+      "stop_seq_num": "11"
+    },
+    {
+      "actualTime": "00:16",
+      "status": "DEPARTED",
+      "stop": {
+        "id": "6350927454370005329",
+        "name": "Powstańców Wielkopolskich",
+        "shortName": "568"
+      },
+      "stop_seq_num": "12"
+    },
+    {
+      "actualTime": "00:17",
+      "status": "DEPARTED",
+      "stop": {
+        "id": "6350927454370005330",
+        "name": "Limanowskiego",
+        "shortName": "569"
+      },
+      "stop_seq_num": "13"
+    },
+    {
+      "actualTime": "00:18",
+      "status": "DEPARTED",
+      "stop": {
+        "id": "6350927454370005271",
+        "name": "Korona",
+        "shortName": "571"
+      },
+      "stop_seq_num": "14"
+    }
+  ],
+  "routeName": "9"
+}
diff --git a/mock/vehicle.json b/mock/vehicle.json
new file mode 100644
index 0000000..71834d7
--- /dev/null
+++ b/mock/vehicle.json
@@ -0,0 +1,1510 @@
+{"paths": [{
+  "color": "#f89f05",
+  "wayPoints": [
+    {
+      "lat": 180048935,
+      "lon": 71821681,
+      "seq": "1"
+    },
+    {
+      "lat": 180046991,
+      "lon": 71830706,
+      "seq": "2"
+    },
+    {
+      "lat": 180045158,
+      "lon": 71839253,
+      "seq": "3"
+    },
+    {
+      "lat": 180044867,
+      "lon": 71840869,
+      "seq": "4"
+    },
+    {
+      "lat": 180044698,
+      "lon": 71842079,
+      "seq": "5"
+    },
+    {
+      "lat": 180044698,
+      "lon": 71842079,
+      "seq": "6"
+    },
+    {
+      "lat": 180044636,
+      "lon": 71842514,
+      "seq": "7"
+    },
+    {
+      "lat": 180044539,
+      "lon": 71843270,
+      "seq": "8"
+    },
+    {
+      "lat": 180044438,
+      "lon": 71844613,
+      "seq": "9"
+    },
+    {
+      "lat": 180044294,
+      "lon": 71846845,
+      "seq": "10"
+    },
+    {
+      "lat": 180044298,
+      "lon": 71849340,
+      "seq": "11"
+    },
+    {
+      "lat": 180044366,
+      "lon": 71850730,
+      "seq": "12"
+    },
+    {
+      "lat": 180044456,
+      "lon": 71852126,
+      "seq": "13"
+    },
+    {
+      "lat": 180044590,
+      "lon": 71853412,
+      "seq": "14"
+    },
+    {
+      "lat": 180044748,
+      "lon": 71854708,
+      "seq": "15"
+    },
+    {
+      "lat": 180045130,
+      "lon": 71856990,
+      "seq": "16"
+    },
+    {
+      "lat": 180045990,
+      "lon": 71861083,
+      "seq": "17"
+    },
+    {
+      "lat": 180046033,
+      "lon": 71861288,
+      "seq": "18"
+    },
+    {
+      "lat": 180046192,
+      "lon": 71862052,
+      "seq": "19"
+    },
+    {
+      "lat": 180046951,
+      "lon": 71865572,
+      "seq": "20"
+    },
+    {
+      "lat": 180048179,
+      "lon": 71871257,
+      "seq": "21"
+    },
+    {
+      "lat": 180048514,
+      "lon": 71872855,
+      "seq": "22"
+    },
+    {
+      "lat": 180048719,
+      "lon": 71873773,
+      "seq": "23"
+    },
+    {
+      "lat": 180048719,
+      "lon": 71873773,
+      "seq": "24"
+    },
+    {
+      "lat": 180048820,
+      "lon": 71874205,
+      "seq": "25"
+    },
+    {
+      "lat": 180049136,
+      "lon": 71875080,
+      "seq": "26"
+    },
+    {
+      "lat": 180049468,
+      "lon": 71875552,
+      "seq": "27"
+    },
+    {
+      "lat": 180049900,
+      "lon": 71876351,
+      "seq": "28"
+    },
+    {
+      "lat": 180050209,
+      "lon": 71877082,
+      "seq": "29"
+    },
+    {
+      "lat": 180052420,
+      "lon": 71884044,
+      "seq": "30"
+    },
+    {
+      "lat": 180052952,
+      "lon": 71885902,
+      "seq": "31"
+    },
+    {
+      "lat": 180053460,
+      "lon": 71887777,
+      "seq": "32"
+    },
+    {
+      "lat": 180054101,
+      "lon": 71890362,
+      "seq": "33"
+    },
+    {
+      "lat": 180055552,
+      "lon": 71896943,
+      "seq": "34"
+    },
+    {
+      "lat": 180055739,
+      "lon": 71897710,
+      "seq": "35"
+    },
+    {
+      "lat": 180055768,
+      "lon": 71897839,
+      "seq": "36"
+    },
+    {
+      "lat": 180055768,
+      "lon": 71897839,
+      "seq": "37"
+    },
+    {
+      "lat": 180056405,
+      "lon": 71900618,
+      "seq": "38"
+    },
+    {
+      "lat": 180057197,
+      "lon": 71904208,
+      "seq": "39"
+    },
+    {
+      "lat": 180057924,
+      "lon": 71907408,
+      "seq": "40"
+    },
+    {
+      "lat": 180058687,
+      "lon": 71910878,
+      "seq": "41"
+    },
+    {
+      "lat": 180058968,
+      "lon": 71912124,
+      "seq": "42"
+    },
+    {
+      "lat": 180059310,
+      "lon": 71913406,
+      "seq": "43"
+    },
+    {
+      "lat": 180059638,
+      "lon": 71914349,
+      "seq": "44"
+    },
+    {
+      "lat": 180060077,
+      "lon": 71915288,
+      "seq": "45"
+    },
+    {
+      "lat": 180060599,
+      "lon": 71916203,
+      "seq": "46"
+    },
+    {
+      "lat": 180061204,
+      "lon": 71917020,
+      "seq": "47"
+    },
+    {
+      "lat": 180062028,
+      "lon": 71917844,
+      "seq": "48"
+    },
+    {
+      "lat": 180062579,
+      "lon": 71918284,
+      "seq": "49"
+    },
+    {
+      "lat": 180063144,
+      "lon": 71918597,
+      "seq": "50"
+    },
+    {
+      "lat": 180063680,
+      "lon": 71918845,
+      "seq": "51"
+    },
+    {
+      "lat": 180064433,
+      "lon": 71919029,
+      "seq": "52"
+    },
+    {
+      "lat": 180065272,
+      "lon": 71919094,
+      "seq": "53"
+    },
+    {
+      "lat": 180066265,
+      "lon": 71919068,
+      "seq": "54"
+    },
+    {
+      "lat": 180066575,
+      "lon": 71919061,
+      "seq": "55"
+    },
+    {
+      "lat": 180067003,
+      "lon": 71919043,
+      "seq": "56"
+    },
+    {
+      "lat": 180067003,
+      "lon": 71919043,
+      "seq": "57"
+    },
+    {
+      "lat": 180067212,
+      "lon": 71919036,
+      "seq": "58"
+    },
+    {
+      "lat": 180068551,
+      "lon": 71919025,
+      "seq": "59"
+    },
+    {
+      "lat": 180070106,
+      "lon": 71918968,
+      "seq": "60"
+    },
+    {
+      "lat": 180071590,
+      "lon": 71918914,
+      "seq": "61"
+    },
+    {
+      "lat": 180075290,
+      "lon": 71918633,
+      "seq": "62"
+    },
+    {
+      "lat": 180075593,
+      "lon": 71918669,
+      "seq": "63"
+    },
+    {
+      "lat": 180075812,
+      "lon": 71918824,
+      "seq": "64"
+    },
+    {
+      "lat": 180076082,
+      "lon": 71919187,
+      "seq": "65"
+    },
+    {
+      "lat": 180076244,
+      "lon": 71919338,
+      "seq": "66"
+    },
+    {
+      "lat": 180076367,
+      "lon": 71919418,
+      "seq": "67"
+    },
+    {
+      "lat": 180076457,
+      "lon": 71919479,
+      "seq": "68"
+    },
+    {
+      "lat": 180076748,
+      "lon": 71919482,
+      "seq": "69"
+    },
+    {
+      "lat": 180076928,
+      "lon": 71919461,
+      "seq": "70"
+    },
+    {
+      "lat": 180078545,
+      "lon": 71919328,
+      "seq": "71"
+    },
+    {
+      "lat": 180079402,
+      "lon": 71919410,
+      "seq": "72"
+    },
+    {
+      "lat": 180079888,
+      "lon": 71919547,
+      "seq": "73"
+    },
+    {
+      "lat": 180080514,
+      "lon": 71919799,
+      "seq": "74"
+    },
+    {
+      "lat": 180081094,
+      "lon": 71920145,
+      "seq": "75"
+    },
+    {
+      "lat": 180081670,
+      "lon": 71920598,
+      "seq": "76"
+    },
+    {
+      "lat": 180082210,
+      "lon": 71921146,
+      "seq": "77"
+    },
+    {
+      "lat": 180082714,
+      "lon": 71921779,
+      "seq": "78"
+    },
+    {
+      "lat": 180083189,
+      "lon": 71922485,
+      "seq": "79"
+    },
+    {
+      "lat": 180083815,
+      "lon": 71923572,
+      "seq": "80"
+    },
+    {
+      "lat": 180085003,
+      "lon": 71925635,
+      "seq": "81"
+    },
+    {
+      "lat": 180085104,
+      "lon": 71925804,
+      "seq": "82"
+    },
+    {
+      "lat": 180085370,
+      "lon": 71926243,
+      "seq": "83"
+    },
+    {
+      "lat": 180085370,
+      "lon": 71926243,
+      "seq": "84"
+    },
+    {
+      "lat": 180085576,
+      "lon": 71926582,
+      "seq": "85"
+    },
+    {
+      "lat": 180085921,
+      "lon": 71927222,
+      "seq": "86"
+    },
+    {
+      "lat": 180086137,
+      "lon": 71927500,
+      "seq": "87"
+    },
+    {
+      "lat": 180086324,
+      "lon": 71927644,
+      "seq": "88"
+    },
+    {
+      "lat": 180086490,
+      "lon": 71927705,
+      "seq": "89"
+    },
+    {
+      "lat": 180086656,
+      "lon": 71927726,
+      "seq": "90"
+    },
+    {
+      "lat": 180086825,
+      "lon": 71927690,
+      "seq": "91"
+    },
+    {
+      "lat": 180086983,
+      "lon": 71927561,
+      "seq": "92"
+    },
+    {
+      "lat": 180087336,
+      "lon": 71927071,
+      "seq": "93"
+    },
+    {
+      "lat": 180088135,
+      "lon": 71925804,
+      "seq": "94"
+    },
+    {
+      "lat": 180088571,
+      "lon": 71925282,
+      "seq": "95"
+    },
+    {
+      "lat": 180088700,
+      "lon": 71925156,
+      "seq": "96"
+    },
+    {
+      "lat": 180089759,
+      "lon": 71924094,
+      "seq": "97"
+    },
+    {
+      "lat": 180095918,
+      "lon": 71917751,
+      "seq": "98"
+    },
+    {
+      "lat": 180096242,
+      "lon": 71917423,
+      "seq": "99"
+    },
+    {
+      "lat": 180096296,
+      "lon": 71917553,
+      "seq": "100"
+    },
+    {
+      "lat": 180096401,
+      "lon": 71917441,
+      "seq": "101"
+    },
+    {
+      "lat": 180096768,
+      "lon": 71917106,
+      "seq": "102"
+    },
+    {
+      "lat": 180097358,
+      "lon": 71916494,
+      "seq": "103"
+    },
+    {
+      "lat": 180098356,
+      "lon": 71915515,
+      "seq": "104"
+    },
+    {
+      "lat": 180099324,
+      "lon": 71914464,
+      "seq": "105"
+    },
+    {
+      "lat": 180110761,
+      "lon": 71902739,
+      "seq": "106"
+    },
+    {
+      "lat": 180112043,
+      "lon": 71901457,
+      "seq": "107"
+    },
+    {
+      "lat": 180113972,
+      "lon": 71899538,
+      "seq": "108"
+    },
+    {
+      "lat": 180115884,
+      "lon": 71897627,
+      "seq": "109"
+    },
+    {
+      "lat": 180117666,
+      "lon": 71895802,
+      "seq": "110"
+    },
+    {
+      "lat": 180117997,
+      "lon": 71895470,
+      "seq": "111"
+    },
+    {
+      "lat": 180117997,
+      "lon": 71895470,
+      "seq": "112"
+    },
+    {
+      "lat": 180118249,
+      "lon": 71895218,
+      "seq": "113"
+    },
+    {
+      "lat": 180118717,
+      "lon": 71894743,
+      "seq": "114"
+    },
+    {
+      "lat": 180118883,
+      "lon": 71894588,
+      "seq": "115"
+    },
+    {
+      "lat": 180119074,
+      "lon": 71894459,
+      "seq": "116"
+    },
+    {
+      "lat": 180119570,
+      "lon": 71894059,
+      "seq": "117"
+    },
+    {
+      "lat": 180119887,
+      "lon": 71893732,
+      "seq": "118"
+    },
+    {
+      "lat": 180120035,
+      "lon": 71893555,
+      "seq": "119"
+    },
+    {
+      "lat": 180121518,
+      "lon": 71891964,
+      "seq": "120"
+    },
+    {
+      "lat": 180121968,
+      "lon": 71891420,
+      "seq": "121"
+    },
+    {
+      "lat": 180122378,
+      "lon": 71890823,
+      "seq": "122"
+    },
+    {
+      "lat": 180126576,
+      "lon": 71886517,
+      "seq": "123"
+    },
+    {
+      "lat": 180128664,
+      "lon": 71884292,
+      "seq": "124"
+    },
+    {
+      "lat": 180130745,
+      "lon": 71882222,
+      "seq": "125"
+    },
+    {
+      "lat": 180135011,
+      "lon": 71877906,
+      "seq": "126"
+    },
+    {
+      "lat": 180136562,
+      "lon": 71876362,
+      "seq": "127"
+    },
+    {
+      "lat": 180137974,
+      "lon": 71874983,
+      "seq": "128"
+    },
+    {
+      "lat": 180139273,
+      "lon": 71873658,
+      "seq": "129"
+    },
+    {
+      "lat": 180139619,
+      "lon": 71873302,
+      "seq": "130"
+    },
+    {
+      "lat": 180139619,
+      "lon": 71873302,
+      "seq": "131"
+    },
+    {
+      "lat": 180139766,
+      "lon": 71873147,
+      "seq": "132"
+    },
+    {
+      "lat": 180140767,
+      "lon": 71872142,
+      "seq": "133"
+    },
+    {
+      "lat": 180141790,
+      "lon": 71871098,
+      "seq": "134"
+    },
+    {
+      "lat": 180142016,
+      "lon": 71870846,
+      "seq": "135"
+    },
+    {
+      "lat": 180142193,
+      "lon": 71870620,
+      "seq": "136"
+    },
+    {
+      "lat": 180142434,
+      "lon": 71870252,
+      "seq": "137"
+    },
+    {
+      "lat": 180142880,
+      "lon": 71869550,
+      "seq": "138"
+    },
+    {
+      "lat": 180143402,
+      "lon": 71868730,
+      "seq": "139"
+    },
+    {
+      "lat": 180143780,
+      "lon": 71868161,
+      "seq": "140"
+    },
+    {
+      "lat": 180144058,
+      "lon": 71867851,
+      "seq": "141"
+    },
+    {
+      "lat": 180144392,
+      "lon": 71867498,
+      "seq": "142"
+    },
+    {
+      "lat": 180147982,
+      "lon": 71863859,
+      "seq": "143"
+    },
+    {
+      "lat": 180148442,
+      "lon": 71863387,
+      "seq": "144"
+    },
+    {
+      "lat": 180150610,
+      "lon": 71861098,
+      "seq": "145"
+    },
+    {
+      "lat": 180150898,
+      "lon": 71860781,
+      "seq": "146"
+    },
+    {
+      "lat": 180150898,
+      "lon": 71860781,
+      "seq": "147"
+    },
+    {
+      "lat": 180152183,
+      "lon": 71859388,
+      "seq": "148"
+    },
+    {
+      "lat": 180152809,
+      "lon": 71858736,
+      "seq": "149"
+    },
+    {
+      "lat": 180155585,
+      "lon": 71855878,
+      "seq": "150"
+    },
+    {
+      "lat": 180155974,
+      "lon": 71855406,
+      "seq": "151"
+    },
+    {
+      "lat": 180156301,
+      "lon": 71854859,
+      "seq": "152"
+    },
+    {
+      "lat": 180156992,
+      "lon": 71853318,
+      "seq": "153"
+    },
+    {
+      "lat": 180158303,
+      "lon": 71850154,
+      "seq": "154"
+    },
+    {
+      "lat": 180159080,
+      "lon": 71848300,
+      "seq": "155"
+    },
+    {
+      "lat": 180161910,
+      "lon": 71841416,
+      "seq": "156"
+    },
+    {
+      "lat": 180162029,
+      "lon": 71841128,
+      "seq": "157"
+    },
+    {
+      "lat": 180162058,
+      "lon": 71841056,
+      "seq": "158"
+    },
+    {
+      "lat": 180162058,
+      "lon": 71841056,
+      "seq": "159"
+    },
+    {
+      "lat": 180162205,
+      "lon": 71840704,
+      "seq": "160"
+    },
+    {
+      "lat": 180162353,
+      "lon": 71840344,
+      "seq": "161"
+    },
+    {
+      "lat": 180162464,
+      "lon": 71840070,
+      "seq": "162"
+    },
+    {
+      "lat": 180162536,
+      "lon": 71839865,
+      "seq": "163"
+    },
+    {
+      "lat": 180162572,
+      "lon": 71839710,
+      "seq": "164"
+    },
+    {
+      "lat": 180162587,
+      "lon": 71839624,
+      "seq": "165"
+    },
+    {
+      "lat": 180162616,
+      "lon": 71839368,
+      "seq": "166"
+    },
+    {
+      "lat": 180162616,
+      "lon": 71839174,
+      "seq": "167"
+    },
+    {
+      "lat": 180162562,
+      "lon": 71839012,
+      "seq": "168"
+    },
+    {
+      "lat": 180162526,
+      "lon": 71838828,
+      "seq": "169"
+    },
+    {
+      "lat": 180162500,
+      "lon": 71838562,
+      "seq": "170"
+    },
+    {
+      "lat": 180162493,
+      "lon": 71838396,
+      "seq": "171"
+    },
+    {
+      "lat": 180162472,
+      "lon": 71837474,
+      "seq": "172"
+    },
+    {
+      "lat": 180162421,
+      "lon": 71835919,
+      "seq": "173"
+    },
+    {
+      "lat": 180162378,
+      "lon": 71835430,
+      "seq": "174"
+    },
+    {
+      "lat": 180162176,
+      "lon": 71833565,
+      "seq": "175"
+    },
+    {
+      "lat": 180162079,
+      "lon": 71830343,
+      "seq": "176"
+    },
+    {
+      "lat": 180161953,
+      "lon": 71826106,
+      "seq": "177"
+    },
+    {
+      "lat": 180161870,
+      "lon": 71823373,
+      "seq": "178"
+    },
+    {
+      "lat": 180161755,
+      "lon": 71819626,
+      "seq": "179"
+    },
+    {
+      "lat": 180161737,
+      "lon": 71819305,
+      "seq": "180"
+    },
+    {
+      "lat": 180161701,
+      "lon": 71818985,
+      "seq": "181"
+    },
+    {
+      "lat": 180161651,
+      "lon": 71818664,
+      "seq": "182"
+    },
+    {
+      "lat": 180161600,
+      "lon": 71818366,
+      "seq": "183"
+    },
+    {
+      "lat": 180161514,
+      "lon": 71818013,
+      "seq": "184"
+    },
+    {
+      "lat": 180161370,
+      "lon": 71817534,
+      "seq": "185"
+    },
+    {
+      "lat": 180160420,
+      "lon": 71815018,
+      "seq": "186"
+    },
+    {
+      "lat": 180160286,
+      "lon": 71814668,
+      "seq": "187"
+    },
+    {
+      "lat": 180160078,
+      "lon": 71814172,
+      "seq": "188"
+    },
+    {
+      "lat": 180159804,
+      "lon": 71813606,
+      "seq": "189"
+    },
+    {
+      "lat": 180158069,
+      "lon": 71810280,
+      "seq": "190"
+    },
+    {
+      "lat": 180158202,
+      "lon": 71810284,
+      "seq": "191"
+    },
+    {
+      "lat": 180158022,
+      "lon": 71809938,
+      "seq": "192"
+    },
+    {
+      "lat": 180157237,
+      "lon": 71808422,
+      "seq": "193"
+    },
+    {
+      "lat": 180156726,
+      "lon": 71807450,
+      "seq": "194"
+    },
+    {
+      "lat": 180154220,
+      "lon": 71802630,
+      "seq": "195"
+    },
+    {
+      "lat": 180151153,
+      "lon": 71796755,
+      "seq": "196"
+    },
+    {
+      "lat": 180151009,
+      "lon": 71796499,
+      "seq": "197"
+    },
+    {
+      "lat": 180150836,
+      "lon": 71796254,
+      "seq": "198"
+    },
+    {
+      "lat": 180150660,
+      "lon": 71796028,
+      "seq": "199"
+    },
+    {
+      "lat": 180150512,
+      "lon": 71795894,
+      "seq": "200"
+    },
+    {
+      "lat": 180150347,
+      "lon": 71795776,
+      "seq": "201"
+    },
+    {
+      "lat": 180149983,
+      "lon": 71795574,
+      "seq": "202"
+    },
+    {
+      "lat": 180149141,
+      "lon": 71795106,
+      "seq": "203"
+    },
+    {
+      "lat": 180149094,
+      "lon": 71795081,
+      "seq": "204"
+    },
+    {
+      "lat": 180149094,
+      "lon": 71795081,
+      "seq": "205"
+    },
+    {
+      "lat": 180148806,
+      "lon": 71794919,
+      "seq": "206"
+    },
+    {
+      "lat": 180148187,
+      "lon": 71794573,
+      "seq": "207"
+    },
+    {
+      "lat": 180146981,
+      "lon": 71793904,
+      "seq": "208"
+    },
+    {
+      "lat": 180146354,
+      "lon": 71793554,
+      "seq": "209"
+    },
+    {
+      "lat": 180146023,
+      "lon": 71793400,
+      "seq": "210"
+    },
+    {
+      "lat": 180144688,
+      "lon": 71792644,
+      "seq": "211"
+    },
+    {
+      "lat": 180141178,
+      "lon": 71790667,
+      "seq": "212"
+    },
+    {
+      "lat": 180141116,
+      "lon": 71790635,
+      "seq": "213"
+    },
+    {
+      "lat": 180139007,
+      "lon": 71789447,
+      "seq": "214"
+    },
+    {
+      "lat": 180136300,
+      "lon": 71787931,
+      "seq": "215"
+    },
+    {
+      "lat": 180135940,
+      "lon": 71787751,
+      "seq": "216"
+    },
+    {
+      "lat": 180135475,
+      "lon": 71787496,
+      "seq": "217"
+    },
+    {
+      "lat": 180135310,
+      "lon": 71787402,
+      "seq": "218"
+    },
+    {
+      "lat": 180135032,
+      "lon": 71787280,
+      "seq": "219"
+    },
+    {
+      "lat": 180134878,
+      "lon": 71787240,
+      "seq": "220"
+    },
+    {
+      "lat": 180134161,
+      "lon": 71787078,
+      "seq": "221"
+    },
+    {
+      "lat": 180133859,
+      "lon": 71787010,
+      "seq": "222"
+    },
+    {
+      "lat": 180132998,
+      "lon": 71786822,
+      "seq": "223"
+    },
+    {
+      "lat": 180132491,
+      "lon": 71786707,
+      "seq": "224"
+    },
+    {
+      "lat": 180132491,
+      "lon": 71786707,
+      "seq": "225"
+    },
+    {
+      "lat": 180132422,
+      "lon": 71786693,
+      "seq": "226"
+    },
+    {
+      "lat": 180131893,
+      "lon": 71786578,
+      "seq": "227"
+    },
+    {
+      "lat": 180131472,
+      "lon": 71786495,
+      "seq": "228"
+    },
+    {
+      "lat": 180131249,
+      "lon": 71786441,
+      "seq": "229"
+    },
+    {
+      "lat": 180130846,
+      "lon": 71786344,
+      "seq": "230"
+    },
+    {
+      "lat": 180130619,
+      "lon": 71786254,
+      "seq": "231"
+    },
+    {
+      "lat": 180130388,
+      "lon": 71786135,
+      "seq": "232"
+    },
+    {
+      "lat": 180130172,
+      "lon": 71785976,
+      "seq": "233"
+    },
+    {
+      "lat": 180130018,
+      "lon": 71785836,
+      "seq": "234"
+    },
+    {
+      "lat": 180129712,
+      "lon": 71785505,
+      "seq": "235"
+    },
+    {
+      "lat": 180129535,
+      "lon": 71785307,
+      "seq": "236"
+    },
+    {
+      "lat": 180129074,
+      "lon": 71784749,
+      "seq": "237"
+    },
+    {
+      "lat": 180128192,
+      "lon": 71783683,
+      "seq": "238"
+    },
+    {
+      "lat": 180127660,
+      "lon": 71783039,
+      "seq": "239"
+    },
+    {
+      "lat": 180127372,
+      "lon": 71782751,
+      "seq": "240"
+    },
+    {
+      "lat": 180127278,
+      "lon": 71782672,
+      "seq": "241"
+    },
+    {
+      "lat": 180127051,
+      "lon": 71782477,
+      "seq": "242"
+    },
+    {
+      "lat": 180126623,
+      "lon": 71782218,
+      "seq": "243"
+    },
+    {
+      "lat": 180125471,
+      "lon": 71781599,
+      "seq": "244"
+    },
+    {
+      "lat": 180122724,
+      "lon": 71780144,
+      "seq": "245"
+    },
+    {
+      "lat": 180121093,
+      "lon": 71779316,
+      "seq": "246"
+    },
+    {
+      "lat": 180120193,
+      "lon": 71778820,
+      "seq": "247"
+    },
+    {
+      "lat": 180120193,
+      "lon": 71778820,
+      "seq": "248"
+    },
+    {
+      "lat": 180119297,
+      "lon": 71778348,
+      "seq": "249"
+    },
+    {
+      "lat": 180118811,
+      "lon": 71778089,
+      "seq": "250"
+    },
+    {
+      "lat": 180118447,
+      "lon": 71777898,
+      "seq": "251"
+    },
+    {
+      "lat": 180117644,
+      "lon": 71777466,
+      "seq": "252"
+    },
+    {
+      "lat": 180115438,
+      "lon": 71776303,
+      "seq": "253"
+    },
+    {
+      "lat": 180113396,
+      "lon": 71775227,
+      "seq": "254"
+    },
+    {
+      "lat": 180112655,
+      "lon": 71774798,
+      "seq": "255"
+    },
+    {
+      "lat": 180111856,
+      "lon": 71774276,
+      "seq": "256"
+    },
+    {
+      "lat": 180111280,
+      "lon": 71773931,
+      "seq": "257"
+    },
+    {
+      "lat": 180110851,
+      "lon": 71773693,
+      "seq": "258"
+    },
+    {
+      "lat": 180110462,
+      "lon": 71773481,
+      "seq": "259"
+    },
+    {
+      "lat": 180109739,
+      "lon": 71773092,
+      "seq": "260"
+    },
+    {
+      "lat": 180109141,
+      "lon": 71772779,
+      "seq": "261"
+    },
+    {
+      "lat": 180109141,
+      "lon": 71772779,
+      "seq": "262"
+    },
+    {
+      "lat": 180108965,
+      "lon": 71772685,
+      "seq": "263"
+    },
+    {
+      "lat": 180108659,
+      "lon": 71772534,
+      "seq": "264"
+    },
+    {
+      "lat": 180108245,
+      "lon": 71772322,
+      "seq": "265"
+    },
+    {
+      "lat": 180107435,
+      "lon": 71771890,
+      "seq": "266"
+    },
+    {
+      "lat": 180106488,
+      "lon": 71771396,
+      "seq": "267"
+    },
+    {
+      "lat": 180106420,
+      "lon": 71771339,
+      "seq": "268"
+    },
+    {
+      "lat": 180106286,
+      "lon": 71771180,
+      "seq": "269"
+    },
+    {
+      "lat": 180106214,
+      "lon": 71771044,
+      "seq": "270"
+    },
+    {
+      "lat": 180106160,
+      "lon": 71770903,
+      "seq": "271"
+    },
+    {
+      "lat": 180106117,
+      "lon": 71770738,
+      "seq": "272"
+    },
+    {
+      "lat": 180106096,
+      "lon": 71770601,
+      "seq": "273"
+    },
+    {
+      "lat": 180106085,
+      "lon": 71770417,
+      "seq": "274"
+    },
+    {
+      "lat": 180106085,
+      "lon": 71770252,
+      "seq": "275"
+    },
+    {
+      "lat": 180106229,
+      "lon": 71769719,
+      "seq": "276"
+    },
+    {
+      "lat": 180106398,
+      "lon": 71769143,
+      "seq": "277"
+    },
+    {
+      "lat": 180106852,
+      "lon": 71767591,
+      "seq": "278"
+    },
+    {
+      "lat": 180107068,
+      "lon": 71766911,
+      "seq": "279"
+    },
+    {
+      "lat": 180107237,
+      "lon": 71766407,
+      "seq": "280"
+    },
+    {
+      "lat": 180107402,
+      "lon": 71765935,
+      "seq": "281"
+    },
+    {
+      "lat": 180107924,
+      "lon": 71764394,
+      "seq": "282"
+    },
+    {
+      "lat": 180108032,
+      "lon": 71764096,
+      "seq": "283"
+    },
+    {
+      "lat": 180108176,
+      "lon": 71763678,
+      "seq": "284"
+    },
+    {
+      "lat": 180108230,
+      "lon": 71763552,
+      "seq": "285"
+    },
+    {
+      "lat": 180108295,
+      "lon": 71763444,
+      "seq": "286"
+    },
+    {
+      "lat": 180108497,
+      "lon": 71763145,
+      "seq": "287"
+    },
+    {
+      "lat": 180108659,
+      "lon": 71762976,
+      "seq": "288"
+    },
+    {
+      "lat": 180108792,
+      "lon": 71762846,
+      "seq": "289"
+    },
+    {
+      "lat": 180108806,
+      "lon": 71762828,
+      "seq": "290"
+    },
+    {
+      "lat": 180108922,
+      "lon": 71762746,
+      "seq": "291"
+    },
+    {
+      "lat": 180108990,
+      "lon": 71762710,
+      "seq": "292"
+    },
+    {
+      "lat": 180109044,
+      "lon": 71762684,
+      "seq": "293"
+    },
+    {
+      "lat": 180109163,
+      "lon": 71762645,
+      "seq": "294"
+    },
+    {
+      "lat": 180109264,
+      "lon": 71762627,
+      "seq": "295"
+    },
+    {
+      "lat": 180109429,
+      "lon": 71762634,
+      "seq": "296"
+    },
+    {
+      "lat": 180110030,
+      "lon": 71762594,
+      "seq": "297"
+    },
+    {
+      "lat": 180110628,
+      "lon": 71762587,
+      "seq": "298"
+    },
+    {
+      "lat": 180111463,
+      "lon": 71762756,
+      "seq": "299"
+    },
+    {
+      "lat": 180112291,
+      "lon": 71762728,
+      "seq": "300"
+    },
+    {
+      "lat": 180114206,
+      "lon": 71762706,
+      "seq": "301"
+    }
+  ]
+}]}
\ No newline at end of file
diff --git a/mock/vehicles.json b/mock/vehicles.json
new file mode 100644
index 0000000..61cfaee
--- /dev/null
+++ b/mock/vehicles.json
@@ -0,0 +1 @@
+{"lastUpdate":1493072360617,"vehicles":[{"id":"6352185295672181046","isDeleted":true},{"id":"6352185295672181548","category":"tram","color":"0xf89f05","tripId":"6351558574045172248","name":"50 Zajezdnia Podgórze","path":[{"length":3.935526321139517E-5,"y1":180114441,"y2":180114315,"x2":71775711,"angle":198,"x1":71775777}],"longitude":71775712,"latitude":180114316,"heading":199},{"id":"6352185295672181340","isDeleted":true},{"id":"6352185295672181371","category":"tram","color":"0xf89f05","tripId":"6351558574044832274","name":"14 Zajezdnia Podgórze","path":[{"length":2.915475947555991E-5,"y1":180111824,"y2":180111734,"x2":71774203,"angle":201,"x1":71774257}],"longitude":71774203,"latitude":180111734,"heading":201},{"id":"6352185295672181640","category":"tram","color":"0xf89f05","tripId":"6351558574045094419","name":"24 Zajezdnia Podgórze","path":[{"length":1.9323817359401515E-4,"y1":180116409,"y2":180115794,"x2":71776491,"angle":198,"x1":71776815}],"longitude":71776491,"latitude":180115794,"heading":199},{"id":"6352185295672181662","isDeleted":true},{"id":"6352185295672181163","isDeleted":true},{"id":"6352185295672180891","isDeleted":true},{"id":"6352185295672181380","isDeleted":true},{"id":"6352185295672181381","isDeleted":true},{"id":"6352185295672181043","isDeleted":true},{"id":"6352185295672181151","isDeleted":true},{"id":"6352185295672181359","isDeleted":true},{"id":"6352185295672181152","isDeleted":true},{"id":"6352185295672181545","category":"tram","color":"0xf89f05","tripId":"6351558574045192728","name":"50 Zajezdnia Podgórze","path":[{"length":1.923373459802447E-5,"y1":180110523,"y2":180110462,"x2":71773481,"angle":199,"x1":71773514},{"length":1.0558882189089556E-4,"y1":180110462,"y2":180110128,"x2":71773301,"angle":199,"x1":71773481}],"longitude":71773300,"latitude":180110126,"heading":199},{"id":"6352185295672181344","category":"tram","color":"0xf89f05","tripId":"6351558574044893716","name":"18 Zajezdnia Podgórze","path":[{"length":1.1395195982138296E-5,"y1":180107966,"y2":180107978,"x2":71771126,"angle":295,"x1":71771166},{"length":3.0805843599605936E-5,"y1":180107978,"y2":180108004,"x2":71771018,"angle":289,"x1":71771126},{"length":7.951100552687704E-5,"y1":180108004,"y2":180108036,"x2":71770734,"angle":280,"x1":71771018},{"length":4.5099889135160134E-5,"y1":180108036,"y2":180108047,"x2":71770572,"angle":275,"x1":71770734},{"length":3.70135110455302E-5,"y1":180108047,"y2":180108043,"x2":71770439,"angle":267,"x1":71770572},{"length":3.413209633467539E-5,"y1":180108043,"y2":180108032,"x2":71770316,"angle":262,"x1":71770439},{"length":3.847076812317915E-5,"y1":180108032,"y2":180108011,"x2":71770180,"angle":256,"x1":71770316},{"length":4.220189569229801E-5,"y1":180108011,"y2":180107975,"x2":71770032,"angle":249,"x1":71770180},{"length":6.428841264149761E-5,"y1":180107975,"y2":180107914,"x2":71769809,"angle":246,"x1":71770032},{"length":9.09560333326348E-5,"y1":180107914,"y2":180107831,"x2":71769492,"angle":247,"x1":71769809},{"length":4.3706864449539866E-4,"y1":180107831,"y2":180107435,"x2":71767969,"angle":247,"x1":71769492},{"length":1.787568180520005E-4,"y1":180107435,"y2":180107273,"x2":71767346,"angle":247,"x1":71767969}],"longitude":71767346,"latitude":180107273,"heading":248},{"id":"6352185295672181551","isDeleted":true},{"id":"6352185295672181049","isDeleted":true},{"id":"6352185295672181172","isDeleted":true},{"id":"6352185295672181145","category":"tram","color":"0xf89f05","tripId":"6351558574044951064","name":"19 Zajezdnia Nowa Huta","path":[{"length":1.902252475303211E-5,"y1":180284938,"y2":180284940,"x2":72232146,"angle":87,"x1":72232078},{"length":3.852193052002268E-4,"y1":180284940,"y2":180284988,"x2":72233532,"angle":86,"x1":72232146}],"longitude":72233532,"latitude":180284988,"heading":87},{"id":"6352185295672180876","category":"tram","color":"0xf89f05","tripId":"6351558574044471828","name":"3 Zajezdnia Nowa Huta","path":[{"length":5.91308239154449E-5,"y1":180302436,"y2":180302648,"x2":72235806,"angle":357,"x1":72235823}],"longitude":72235842,"latitude":180302191,"heading":357},{"id":"6352185295672181045","isDeleted":true},{"id":"6352185295672181365","category":"tram","color":"0xf89f05","tripId":"6351558574044918293","name":"18 Zajezdnia Podgórze","path":[{"length":1.842958301055844E-4,"y1":180119884,"y2":180119297,"x2":71778348,"angle":198,"x1":71778657},{"length":7.605882353215399E-5,"y1":180119297,"y2":180119055,"x2":71778219,"angle":198,"x1":71778348}],"longitude":71778219,"latitude":180119054,"heading":199},{"id":"6352185295672181542","isDeleted":true},{"id":"6352185295672181153","category":"tram","color":"0xf89f05","tripId":"6351558574044422675","name":"2 Zajezdnia Nowa Huta","longitude":72227500,"latitude":180308926,"heading":180},{"id":"6352185295672181197","isDeleted":true},{"id":"6352185295672181037","isDeleted":true},{"id":"6352185295672181550","isDeleted":true},{"id":"6352185295672180849","category":"tram","color":"0xf89f05","tripId":"6351558574045139471","name":"24 Zajezdnia Podgórze","longitude":71765500,"latitude":180107616,"heading":315},{"id":"6352185295672181358","isDeleted":true},{"id":"6352185295672181541","isDeleted":true},{"id":"6352185295672180854","category":"tram","color":"0xf89f05","tripId":"6351558574045266448","name":"52 Zajezdnia Nowa Huta","path":[{"length":8.459310779063917E-5,"y1":180291694,"y2":180291996,"x2":72236668,"angle":355,"x1":72236703},{"length":4.6172420885782706E-5,"y1":180291996,"y2":180292162,"x2":72236654,"angle":357,"x1":72236668}],"longitude":72236654,"latitude":180292162,"heading":357},{"id":"6352185295672180871","isDeleted":true},{"id":"6352185295672181169","isDeleted":true},{"id":"6352185295672181343","isDeleted":true},{"id":"6352185295672181063","isDeleted":true},{"id":"6352185295672181650","category":"tram","color":"0xf89f05","tripId":"6351558574045118996","name":"24 Zajezdnia Podgórze","path":[{"length":1.335439927331479E-4,"y1":180129381,"y2":180129074,"x2":71784749,"angle":217,"x1":71785119},{"length":3.650341046079343E-4,"y1":180129074,"y2":180128236,"x2":71783736,"angle":217,"x1":71784749}],"longitude":71783737,"latitude":180128237,"heading":218},{"id":"6352185295672181041","isDeleted":true},{"id":"6352185295672181138","isDeleted":true},{"id":"6352185295672181143","isDeleted":true},{"id":"6352185295672181664","isDeleted":true},{"id":"6352185295672181374","isDeleted":true},{"id":"6352185295672181140","isDeleted":true},{"id":"6352185295672181379","isDeleted":true},{"id":"6352185295672181195","isDeleted":true},{"id":"6352185295672181554","isDeleted":true},{"id":"6352185295672181654","isDeleted":true},{"id":"6352185295672181639","category":"tram","color":"0xf89f05","tripId":"6351558574045229586","name":"52 Zajezdnia Podgórze","path":[{"length":2.595922173979833E-5,"y1":180106078,"y2":180106052,"x2":71769866,"angle":114,"x1":71769777}],"longitude":71769865,"latitude":180106052,"heading":115},{"id":"6352185295672181649","isDeleted":true},{"id":"6352185295672181160","isDeleted":true},{"id":"6352185295672181552","isDeleted":true},{"id":"6352185295672181373","isDeleted":true},{"id":"6352185295672181191","isDeleted":true},{"id":"6352185295672181144","category":"tram","color":"0xf89f05","tripId":"6351558574044819986","name":"14 Zajezdnia Nowa Huta","path":[{"length":1.9409246407936417E-4,"y1":180284917,"y2":180284940,"x2":72232146,"angle":87,"x1":72231448},{"length":6.954142650252623E-4,"y1":180284940,"y2":180285026,"x2":72234648,"angle":86,"x1":72232146},{"length":9.408506788773983E-5,"y1":180285026,"y2":180285041,"x2":72234986,"angle":86,"x1":72234648}],"longitude":72234986,"latitude":180285041,"heading":87},{"id":"6352185295672181148","isDeleted":true},{"id":"6352185295672181543","category":"tram","color":"0xf89f05","tripId":"6351558574044623380","name":"8 Zajezdnia Podgórze","path":[{"length":1.7932352283322802E-4,"y1":180106872,"y2":180107068,"x2":71766911,"angle":296,"x1":71767526},{"length":4.964876634630847E-5,"y1":180107068,"y2":180107125,"x2":71766742,"angle":297,"x1":71766911}],"longitude":71766742,"latitude":180107125,"heading":297},{"id":"6352185295672180878","category":"tram","color":"0xf89f05","tripId":"6351558574044463637","name":"3 Zajezdnia Nowa Huta","path":[{"length":1.0049859548097947E-5,"y1":180287935,"y2":180287971,"x2":72237010,"angle":356,"x1":72237013}],"longitude":72237010,"latitude":180287971,"heading":356},{"id":"6352185295672181667","category":"tram","color":"0xf89f05","tripId":"6351558574044488210","name":"4 Zajezdnia Nowa Huta","longitude":72229125,"latitude":180308188,"heading":315},{"id":"6352185295672180988","category":"tram","color":"0xf89f05","tripId":"6351558574044631570","name":"9 Zajezdnia Nowa Huta","path":[{"length":2.6393162328013726E-4,"y1":180260013,"y2":180259920,"x2":72108457,"angle":98,"x1":72107512}],"longitude":72236380,"latitude":180293880,"heading":0},{"id":"6352185295672181166","isDeleted":true},{"id":"6352185295672181171","isDeleted":true},{"id":"6352185295672181559","isDeleted":true},{"id":"6352185295672181164","isDeleted":true},{"id":"6352185295672181538","isDeleted":true},{"id":"6352185295672181382","isDeleted":true},{"id":"6352185295672181168","isDeleted":true},{"id":"6352185295672181058","isDeleted":true},{"id":"6352185295672181060","isDeleted":true},{"id":"6352185295672180881","category":"tram","color":"0xf89f05","tripId":"6351558574045041167","name":"22 Kombinat","path":[{"length":1.273181432470355E-4,"y1":180258126,"y2":180258095,"x2":72130082,"angle":96,"x1":72129625},{"length":6.100819616939385E-5,"y1":180258095,"y2":180258098,"x2":72130302,"angle":88,"x1":72130082},{"length":1.1088733020444895E-4,"y1":180258098,"y2":180258149,"x2":72130698,"angle":78,"x1":72130302},{"length":8.805679985272291E-5,"y1":180258149,"y2":180258232,"x2":72131004,"angle":67,"x1":72130698},{"length":9.693296652910558E-5,"y1":180258232,"y2":180258361,"x2":72131328,"angle":58,"x1":72131004},{"length":8.285529554339446E-5,"y1":180258361,"y2":180258509,"x2":72131587,"angle":48,"x1":72131328},{"length":1.3418271125743188E-4,"y1":180258509,"y2":180258818,"x2":72131958,"angle":37,"x1":72131587},{"length":2.1054453210763173E-4,"y1":180258818,"y2":180259556,"x2":72132131,"angle":8,"x1":72131958},{"length":1.72026088714119E-4,"y1":180259556,"y2":180260161,"x2":72132265,"angle":8,"x1":72132131}],"longitude":72132265,"latitude":180260161,"heading":8},{"id":"6352185295672181193","isDeleted":true},{"id":"6352185295672181665","isDeleted":true},{"id":"6352185295672181362","isDeleted":true},{"id":"6352185295672181658","isDeleted":true},{"id":"6352185295672181567","category":"tram","color":"0xf89f05","tripId":"6351558574044672528","name":"9 Zajezdnia Podgórze","path":[{"length":8.676980782685217E-4,"y1":180155661,"y2":180154220,"x2":71802630,"angle":231,"x1":71805402},{"length":2.187165715019371E-4,"y1":180154220,"y2":180153856,"x2":71801932,"angle":230,"x1":71802630}],"longitude":71801932,"latitude":180153856,"heading":231},{"id":"6352185295672181642","isDeleted":true},{"id":"6352185295672181648","category":"tram","color":"0xf89f05","tripId":"6351558574044520978","name":"4 Zajezdnia Podgórze","path":[{"length":7.78973577965488E-5,"y1":180148432,"y2":180148187,"x2":71794573,"angle":199,"x1":71794710},{"length":3.831722850097504E-4,"y1":180148187,"y2":180146981,"x2":71793904,"angle":199,"x1":71794573},{"length":1.3607686167684322E-4,"y1":180146981,"y2":180146553,"x2":71793665,"angle":199,"x1":71793904}],"longitude":71793666,"latitude":180146554,"heading":200},{"id":"6352185295672181350","category":"tram","color":"0xf89f05","tripId":"6351558574044783123","name":"13 Zajezdnia Podgórze","path":[{"length":9.178761099678711E-5,"y1":180136588,"y2":180136300,"x2":71787931,"angle":199,"x1":71788093},{"length":1.1180339887234569E-4,"y1":180136300,"y2":180135940,"x2":71787751,"angle":197,"x1":71787931},{"length":1.4724808997086482E-4,"y1":180135940,"y2":180135475,"x2":71787496,"angle":199,"x1":71787751},{"length":5.283937925945691E-5,"y1":180135475,"y2":180135310,"x2":71787402,"angle":199,"x1":71787496},{"length":8.41724420435013E-5,"y1":180135310,"y2":180135032,"x2":71787280,"angle":195,"x1":71787402},{"length":4.438468204058395E-5,"y1":180135032,"y2":180134878,"x2":71787240,"angle":189,"x1":71787280},{"length":2.040245083337438E-4,"y1":180134878,"y2":180134161,"x2":71787078,"angle":188,"x1":71787240},{"length":6.161026915978307E-5,"y1":180134161,"y2":180133945,"x2":71787029,"angle":188,"x1":71787078}],"longitude":71787029,"latitude":180133944,"heading":188},{"id":"6352185295672181167","isDeleted":true},{"id":"6352185295672180866","isDeleted":true}]}
\ No newline at end of file

--
Gitblit v1.9.1