/** * @typedef {Object.} MarkerLookup * A lookup table of markers keyed by 'lat lng' (no groupings) */ /** * @typedef {Object.} LayerGroupLookup * A lookup table of Leaflet layer groups by category */ /** * @typedef {Object} GisStateType * @property {L.Map|null} map * @property {MarkerLookup} markers * @property {LayerGroupLookup} layers * @property {Object|null} bibliography * @property {String|null} apiUrl * @property {Object} cartography */ /** @type {GisStateType} */ export const GisState = { map: null, markers: { sites: {}, notConserved: {}, findings: {}, prehistoric: {}, underwater: {}, }, layers: { sites: {}, notConserved: {}, findings: {}, prehistoric: {}, underwater: {}, }, bibliography: null, apiUrl : null, cartography : { historic: [], cadastral: null, } } /** * @param {array} coords - ['lat', 'lng'] * @param {string} group * @returns {L.Marker|undefined} */ export function getMarkerByCoords(coords, group) { return GisState.markers[group][`${coords[0]} ${coords[1]}`]; }