diff options
author | Anton Tananaev <anton@traccar.org> | 2022-05-27 08:48:14 -0700 |
---|---|---|
committer | Anton Tananaev <anton@traccar.org> | 2022-05-27 08:48:14 -0700 |
commit | 8f7387f026c8b983f8896626c1db689e23e148b9 (patch) | |
tree | ee08cdbf1db0abcac8df1e9b718debf6f3976a2d /modern/src/map/core/Map.js | |
parent | 8e0fa926ee03a025ad284b06280132f55be22e28 (diff) | |
download | trackermap-web-8f7387f026c8b983f8896626c1db689e23e148b9.tar.gz trackermap-web-8f7387f026c8b983f8896626c1db689e23e148b9.tar.bz2 trackermap-web-8f7387f026c8b983f8896626c1db689e23e148b9.zip |
Preload map images once
Diffstat (limited to 'modern/src/map/core/Map.js')
-rw-r--r-- | modern/src/map/core/Map.js | 22 |
1 files changed, 5 insertions, 17 deletions
diff --git a/modern/src/map/core/Map.js b/modern/src/map/core/Map.js index cd7b8988..1e7fa76b 100644 --- a/modern/src/map/core/Map.js +++ b/modern/src/map/core/Map.js @@ -6,15 +6,13 @@ import React, { } from 'react'; import { useSelector } from 'react-redux'; import { SwitcherControl } from '../switcher/switcher'; -import deviceCategories from '../../common/util/deviceCategories'; -import { prepareIcon, loadImage } from './mapUtil'; import { styleCarto, styleCustom, styleLocationIq, styleMapbox, styleMapTiler, styleOsm, } from './mapStyles'; import { useAttributePreference } from '../../common/util/preferences'; -import palette from '../../common/theme/palette'; import { useTranslation } from '../../common/components/LocalizationProvider'; import usePersistedState, { savePersistedState } from '../../common/util/usePersistedState'; +import { mapImages } from './preloadImages'; const element = document.createElement('div'); element.style.width = '100%'; @@ -45,21 +43,11 @@ const updateReadyValue = (value) => { const initMap = async () => { if (ready) return; if (!map.hasImage('background')) { - const background = await loadImage('images/background.svg'); - map.addImage('background', await prepareIcon(background), { - pixelRatio: window.devicePixelRatio, - }); - await Promise.all(deviceCategories.map(async (category) => { - const results = []; - ['positive', 'negative', 'neutral'].forEach((color) => { - results.push(loadImage(`images/icon/${category}.svg`).then((icon) => { - map.addImage(`${category}-${color}`, prepareIcon(background, icon, palette.colors[color]), { - pixelRatio: window.devicePixelRatio, - }); - })); + Object.entries(mapImages).forEach(([key, value]) => { + map.addImage(key, value, { + pixelRatio: window.devicePixelRatio, }); - await Promise.all(results); - })); + }); } updateReadyValue(true); }; |