Add custom marker icon images

This commit is contained in:
Emanuel Mutschlechner
2020-01-06 19:05:16 +01:00
parent 4c9f08f229
commit 0650921c2f
18 changed files with 3676 additions and 2916 deletions

29
resources/js/index.js vendored
View File

@@ -7,6 +7,7 @@ import mapkit from './services/mapkit';
import parser from './utils/parser';
import {isDefined, logError} from './utils/helper';
import './utils/customEventPolyfill';
const createMap = (element, createMap, createMarker) => {
if (!isDefined(element)) {
@@ -24,9 +25,12 @@ const createMap = (element, createMap, createMarker) => {
return;
}
mapData.markers.forEach(markerData => {
createMarker(map, markerData);
})
const markers = mapData.markers.map(markerData => createMarker(map, markerData));
return {
map,
markers,
};
};
const createMapService = service => {
@@ -36,8 +40,23 @@ const createMapService = service => {
service.createMarker,
);
const selector = `[data-map-${service.NAME}]`;
const elements = document.querySelectorAll(selector) || [];
elements.forEach(createMapService);
const elements = Array.prototype.slice.call(document.querySelectorAll(selector) || []);
elements.forEach(element => {
const data = createMapService(element);
dispatchEvent(service.NAME, element, data);
});
};
const dispatchEvent = (serviceName, element, data) => {
const event = new CustomEvent('LaravelMapInitialized', {
detail: {
element: element,
map: data.map,
markers: data.markers || [],
service: serviceName,
},
});
window.dispatchEvent(event);
};
window.onGoogleMapsReady = () => createMapService(google);