X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.app.geo.js%2Fsrc%2Forg.argeo.app.geo.js%2FMapPart.js;h=5711233a629767c5647405cbcf40e11b32a2c750;hb=455df52702432311c1825f366e01d01abd0319e2;hp=ef19f58143143de9cf0ea5d25a50ccf0a7173df5;hpb=9728ee7133bc787a1796670b7622d0cc4c62b5e0;p=gpl%2Fargeo-suite.git diff --git a/org.argeo.app.geo.js/src/org.argeo.app.geo.js/MapPart.js b/org.argeo.app.geo.js/src/org.argeo.app.geo.js/MapPart.js index ef19f58..5711233 100644 --- a/org.argeo.app.geo.js/src/org.argeo.app.geo.js/MapPart.js +++ b/org.argeo.app.geo.js/src/org.argeo.app.geo.js/MapPart.js @@ -5,6 +5,18 @@ /** Abstract base class for displaying a map. */ export default class MapPart { + /** The name of the map, will also be the name of the variable */ + #mapName; + + constructor(mapName) { + this.#mapName = mapName; + this.createMapDiv(this.#mapName); + } + + // + // ABSTRACT METHODS + // + /** Zoom the map to the given value. */ setZoom(zoom) { throw new Error("Abstract method"); @@ -23,4 +35,38 @@ export default class MapPart { addUrlLayer(url, format) { throw new Error("Abstract method"); } + + // + // EXTENSIONS + // + loadMapModule(url) { + var script = document.createElement("script"); + script.src = url; + document.head.appendChild(script); + // import(url) + // .then(module => { }) + // .catch((error) => 'An error occurred while loading the component'); + } + + // + // ACCESSORS + // + getMapName() { + return this.#mapName; + } + + // + // HTML + // + createMapDiv(id) { + var mapDiv = document.createElement('div'); + mapDiv.id = id; + mapDiv.className = this.getMapDivCssClass(); + mapDiv.style.cssText = 'width: 100%; height: 100vh;'; + document.body.appendChild(mapDiv); + } + + getMapDivCssClass() { + throw new Error("Abstract method"); + } }