async: true
},
- initialize: function(kml, options) {
+ initialize: function (kml, options) {
L.Util.setOptions(this, options);
this._kml = kml;
this._layers = {};
}
},
- loadXML: function(url, cb, options, async) {
+ loadXML: function (url, cb, options, async) {
if (async === undefined) async = this.options.async;
if (options === undefined) options = this.options;
setTimeout(function () { xdr.send(); }, 0);
} else {
req.open('GET', url, async);
+ req.setRequestHeader('Accept', 'application/vnd.google-earth.kml+xml');
try {
req.overrideMimeType('text/xml'); // unsupported by IE
} catch (e) { }
}
},
- addKML: function(url, options, async) {
+ addKML: function (url, options, async) {
var _this = this;
- var cb = function(gpx, options) { _this._addKML(gpx, options); };
+ var cb = function (kml) { _this._addKML(kml); };
this.loadXML(url, cb, options, async);
},
- _addKML: function(xml, options) {
+ _addKML: function (xml) {
var layers = L.KML.parseKML(xml);
if (!layers || !layers.length) return;
for (var i = 0; i < layers.length; i++) {
return !e || e === folder;
},
- parseStyles: function(xml) {
+ parseStyles: function (xml) {
var styles = {};
var sl = xml.getElementsByTagName('Style');
for (var i=0, len=sl.length; i<len; i++) {
parseStyle: function (xml) {
var style = {}, poptions = {}, ioptions = {}, el, id;
- var attributes = { color: true, width: true, Icon: true, href: true, hotSpot: true };
+ var attributes = {color: true, width: true, Icon: true, href: true, hotSpot: true};
- function _parse(xml) {
+ function _parse (xml) {
var options = {};
for (var i = 0; i < xml.childNodes.length; i++) {
var e = xml.childNodes[i];
return new L.FeatureGroup(layers);
},
- parsePlacemark: function (place, xml, style) {
- var h, i, j, k, el, il, options = {};
-
- var multi = ['MultiGeometry', 'MultiTrack', 'gx:MultiTrack'];
- for (h in multi) {
- el = place.getElementsByTagName(multi[h]);
- for (i = 0; i < el.length; i++) {
- return this.parsePlacemark(el[i], xml, style);
- }
- }
+ parsePlacemark: function (place, xml, style, options) {
+ var h, i, j, k, el, il, opts = options || {};
el = place.getElementsByTagName('styleUrl');
for (i = 0; i < el.length; i++) {
var url = el[i].childNodes[0].nodeValue;
for (var a in style[url]) {
- options[a] = style[url][a];
+ opts[a] = style[url][a];
}
}
var inlineStyle = this.parseStyle(place);
if (inlineStyle) {
for (k in inlineStyle) {
- options[k] = inlineStyle[k];
+ opts[k] = inlineStyle[k];
}
}
}
+
+ var multi = ['MultiGeometry', 'MultiTrack', 'gx:MultiTrack'];
+ 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 layers = [];
var tag = parse[j];
el = place.getElementsByTagName(tag);
for (i = 0; i < el.length; i++) {
- var l = this['parse' + tag.replace(/gx:/, '')](el[i], xml, options);
+ var l = this['parse' + tag.replace(/gx:/, '')](el[i], xml, opts);
if (l) { layers.push(l); }
}
}
}
if (name) {
- layer.on('add', function(e) {
+ layer.on('add', function () {
layer.bindPopup('<h2>' + name + '</h2>' + descr);
});
}
]
);
var attributes = {Icon: true, href: true, color: true};
- function _parse(xml) {
+ function _parse (xml) {
var options = {}, ioptions = {};
for (var i = 0; i < xml.childNodes.length; i++) {
var e = xml.childNodes[i];
if (L.DomUtil.TRANSFORM) {
// use the CSS transform rule if available
this._image.style[L.DomUtil.TRANSFORM] += ' rotate(' + this.options.angle + 'deg)';
- } else if(L.Browser.ie) {
+ } else if (L.Browser.ie) {
// fallback for IE6, IE7, IE8
var rad = this.options.angle * (Math.PI / 180),
costheta = Math.cos(rad),
costheta + ', M12=' + (-sintheta) + ', M21=' + sintheta + ', M22=' + costheta + ')';
}
},
- getBounds: function() {
+ getBounds: function () {
return this._bounds;
}
});