42 lines
980 B
JavaScript
Vendored
42 lines
980 B
JavaScript
Vendored
import google from './types/google';
|
|
import osm from './types/osm';
|
|
import bing from './types/bing';
|
|
import mapkit from './types/mapkit';
|
|
|
|
import parser from './utils/parser';
|
|
import {isDefined} from './utils/helper';
|
|
|
|
const createMap = (element, createMap, createMarker) => {
|
|
if (!isDefined(element)) {
|
|
return;
|
|
}
|
|
const mapData = parser.map(element);
|
|
const map = createMap(element, mapData);
|
|
|
|
mapData.markers.forEach(markerData => {
|
|
if (!isDefined(map)) {
|
|
return;
|
|
}
|
|
createMarker(map, markerData);
|
|
})
|
|
};
|
|
|
|
const createMapType = map => {
|
|
const createMapType = element => createMap(
|
|
element,
|
|
map.createMap,
|
|
map.createMarker,
|
|
);
|
|
const selector = `[data-map-type="${map.type}"]`;
|
|
const elements = document.querySelectorAll(selector) || [];
|
|
elements.forEach(createMapType);
|
|
};
|
|
|
|
window.onGoogleMapsReady = () => createMapType(google);
|
|
|
|
(() => createMapType(osm))();
|
|
|
|
(() => createMapType(bing))();
|
|
|
|
(() => createMapType(mapkit))();
|