From 1432d563f93c4a117af33b3fa567321761a71fe7 Mon Sep 17 00:00:00 2001 From: Ladislav Zima Date: Sat, 10 Jul 2021 01:04:27 +0200 Subject: [PATCH 1/3] Added parameter to disable the popup with a zone name for a clicked zone --- L.KML.js | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/L.KML.js b/L.KML.js index 45dd563..b5ad99f 100644 --- a/L.KML.js +++ b/L.KML.js @@ -39,13 +39,13 @@ L.Util.extend(L.KML, { var layers = [], l; for (var i = 0; i < el.length; i++) { if (!this._check_folder(el[i])) { continue; } - l = this.parseFolder(el[i], style); + l = this.parseFolder(el[i], style, kmlOptions); if (l) { layers.push(l); } } el = xml.getElementsByTagName('Placemark'); for (var j = 0; j < el.length; j++) { if (!this._check_folder(el[j])) { continue; } - l = this.parsePlacemark(el[j], xml, style); + l = this.parsePlacemark(el[j], xml, style, undefined, kmlOptions); if (l) { layers.push(l); } } el = xml.getElementsByTagName('GroundOverlay'); @@ -166,18 +166,18 @@ L.Util.extend(L.KML, { return; }, - parseFolder: function (xml, style) { + parseFolder: function (xml, style, kmlOptions) { var el, layers = [], l; el = xml.getElementsByTagName('Folder'); for (var i = 0; i < el.length; i++) { if (!this._check_folder(el[i], xml)) { continue; } - l = this.parseFolder(el[i], style); + l = this.parseFolder(el[i], style, kmlOptions); if (l) { layers.push(l); } } el = xml.getElementsByTagName('Placemark'); for (var j = 0; j < el.length; j++) { if (!this._check_folder(el[j], xml)) { continue; } - l = this.parsePlacemark(el[j], xml, style); + l = this.parsePlacemark(el[j], xml, style, undefined, kmlOptions); if (l) { layers.push(l); } } el = xml.getElementsByTagName('GroundOverlay'); @@ -199,7 +199,7 @@ L.Util.extend(L.KML, { return l; }, - parsePlacemark: function (place, xml, style, options) { + parsePlacemark: function (place, xml, style, options, kmlOptions) { var h, i, j, k, el, il, opts = options || {}; el = place.getElementsByTagName('styleUrl'); @@ -224,10 +224,11 @@ L.Util.extend(L.KML, { for (h in multi) { el = place.getElementsByTagName(multi[h]); for (i = 0; i < el.length; i++) { - var layer = this.parsePlacemark(el[i], xml, style, opts); + var layer = this.parsePlacemark(el[i], xml, style, opts, kmlOptions); if (layer === undefined) continue; - this.addPlacePopup(place, layer); + if (!kmlOptions || (typeof kmlOptions === "object" && !kmlOptions.disablePlacePopup)) + this.addPlacePopup(place, layer); return layer; } } @@ -252,7 +253,8 @@ L.Util.extend(L.KML, { layer = new L.FeatureGroup(layers); } - this.addPlacePopup(place, layer); + if (!kmlOptions || (typeof kmlOptions === "object" && !kmlOptions.disablePlacePopup)) + this.addPlacePopup(place, layer); return layer; }, @@ -476,4 +478,4 @@ L.RotatedImageOverlay = L.ImageOverlay.extend({ getBounds: function () { return this._bounds; } -}); +}); \ No newline at end of file From f245b39d72f24d252c6bcd733ff3a2055cbf0687 Mon Sep 17 00:00:00 2001 From: Ladislav Zima Date: Sat, 10 Jul 2021 01:42:04 +0200 Subject: [PATCH 2/3] Added zone name in KML layer's data to be able to read the clicked zone's name programatically --- L.KML.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/L.KML.js b/L.KML.js index b5ad99f..34ad77e 100644 --- a/L.KML.js +++ b/L.KML.js @@ -217,6 +217,10 @@ L.Util.extend(L.KML, { for (k in inlineStyle) { opts[k] = inlineStyle[k]; } + + el = place.getElementsByTagName('name'); + if (el.length) + opts['name'] = el[0].textContent; } } From 7f7f1b2e616d0e4b85fece0edfd69e86786fb38b Mon Sep 17 00:00:00 2001 From: Ladislav Zima Date: Sat, 10 Jul 2021 04:02:26 +0200 Subject: [PATCH 3/3] Renamed field storing the clicked zone's name in the KML layer (collided with layer's name in the event's data) --- L.KML.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/L.KML.js b/L.KML.js index 34ad77e..5fbcc29 100644 --- a/L.KML.js +++ b/L.KML.js @@ -220,7 +220,7 @@ L.Util.extend(L.KML, { el = place.getElementsByTagName('name'); if (el.length) - opts['name'] = el[0].textContent; + opts['zoneName'] = el[0].textContent; } }