diff options
Diffstat (limited to 'web/app/view')
-rw-r--r-- | web/app/view/ReportController.js | 4 | ||||
-rw-r--r-- | web/app/view/map/BaseMap.js | 88 | ||||
-rw-r--r-- | web/app/view/permissions/BaseController.js | 4 |
3 files changed, 84 insertions, 12 deletions
diff --git a/web/app/view/ReportController.js b/web/app/view/ReportController.js index e8955a8c..d83d9986 100644 --- a/web/app/view/ReportController.js +++ b/web/app/view/ReportController.js @@ -463,6 +463,10 @@ Ext.define('Traccar.view.ReportController', { text: Strings.reportEngineHours, dataIndex: 'engineHours', renderer: Traccar.AttributeFormatter.getFormatter('hours') + }, { + text: Strings.reportSpentFuel, + dataIndex: 'spentFuel', + renderer: Traccar.AttributeFormatter.getFormatter('spentFuel') }], tripsColumns: [{ diff --git a/web/app/view/map/BaseMap.js b/web/app/view/map/BaseMap.js index ac3b2694..c4297f68 100644 --- a/web/app/view/map/BaseMap.js +++ b/web/app/view/map/BaseMap.js @@ -62,29 +62,91 @@ Ext.define('Traccar.view.map.BaseMap', { imagerySet: 'Aerial' }) }); - } else if (type === 'osm') { + } else if (type === 'bingHybrid') { layer = new ol.layer.Tile({ - source: new ol.source.OSM({}) + source: new ol.source.BingMaps({ + key: bingKey, + imagerySet: 'AerialWithLabels' + }) }); - } else { + } else if (type === 'carto') { layer = new ol.layer.Tile({ source: new ol.source.XYZ({ - urls: [ - 'https://cartodb-basemaps-a.global.ssl.fastly.net/light_all/{z}/{x}/{y}.png', - 'https://cartodb-basemaps-b.global.ssl.fastly.net/light_all/{z}/{x}/{y}.png', - 'https://cartodb-basemaps-c.global.ssl.fastly.net/light_all/{z}/{x}/{y}.png', - 'https://cartodb-basemaps-d.global.ssl.fastly.net/light_all/{z}/{x}/{y}.png' - ], + url: 'https://cartodb-basemaps-{a-d}.global.ssl.fastly.net/light_all/{z}/{x}/{y}.png', attributions: [ new ol.Attribution({ html: [ '© <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> ' + - 'contributors, © <a href="https://carto.com/attributions">CARTO</a>' + 'contributors, © <a href="https://carto.com/attributions">CARTO</a>' ] }) ] }) }); + } else if (type === 'baidu') { + layer = new ol.layer.Tile({ + source: new ol.source.XYZ({ + projection: 'BD-MC', + tileUrlFunction: function (tileCoord) { + var urlsLength = 5, z = tileCoord[0], x = tileCoord[1], y = tileCoord[2], hash, index; + + hash = (x << z) + y; + index = hash % urlsLength; + index = index < 0 ? index + urlsLength : index; + + if (x < 0) { + x = 'M' + (-x); + } + if (y < 0) { + y = 'M' + (-y); + } + return 'http://online{}.map.bdimg.com/onlinelabel/?qt=tile&x={x}&y={y}&z={z}&styles=pl' + .replace('{}', index).replace('{x}', x).replace('{y}', y).replace('{z}', z); + }, + tileGrid: new ol.tilegrid.TileGrid({ + extent: ol.proj.transformExtent([-180, -74, 180, 74], 'EPSG:4326', 'BD-MC'), + origin: [0, 0], + minZoom: 3, + resolutions: [ + 262144, 131072, 65536, 32768, 16384, 8192, 4096, 2048, + 1024, 512, 256, 128, 64, 32, 16, 8, 4, 2, 1, 0.5 + ] + }), + attributions: [ + new ol.Attribution({ + html: '© <a href="http://map.baidu.com/">Baidu</a>' + }) + ] + }) + }); + } else if (type === 'yandexMap') { + layer = new ol.layer.Tile({ + source: new ol.source.XYZ({ + url: 'https://vec0{1-4}.maps.yandex.net/tiles?l=map&x={x}&y={y}&z={z}', + projection: 'EPSG:3395', + attributions: [ + new ol.Attribution({ + html: '© <a href="https://yandex.com/maps/">Yandex</a>' + }) + ] + }) + }); + } else if (type === 'yandexSat') { + layer = new ol.layer.Tile({ + source: new ol.source.XYZ({ + url: 'https://sat0{1-4}.maps.yandex.net/tiles?l=sat&x={x}&y={y}&z={z}', + projection: 'EPSG:3395', + attributions: [ + new ol.Attribution({ + html: '© <a href="https://yandex.com/maps/">Yandex</a>' + }) + ] + }) + }); + } else { + layer = new ol.layer.Tile({ + source: new ol.source.OSM({}) + }); } lat = Traccar.app.getPreference('latitude', Traccar.Style.mapDefaultLat); @@ -143,4 +205,10 @@ Ext.define('Traccar.view.map.BaseMap', { this.map.updateSize(); } } +}, function () { + + proj4.defs('BD-MC', '+proj=merc +lon_0=0 +units=m +ellps=clrk66 +no_defs'); + proj4.defs('EPSG:3395', '+proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs'); + ol.proj.get('EPSG:3395').setExtent([-20037508.342789244, -20037508.342789244, 20037508.342789244, 20037508.342789244]); + }); diff --git a/web/app/view/permissions/BaseController.js b/web/app/view/permissions/BaseController.js index dc4d6ef2..8a85a5e2 100644 --- a/web/app/view/permissions/BaseController.js +++ b/web/app/view/permissions/BaseController.js @@ -57,7 +57,7 @@ Ext.define('Traccar.view.permissions.BaseController', { jsonData: Ext.util.JSON.encode(data), callback: function (options, success, response) { if (!success) { - selection.deselect(record); + selection.deselect(record, true); Traccar.app.showError(response); } } @@ -75,7 +75,7 @@ Ext.define('Traccar.view.permissions.BaseController', { jsonData: Ext.util.JSON.encode(data), callback: function (options, success, response) { if (!success) { - selection.select(record); + selection.select(record, true, true); Traccar.app.showError(response); } } |