import { TomTomConfig } from '@tomtom-org/maps-sdk/core';
import {
HillshadeModule,
POIsModule,
StandardStyleID,
standardStyleIDs,
TomTomMap,
TrafficFlowModule,
TrafficIncidentsModule,
} from '@tomtom-org/maps-sdk/map';
import './style.css';
import { API_KEY } from './config';
TomTomConfig.instance.put({ apiKey: API_KEY, language: 'en-GB' });
(async () => {
const map = new TomTomMap({
container: 'sdk-map',
zoom: 14,
minZoom: 2,
center: [-0.12621, 51.50394],
});
const trafficIncidentsModule = await TrafficIncidentsModule.get(map);
const trafficFlowModule = await TrafficFlowModule.get(map);
document.querySelector('#sdk-example-toggleTraffic')?.addEventListener('click', () => {
trafficIncidentsModule.setVisible(!trafficIncidentsModule.isVisible());
trafficFlowModule.setVisible(!trafficFlowModule.isVisible());
});
document
.querySelector('#sdk-example-toggleIncidents')
?.addEventListener('click', () => trafficIncidentsModule.setVisible(!trafficIncidentsModule.isVisible()));
document
.querySelector('#sdk-example-toggleIncidentIcons')
?.addEventListener('click', () =>
trafficIncidentsModule.setIconsVisible(!trafficIncidentsModule.anyIconLayersVisible()),
);
document
.querySelector('#sdk-example-toggleFlow')
?.addEventListener('click', () => trafficFlowModule.setVisible(!trafficFlowModule.isVisible()));
const poisModule = await POIsModule.get(map);
document
.querySelector('#sdk-example-togglePOIs')
?.addEventListener('click', () => poisModule.setVisible(!poisModule.isVisible()));
const hillshadeModule = await HillshadeModule.get(map);
document
.querySelector('#sdk-example-toggleHillshade')
?.addEventListener('click', () => hillshadeModule.setVisible(!hillshadeModule.isVisible()));
const stylesSelector = document.querySelector('#sdk-example-mapStyles') as HTMLSelectElement;
standardStyleIDs.forEach((id) => stylesSelector.add(new Option(id)));
stylesSelector.addEventListener('change', (event) =>
map.setStyle((event.target as HTMLOptionElement).value as StandardStyleID),
);
})();