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