56 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /**
 | |
|  * @typedef {Object.<string, L.Marker>} MarkerLookup
 | |
|  * A lookup table of markers keyed by 'lat lng' (no groupings)
 | |
|  */
 | |
| 
 | |
| /**
 | |
|  * @typedef {Object.<string, L.LayerGroup>} 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: {},
 | |
|         reuse: {},
 | |
|     },
 | |
|     layers: {
 | |
|         sites: {},
 | |
|         notConserved: {},
 | |
|         findings: {},
 | |
|         prehistoric: {},
 | |
|         underwater: {},
 | |
|         reuse: {},
 | |
|     },
 | |
|     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]}`];
 | |
| }
 |