From 9d31bb852d6a7f1f1404dc09c739cda9256887ed Mon Sep 17 00:00:00 2001 From: yhy0217 Date: Wed, 15 Feb 2023 09:23:21 -0500 Subject: [PATCH 1/3] allow missing el for zoomlevel when it isn't required by tref --- src/mapml/layers/MapMLLayer.js | 7 ++++--- src/mapml/layers/TemplatedTileLayer.js | 9 +++++++-- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/mapml/layers/MapMLLayer.js b/src/mapml/layers/MapMLLayer.js index c1e198204..610ab58c9 100644 --- a/src/mapml/layers/MapMLLayer.js +++ b/src/mapml/layers/MapMLLayer.js @@ -886,7 +886,8 @@ export var MapMLLayer = L.Layer.extend({ } for (var i=0;i< tlist.length;i++) { - var t = tlist[i], template = t.getAttribute('tref'); + var t = tlist[i], template = t.getAttribute('tref'); + t.zoomInput = zoomInput; if(!template){ template = BLANK_TT_TREF; let blankInputs = mapml.querySelectorAll('map-input'); @@ -909,9 +910,9 @@ export var MapMLLayer = L.Layer.extend({ var varName = v[1], inp = serverExtent.querySelector('map-input[name='+varName+'],map-select[name='+varName+']'); if (inp) { - + if ((inp.hasAttribute("type") && inp.getAttribute("type")==="location") && - (!inp.hasAttribute("min" || !inp.hasAttribute("max"))) && + (!inp.hasAttribute("min") || !inp.hasAttribute("max")) && (inp.hasAttribute("axis") && !["i","j"].includes(inp.getAttribute("axis").toLowerCase()))){ zoomInput.setAttribute("value", extentFallback.zoom); diff --git a/src/mapml/layers/TemplatedTileLayer.js b/src/mapml/layers/TemplatedTileLayer.js index 98c945f02..c1102565d 100644 --- a/src/mapml/layers/TemplatedTileLayer.js +++ b/src/mapml/layers/TemplatedTileLayer.js @@ -153,10 +153,15 @@ export var TemplatedTileLayer = L.TileLayer.extend({ !this._template.tilematrix.bounds[coords.z].contains(coords)) { return ''; } - var obj = {}; + var obj = {}, + linkEl = this._template.linkEl, + zoomInput = linkEl.zoomInput; obj[this._template.tilematrix.col.name] = coords.x; obj[this._template.tilematrix.row.name] = coords.y; - obj[this._template.zoom.name] = this._getZoomForUrl(); + if (zoomInput && (linkEl.hasAttribute('tref') && + linkEl.getAttribute('tref').includes(`{${zoomInput.getAttribute('name')}}`))) { + obj[this._template.zoom.name] = this._getZoomForUrl(); + } obj[this._template.pcrs.easting.left] = this._tileMatrixToPCRSPosition(coords, 'top-left').x; obj[this._template.pcrs.easting.right] = this._tileMatrixToPCRSPosition(coords, 'top-right').x; obj[this._template.pcrs.northing.top] = this._tileMatrixToPCRSPosition(coords, 'top-left').y; From 6f0c664b1ba360fd408dc27aaddd874ef8133792 Mon Sep 17 00:00:00 2001 From: yhy0217 Date: Wed, 15 Feb 2023 12:32:42 -0500 Subject: [PATCH 2/3] continue modifying codes, add a test --- src/mapml/layers/MapMLLayer.js | 5 +++-- test/e2e/layers/templatedTileLayer.html | 10 ++++++++++ test/e2e/layers/templatedTileLayer.test.js | 9 +++++++++ 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/mapml/layers/MapMLLayer.js b/src/mapml/layers/MapMLLayer.js index 610ab58c9..36fafa620 100644 --- a/src/mapml/layers/MapMLLayer.js +++ b/src/mapml/layers/MapMLLayer.js @@ -914,8 +914,9 @@ export var MapMLLayer = L.Layer.extend({ if ((inp.hasAttribute("type") && inp.getAttribute("type")==="location") && (!inp.hasAttribute("min") || !inp.hasAttribute("max")) && (inp.hasAttribute("axis") && !["i","j"].includes(inp.getAttribute("axis").toLowerCase()))){ - zoomInput.setAttribute("value", extentFallback.zoom); - + if (zoomInput && template.includes(`{${zoomInput.getAttribute('name')}}`)) { + zoomInput.setAttribute("value", extentFallback.zoom); + } let axis = inp.getAttribute("axis"), axisBounds = M.convertPCRSBounds(extentFallback.bounds, extentFallback.zoom, projection, M.axisToCS(axis)); inp.setAttribute("min", axisBounds.min[M.axisToXY(axis)]); diff --git a/test/e2e/layers/templatedTileLayer.html b/test/e2e/layers/templatedTileLayer.html index 5dbee58b8..92965357a 100644 --- a/test/e2e/layers/templatedTileLayer.html +++ b/test/e2e/layers/templatedTileLayer.html @@ -47,6 +47,16 @@ title="Canada Base Map © Natural Resources Canada"> + + + + + + + + + + diff --git a/test/e2e/layers/templatedTileLayer.test.js b/test/e2e/layers/templatedTileLayer.test.js index 9ea98e682..c32e0bd53 100644 --- a/test/e2e/layers/templatedTileLayer.test.js +++ b/test/e2e/layers/templatedTileLayer.test.js @@ -48,6 +48,15 @@ test.describe("Playwright mapMLTemplatedTile Layer Tests", () => { ); expect(tiles).toEqual(8); }); + + test("templated tile layer work as expectation without for zoom level", async () => { + await page.hover("div > div.leaflet-control-container > div.leaflet-top.leaflet-right > div"); + const layerCount = await page.$eval( + "div > div.leaflet-control-container > div.leaflet-top.leaflet-right > div > section > div.leaflet-control-layers-overlays", + (el) => el.children.length + ); + expect(layerCount).toEqual(3); + }) }); }); \ No newline at end of file From b7d91b91f1ed217403ba4abb2d708aa29a42e0c3 Mon Sep 17 00:00:00 2001 From: yhy0217 Date: Thu, 16 Feb 2023 11:59:33 -0500 Subject: [PATCH 3/3] Add comment --- test/e2e/layers/templatedTileLayer.test.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/test/e2e/layers/templatedTileLayer.test.js b/test/e2e/layers/templatedTileLayer.test.js index c32e0bd53..2417fd33c 100644 --- a/test/e2e/layers/templatedTileLayer.test.js +++ b/test/e2e/layers/templatedTileLayer.test.js @@ -49,14 +49,15 @@ test.describe("Playwright mapMLTemplatedTile Layer Tests", () => { expect(tiles).toEqual(8); }); - test("templated tile layer work as expectation without for zoom level", async () => { + test("Templated tile layer works without for zoom level", async () => { + // tests fix for https://github.com/Maps4HTML/Web-Map-Custom-Element/issues/669 await page.hover("div > div.leaflet-control-container > div.leaflet-top.leaflet-right > div"); const layerCount = await page.$eval( "div > div.leaflet-control-container > div.leaflet-top.leaflet-right > div > section > div.leaflet-control-layers-overlays", (el) => el.children.length ); expect(layerCount).toEqual(3); - }) + }); }); }); \ No newline at end of file