diff options
author | Anton Tananaev <anton.tananaev@gmail.com> | 2020-03-22 22:58:18 -0700 |
---|---|---|
committer | Anton Tananaev <anton.tananaev@gmail.com> | 2020-03-22 22:58:18 -0700 |
commit | ba9cc86f667486a09edb323402c2d63ada5ea639 (patch) | |
tree | 8df80eca54f9dd39664f63365ffcc2ec248fb3df /web/app/view/map/BaseMap.js | |
parent | 990d485a21c945e7d57b85378650a65f3e79eed3 (diff) | |
parent | f5165c8e897e8d9cf4219d943e2d34b61adb48b5 (diff) | |
download | etbsa-traccar-web-ba9cc86f667486a09edb323402c2d63ada5ea639.tar.gz etbsa-traccar-web-ba9cc86f667486a09edb323402c2d63ada5ea639.tar.bz2 etbsa-traccar-web-ba9cc86f667486a09edb323402c2d63ada5ea639.zip |
Merge branch 'master' into modern
Diffstat (limited to 'web/app/view/map/BaseMap.js')
-rw-r--r-- | web/app/view/map/BaseMap.js | 40 |
1 files changed, 26 insertions, 14 deletions
diff --git a/web/app/view/map/BaseMap.js b/web/app/view/map/BaseMap.js index 07e391f..6c6522b 100644 --- a/web/app/view/map/BaseMap.js +++ b/web/app/view/map/BaseMap.js @@ -30,7 +30,7 @@ Ext.define('Traccar.view.map.BaseMap', { }, initMap: function () { - var server, layer, type, bingKey, lat, lon, zoom, maxZoom, target, poiLayer; + var server, layer, type, bingKey, lat, lon, zoom, maxZoom, target, poiLayer, self = this; server = Traccar.app.getServer(); @@ -41,11 +41,18 @@ Ext.define('Traccar.view.map.BaseMap', { case 'custom': layer = new ol.layer.Tile({ source: new ol.source.XYZ({ - url: server.get('mapUrl'), + url: Ext.String.htmlDecode(server.get('mapUrl')), attributions: '' }) }); break; + case 'customArcgis': + layer = new ol.layer.Tile({ + source: new ol.source.TileArcGISRest({ + url: Ext.String.htmlDecode(server.get('mapUrl')) + }) + }); + break; case 'bingRoad': layer = new ol.layer.Tile({ source: new ol.source.BingMaps({ @@ -96,7 +103,7 @@ Ext.define('Traccar.view.map.BaseMap', { if (y < 0) { y = 'M' + -y; } - return 'http://online{}.map.bdimg.com/onlinelabel/?qt=tile&x={x}&y={y}&z={z}&styles=pl' + return 'https://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({ @@ -108,7 +115,7 @@ Ext.define('Traccar.view.map.BaseMap', { 1024, 512, 256, 128, 64, 32, 16, 8, 4, 2, 1, 0.5 ] }), - attributions: '© <a href="http://map.baidu.com/">Baidu</a>' + attributions: '© <a href="https://map.baidu.com/">Baidu</a>' }) }); break; @@ -130,16 +137,16 @@ Ext.define('Traccar.view.map.BaseMap', { }) }); break; - case 'osm': + case 'wikimedia': layer = new ol.layer.Tile({ - source: new ol.source.OSM({}) + source: new ol.source.OSM({ + url: 'https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png' + }) }); break; default: layer = new ol.layer.Tile({ - source: new ol.source.OSM({ - url: 'https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png' - }) + source: new ol.source.OSM({}) }); break; } @@ -207,19 +214,19 @@ Ext.define('Traccar.view.map.BaseMap', { }); this.map.on('click', function (e) { - var i, features = this.map.getFeaturesAtPixel(e.pixel, { + var i, features = self.map.getFeaturesAtPixel(e.pixel, { layerFilter: function (layer) { return !layer.get('name'); } }); if (features) { for (i = 0; i < features.length; i++) { - this.fireEvent('selectfeature', features[i]); + self.fireEvent('selectfeature', features[i]); } } else { - this.fireEvent('deselectfeature'); + self.fireEvent('deselectfeature'); } - }, this); + }); }, listeners: { @@ -232,7 +239,12 @@ Ext.define('Traccar.view.map.BaseMap', { } } }, function () { + var projection; 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]); + ol.proj.proj4.register(proj4); + projection = ol.proj.get('EPSG:3395'); + if (projection) { + projection.setExtent([-20037508.342789244, -20037508.342789244, 20037508.342789244, 20037508.342789244]); + } }); |