From a023999bec33e1e6b532a57bdfe98eab2a9042fd Mon Sep 17 00:00:00 2001 From: Sam Date: Wed, 20 Nov 2019 09:08:09 +0800 Subject: [PATCH 1/2] Featured parsed inside elements dont --- L.KML.js | 43 ++++++++++++++++++++++++------------------- 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/L.KML.js b/L.KML.js index 49acd87..840e461 100644 --- a/L.KML.js +++ b/L.KML.js @@ -209,7 +209,9 @@ L.Util.extend(L.KML, { for (h in multi) { el = place.getElementsByTagName(multi[h]); for (i = 0; i < el.length; i++) { - return this.parsePlacemark(el[i], xml, style, opts); + var layer = this.parsePlacemark(el[i], xml, style, opts); + this.addPlacePopup(place, layer); + return layer; } } @@ -233,27 +235,30 @@ L.Util.extend(L.KML, { layer = new L.FeatureGroup(layers); } - var name, descr = ''; - el = place.getElementsByTagName('name'); - if (el.length && el[0].childNodes.length) { - name = el[0].childNodes[0].nodeValue; - } - el = place.getElementsByTagName('description'); - for (i = 0; i < el.length; i++) { - for (j = 0; j < el[i].childNodes.length; j++) { - descr = descr + el[i].childNodes[j].nodeValue; - } - } - - if (name) { - layer.on('add', function () { - layer.bindPopup('

' + name + '

' + descr, { className: 'kml-popup'}); - }); - } - + this.addPlacePopup(place, layer); return layer; }, + addPlacePopup(place, layer) { + var i, j, name, descr = ''; + el = place.getElementsByTagName('name'); + if (el.length && el[0].childNodes.length) { + name = el[0].childNodes[0].nodeValue; + } + el = place.getElementsByTagName('description'); + for (i = 0; i < el.length; i++) { + for (j = 0; j < el[i].childNodes.length; j++) { + descr = descr + el[i].childNodes[j].nodeValue; + } + } + + if (name) { + layer.on('add', function () { + layer.bindPopup('

' + name + '

' + descr, { className: 'kml-popup'}); + }); + } + }, + parseCoords: function (xml) { var el = xml.getElementsByTagName('coordinates'); return this._read_coords(el[0]); From 0c4f2bf76f4a377bf585e5d9799791b64f51fa24 Mon Sep 17 00:00:00 2001 From: Sam Date: Wed, 20 Nov 2019 10:28:02 +0800 Subject: [PATCH 2/2] Do not wait for features to be added to the map to bind the popup. --- L.KML.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/L.KML.js b/L.KML.js index 840e461..7115a3e 100644 --- a/L.KML.js +++ b/L.KML.js @@ -253,9 +253,7 @@ L.Util.extend(L.KML, { } if (name) { - layer.on('add', function () { - layer.bindPopup('

' + name + '

' + descr, { className: 'kml-popup'}); - }); + layer.bindPopup('

' + name + '

' + descr, { className: 'kml-popup'}); } },