From 16d579d1628bd8aa4a8d1f262ed70face50af907 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Mon, 19 Jul 2021 20:36:24 -0700 Subject: Add Yandex map back --- web/app/store/MapTypes.js | 6 ++++++ web/app/view/map/BaseMap.js | 30 +++++++++++++++++++++++++++++- 2 files changed, 35 insertions(+), 1 deletion(-) (limited to 'web') diff --git a/web/app/store/MapTypes.js b/web/app/store/MapTypes.js index dd889d4..9cca525 100644 --- a/web/app/store/MapTypes.js +++ b/web/app/store/MapTypes.js @@ -37,6 +37,12 @@ Ext.define('Traccar.store.MapTypes', { }, { key: 'bingHybrid', name: Strings.mapBingHybrid + }, { + key: 'yandexMap', + name: Strings.mapYandexMap + }, { + key: 'yandexSat', + name: Strings.mapYandexSat }, { key: 'custom', name: Strings.mapCustom diff --git a/web/app/view/map/BaseMap.js b/web/app/view/map/BaseMap.js index 6891598..0107acd 100644 --- a/web/app/view/map/BaseMap.js +++ b/web/app/view/map/BaseMap.js @@ -102,10 +102,30 @@ Ext.define('Traccar.view.map.BaseMap', { url: 'https://webrd0{1-4}.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}' }) }), + new ol.layer.Tile({ + title: Strings.mapYandexMap, + type: 'base', + visible: type === 'yandexMap', + source: new ol.source.XYZ({ + url: 'https://core-renderer-tiles.maps.yandex.net/tiles?l=map&x={x}&y={y}&z={z}', + projection: 'EPSG:3395', + attributions: '© Yandex' + }) + }), + new ol.layer.Tile({ + title: Strings.mapYandexSat, + type: 'base', + visible: type === 'yandexSat', + source: new ol.source.XYZ({ + url: 'https://core-sat.maps.yandex.net/tiles?l=sat&x={x}&y={y}&z={z}', + projection: 'EPSG:3395', + attributions: '© Yandex' + }) + }), new ol.layer.Tile({ title: Strings.mapOsm, type: 'base', - visible: type === 'osm' || type === 'yandexMap' || type === 'yandexSat' || type === 'wikimedia' || !type, + visible: type === 'osm' || type === 'wikimedia' || !type, source: new ol.source.OSM({}) }) ] @@ -204,4 +224,12 @@ Ext.define('Traccar.view.map.BaseMap', { this.map.updateSize(); } } +}, function () { + var projection; + 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.proj4.register(proj4); + projection = ol.proj.get('EPSG:3395'); + if (projection) { + projection.setExtent([-20037508.342789244, -20037508.342789244, 20037508.342789244, 20037508.342789244]); + } }); -- cgit v1.2.3