aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Tananaev <anton@traccar.org>2022-06-12 07:56:31 -0700
committerAnton Tananaev <anton@traccar.org>2022-06-12 07:56:31 -0700
commit29433f9dea1aad1611ccc2a02b93aeb4eb1d0912 (patch)
treef55e80307194951a3c7ee844a46665a573878045
parent672d7828afefa07faca7954dfd55b683ae7a68fc (diff)
downloadtrackermap-web-29433f9dea1aad1611ccc2a02b93aeb4eb1d0912.tar.gz
trackermap-web-29433f9dea1aad1611ccc2a02b93aeb4eb1d0912.tar.bz2
trackermap-web-29433f9dea1aad1611ccc2a02b93aeb4eb1d0912.zip
Add TomTom map
-rw-r--r--modern/src/map/core/useMapStyles.js8
-rw-r--r--modern/src/map/overlay/useMapOverlays.js14
-rw-r--r--web/l10n/en.json2
3 files changed, 19 insertions, 5 deletions
diff --git a/modern/src/map/core/useMapStyles.js b/modern/src/map/core/useMapStyles.js
index 013772b3..963ffead 100644
--- a/modern/src/map/core/useMapStyles.js
+++ b/modern/src/map/core/useMapStyles.js
@@ -60,6 +60,7 @@ export default () => {
const mapTilerKey = useAttributePreference('mapTilerKey');
const locationIqKey = useAttributePreference('locationIqKey');
const bingMapsKey = useAttributePreference('bingMapsKey');
+ const tomTomKey = useAttributePreference('tomTomKey');
const customMapUrl = useSelector((state) => state.session.server?.mapUrl);
return [
@@ -152,6 +153,13 @@ export default () => {
attribute: 'bingMapsKey',
},
{
+ id: 'tomTomBasic',
+ title: t('mapTomTomBasic'),
+ uri: `https://api.tomtom.com/map/1/style/20.0.0-8/basic_main.json?key=${tomTomKey}`,
+ available: !!tomTomKey,
+ attribute: 'tomTomKey',
+ },
+ {
id: 'custom',
title: t('mapCustom'),
uri: styleCustom(customMapUrl),
diff --git a/modern/src/map/overlay/useMapOverlays.js b/modern/src/map/overlay/useMapOverlays.js
index 1a917ba2..94baab3e 100644
--- a/modern/src/map/overlay/useMapOverlays.js
+++ b/modern/src/map/overlay/useMapOverlays.js
@@ -8,6 +8,10 @@ const sourceCustom = (urls) => ({
tileSize: 256,
});
+const sourceOpenWeather = (style, key) => sourceCustom([
+ `https://tile.openweathermap.org/map/${style}/{z}/{x}/{y}.png?appid=${key}`,
+]);
+
export default () => {
const t = useTranslation();
@@ -24,35 +28,35 @@ export default () => {
{
id: 'openWeatherClouds',
title: t('mapOpenWeatherClouds'),
- source: sourceCustom([`https://tile.openweathermap.org/map/clouds_new/{z}/{x}/{y}.png?appid=${openWeatherKey}`]),
+ source: sourceOpenWeather('clouds_new', 'openWeatherKey'),
available: !!openWeatherKey,
attribute: 'openWeatherKey',
},
{
id: 'openWeatherPrecipitation',
title: t('mapOpenWeatherPrecipitation'),
- source: sourceCustom([`https://tile.openweathermap.org/map/precipitation_new/{z}/{x}/{y}.png?appid=${openWeatherKey}`]),
+ source: sourceOpenWeather('precipitation_new', 'openWeatherKey'),
available: !!openWeatherKey,
attribute: 'openWeatherKey',
},
{
id: 'openWeatherPressure',
title: t('mapOpenWeatherPressure'),
- source: sourceCustom([`https://tile.openweathermap.org/map/pressure_new/{z}/{x}/{y}.png?appid=${openWeatherKey}`]),
+ source: sourceOpenWeather('pressure_new', 'openWeatherKey'),
available: !!openWeatherKey,
attribute: 'openWeatherKey',
},
{
id: 'openWeatherWind',
title: t('mapOpenWeatherWind'),
- source: sourceCustom([`https://tile.openweathermap.org/map/wind_new/{z}/{x}/{y}.png?appid=${openWeatherKey}`]),
+ source: sourceOpenWeather('wind_new', 'openWeatherKey'),
available: !!openWeatherKey,
attribute: 'openWeatherKey',
},
{
id: 'openWeatherTemperature',
title: t('mapOpenWeatherTemperature'),
- source: sourceCustom([`https://tile.openweathermap.org/map/temp_new/{z}/{x}/{y}.png?appid=${openWeatherKey}`]),
+ source: sourceOpenWeather('temp_new', 'openWeatherKey'),
available: !!openWeatherKey,
attribute: 'openWeatherKey',
},
diff --git a/web/l10n/en.json b/web/l10n/en.json
index f452ed0e..dc1aff32 100644
--- a/web/l10n/en.json
+++ b/web/l10n/en.json
@@ -287,6 +287,8 @@
"mapLocationIqEarth": "LocationIQ Earth",
"mapLocationIqHybrid": "LocationIQ Hybrid",
"mapLocationIqKey": "LocationIQ Access Token",
+ "mapTomTomBasic": "TomTom Basic",
+ "mapTomTomKey": "TomTom API Key",
"mapShapePolygon": "Polygon",
"mapShapeCircle": "Circle",
"mapShapePolyline": "Polyline",