Cast to numbers for literals
There are times when we parse from XML without a schema (e.g. KML). In these cases, features attributes will always be strings. We can cast to number when creating literals from symbolizers and then assert `!isNaN` instead of asserting that they are numbers before.
This commit is contained in:
@@ -64,9 +64,8 @@ ol.style.Fill.prototype.createLiteral = function(featureOrType) {
|
||||
goog.asserts.assertString(
|
||||
color, 'color must be a string');
|
||||
|
||||
var opacity = ol.expr.evaluateFeature(this.opacity_, feature);
|
||||
goog.asserts.assertNumber(
|
||||
opacity, 'color must be a number');
|
||||
var opacity = Number(ol.expr.evaluateFeature(this.opacity_, feature));
|
||||
goog.asserts.assert(!isNaN(opacity), 'opacity must be a number');
|
||||
|
||||
literal = new ol.style.PolygonLiteral({
|
||||
fillColor: color,
|
||||
|
||||
@@ -90,21 +90,21 @@ ol.style.Icon.prototype.createLiteral = function(featureOrType) {
|
||||
|
||||
var width;
|
||||
if (!goog.isNull(this.width_)) {
|
||||
width = ol.expr.evaluateFeature(this.width_, feature);
|
||||
goog.asserts.assertNumber(width, 'width must be a number');
|
||||
width = Number(ol.expr.evaluateFeature(this.width_, feature));
|
||||
goog.asserts.assert(!isNaN(width), 'width must be a number');
|
||||
}
|
||||
|
||||
var height;
|
||||
if (!goog.isNull(this.height_)) {
|
||||
height = ol.expr.evaluateFeature(this.height_, feature);
|
||||
height = Number(ol.expr.evaluateFeature(this.height_, feature));
|
||||
goog.asserts.assertNumber(height, 'height must be a number');
|
||||
}
|
||||
|
||||
var opacity = ol.expr.evaluateFeature(this.opacity_, feature);
|
||||
goog.asserts.assertNumber(opacity, 'opacity must be a number');
|
||||
var opacity = Number(ol.expr.evaluateFeature(this.opacity_, feature));
|
||||
goog.asserts.assert(!isNaN(opacity), 'opacity must be a number');
|
||||
|
||||
var rotation = ol.expr.evaluateFeature(this.rotation_, feature);
|
||||
goog.asserts.assertNumber(rotation, 'rotation must be a number');
|
||||
var rotation = Number(ol.expr.evaluateFeature(this.rotation_, feature));
|
||||
goog.asserts.assert(!isNaN(rotation), 'rotation must be a number');
|
||||
|
||||
literal = new ol.style.IconLiteral({
|
||||
url: url,
|
||||
|
||||
@@ -73,17 +73,17 @@ ol.style.Shape.prototype.createLiteral = function(featureOrType) {
|
||||
var literal = null;
|
||||
if (type === ol.geom.GeometryType.POINT ||
|
||||
type === ol.geom.GeometryType.MULTIPOINT) {
|
||||
var size = ol.expr.evaluateFeature(this.size_, feature);
|
||||
goog.asserts.assertNumber(size, 'size must be a number');
|
||||
var size = Number(ol.expr.evaluateFeature(this.size_, feature));
|
||||
goog.asserts.assert(!isNaN(size), 'size must be a number');
|
||||
|
||||
var fillColor, fillOpacity;
|
||||
if (!goog.isNull(this.fill_)) {
|
||||
fillColor = ol.expr.evaluateFeature(this.fill_.getColor(), feature);
|
||||
goog.asserts.assertString(
|
||||
fillColor, 'fillColor must be a string');
|
||||
fillOpacity = ol.expr.evaluateFeature(this.fill_.getOpacity(), feature);
|
||||
goog.asserts.assertNumber(
|
||||
fillOpacity, 'fillOpacity must be a number');
|
||||
fillOpacity = Number(ol.expr.evaluateFeature(
|
||||
this.fill_.getOpacity(), feature));
|
||||
goog.asserts.assert(!isNaN(fillOpacity), 'fillOpacity must be a number');
|
||||
}
|
||||
|
||||
var strokeColor, strokeOpacity, strokeWidth;
|
||||
@@ -91,13 +91,13 @@ ol.style.Shape.prototype.createLiteral = function(featureOrType) {
|
||||
strokeColor = ol.expr.evaluateFeature(this.stroke_.getColor(), feature);
|
||||
goog.asserts.assertString(
|
||||
strokeColor, 'strokeColor must be a string');
|
||||
strokeOpacity = ol.expr.evaluateFeature(this.stroke_.getOpacity(),
|
||||
feature);
|
||||
goog.asserts.assertNumber(
|
||||
strokeOpacity, 'strokeOpacity must be a number');
|
||||
strokeWidth = ol.expr.evaluateFeature(this.stroke_.getWidth(), feature);
|
||||
goog.asserts.assertNumber(
|
||||
strokeWidth, 'strokeWidth must be a number');
|
||||
strokeOpacity = Number(ol.expr.evaluateFeature(
|
||||
this.stroke_.getOpacity(), feature));
|
||||
goog.asserts.assert(!isNaN(strokeOpacity),
|
||||
'strokeOpacity must be a number');
|
||||
strokeWidth = Number(ol.expr.evaluateFeature(
|
||||
this.stroke_.getWidth(), feature));
|
||||
goog.asserts.assert(!isNaN(strokeWidth), 'strokeWidth must be a number');
|
||||
}
|
||||
|
||||
literal = new ol.style.ShapeLiteral({
|
||||
|
||||
@@ -71,13 +71,13 @@ ol.style.Stroke.prototype.createLiteral = function(featureOrType) {
|
||||
this.color_, feature);
|
||||
goog.asserts.assertString(color, 'color must be a string');
|
||||
|
||||
var opacity = ol.expr.evaluateFeature(
|
||||
this.opacity_, feature);
|
||||
goog.asserts.assertNumber(opacity, 'opacity must be a number');
|
||||
var opacity = Number(ol.expr.evaluateFeature(
|
||||
this.opacity_, feature));
|
||||
goog.asserts.assert(!isNaN(opacity), 'opacity must be a number');
|
||||
|
||||
var width = ol.expr.evaluateFeature(
|
||||
this.width_, feature);
|
||||
goog.asserts.assertNumber(width, 'width must be a number');
|
||||
var width = Number(ol.expr.evaluateFeature(
|
||||
this.width_, feature));
|
||||
goog.asserts.assert(!isNaN(width), 'width must be a number');
|
||||
|
||||
var literal = null;
|
||||
if (type === ol.geom.GeometryType.LINESTRING ||
|
||||
|
||||
@@ -84,14 +84,14 @@ ol.style.Text.prototype.createLiteral = function(featureOrType) {
|
||||
var fontFamily = ol.expr.evaluateFeature(this.fontFamily_, feature);
|
||||
goog.asserts.assertString(fontFamily, 'fontFamily must be a string');
|
||||
|
||||
var fontSize = ol.expr.evaluateFeature(this.fontSize_, feature);
|
||||
goog.asserts.assertNumber(fontSize, 'fontSize must be a number');
|
||||
var fontSize = Number(ol.expr.evaluateFeature(this.fontSize_, feature));
|
||||
goog.asserts.assert(!isNaN(fontSize), 'fontSize must be a number');
|
||||
|
||||
var text = ol.expr.evaluateFeature(this.text_, feature);
|
||||
goog.asserts.assertString(text, 'text must be a string');
|
||||
|
||||
var opacity = ol.expr.evaluateFeature(this.opacity_, feature);
|
||||
goog.asserts.assertNumber(opacity, 'opacity must be a number');
|
||||
var opacity = Number(ol.expr.evaluateFeature(this.opacity_, feature));
|
||||
goog.asserts.assert(!isNaN(opacity), 'opacity must be a number');
|
||||
|
||||
return new ol.style.TextLiteral({
|
||||
color: color,
|
||||
|
||||
Reference in New Issue
Block a user