Merge pull request #2477 from fredj/2475
Add new olx.format.KMLOptions#extractStyles property
This commit is contained in:
@@ -8,6 +8,7 @@ goog.require('ol.source.Stamen');
|
|||||||
|
|
||||||
var vector = new ol.layer.Heatmap({
|
var vector = new ol.layer.Heatmap({
|
||||||
source: new ol.source.KML({
|
source: new ol.source.KML({
|
||||||
|
extractStyles: false,
|
||||||
projection: 'EPSG:3857',
|
projection: 'EPSG:3857',
|
||||||
url: 'data/kml/2012_Earthquakes_Mag5.kml'
|
url: 'data/kml/2012_Earthquakes_Mag5.kml'
|
||||||
}),
|
}),
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ var styleFunction = function(feature, resolution) {
|
|||||||
|
|
||||||
var vector = new ol.layer.Vector({
|
var vector = new ol.layer.Vector({
|
||||||
source: new ol.source.KML({
|
source: new ol.source.KML({
|
||||||
|
extractStyles: false,
|
||||||
projection: 'EPSG:3857',
|
projection: 'EPSG:3857',
|
||||||
url: 'data/kml/timezones.kml'
|
url: 'data/kml/timezones.kml'
|
||||||
}),
|
}),
|
||||||
|
|||||||
@@ -1221,12 +1221,20 @@ olx.format.IGCOptions.prototype.altitudeMode;
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @typedef {{defaultStyle: (Array.<ol.style.Style>|undefined)}}
|
* @typedef {{extractStyles: (boolean|undefined),
|
||||||
|
* defaultStyle: (Array.<ol.style.Style>|undefined)}}
|
||||||
* @api
|
* @api
|
||||||
*/
|
*/
|
||||||
olx.format.KMLOptions;
|
olx.format.KMLOptions;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Extract styles from the KML. Default is `true`.
|
||||||
|
* @type {boolean|undefined}
|
||||||
|
*/
|
||||||
|
olx.format.KMLOptions.prototype.extractStyles;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Default style. The default default style is the same as Google Earth.
|
* Default style. The default default style is the same as Google Earth.
|
||||||
* @type {Array.<ol.style.Style>|undefined}
|
* @type {Array.<ol.style.Style>|undefined}
|
||||||
@@ -3310,6 +3318,7 @@ olx.source.MapGuideOptions.prototype.params;
|
|||||||
* @typedef {{attributions: (Array.<ol.Attribution>|undefined),
|
* @typedef {{attributions: (Array.<ol.Attribution>|undefined),
|
||||||
* defaultStyle: (Array.<ol.style.Style>|undefined),
|
* defaultStyle: (Array.<ol.style.Style>|undefined),
|
||||||
* doc: (Document|undefined),
|
* doc: (Document|undefined),
|
||||||
|
* extractStyles: (boolean|undefined),
|
||||||
* logo: (string|olx.LogoOptions|undefined),
|
* logo: (string|olx.LogoOptions|undefined),
|
||||||
* node: (Node|undefined),
|
* node: (Node|undefined),
|
||||||
* projection: ol.proj.ProjectionLike,
|
* projection: ol.proj.ProjectionLike,
|
||||||
@@ -3342,6 +3351,13 @@ olx.source.KMLOptions.prototype.defaultStyle;
|
|||||||
olx.source.KMLOptions.prototype.doc;
|
olx.source.KMLOptions.prototype.doc;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Extract styles from the KML document. Default is `true`.
|
||||||
|
* @type {boolean|undefined}
|
||||||
|
*/
|
||||||
|
olx.source.KMLOptions.prototype.extractStyles;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Logo.
|
* Logo.
|
||||||
* @type{string|olx.LogoOptions|undefined}
|
* @type{string|olx.LogoOptions|undefined}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
// FIXME why does node.getAttribute return an unknown type?
|
// FIXME why does node.getAttribute return an unknown type?
|
||||||
// FIXME text
|
// FIXME text
|
||||||
// FIXME serialize arbitrary feature properties
|
// FIXME serialize arbitrary feature properties
|
||||||
|
// FIXME don't parse style if extractStyles is false
|
||||||
|
|
||||||
goog.provide('ol.format.KML');
|
goog.provide('ol.format.KML');
|
||||||
|
|
||||||
@@ -98,6 +99,13 @@ ol.format.KML = function(opt_options) {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @private
|
||||||
|
* @type {boolean}
|
||||||
|
*/
|
||||||
|
this.extractStyles_ = goog.isDef(options.extractStyles) ?
|
||||||
|
options.extractStyles : true;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @private
|
* @private
|
||||||
* @type {Object.<string, (Array.<ol.style.Style>|string)>}
|
* @type {Object.<string, (Array.<ol.style.Style>|string)>}
|
||||||
@@ -1427,7 +1435,9 @@ ol.format.KML.prototype.readPlacemark_ = function(node, objectStack) {
|
|||||||
feature.setId(id);
|
feature.setId(id);
|
||||||
}
|
}
|
||||||
feature.setProperties(object);
|
feature.setProperties(object);
|
||||||
|
if (this.extractStyles_) {
|
||||||
feature.setStyle(this.featureStyleFunction_);
|
feature.setStyle(this.featureStyleFunction_);
|
||||||
|
}
|
||||||
return feature;
|
return feature;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ ol.source.KML = function(opt_options) {
|
|||||||
attributions: options.attributions,
|
attributions: options.attributions,
|
||||||
doc: options.doc,
|
doc: options.doc,
|
||||||
format: new ol.format.KML({
|
format: new ol.format.KML({
|
||||||
|
extractStyles: options.extractStyles,
|
||||||
defaultStyle: options.defaultStyle
|
defaultStyle: options.defaultStyle
|
||||||
}),
|
}),
|
||||||
logo: options.logo,
|
logo: options.logo,
|
||||||
|
|||||||
Reference in New Issue
Block a user