Simplify hit detection code
This commit is contained in:
@@ -191,7 +191,7 @@ ol.FeatureOverlay.prototype.handleMapPostCompose_ = function(event) {
|
|||||||
ii = styles.length;
|
ii = styles.length;
|
||||||
for (i = 0; i < ii; ++i) {
|
for (i = 0; i < ii; ++i) {
|
||||||
ol.renderer.vector.renderFeature(replayGroup, feature, styles[i],
|
ol.renderer.vector.renderFeature(replayGroup, feature, styles[i],
|
||||||
squaredTolerance, feature, this.handleImageChange_, this);
|
squaredTolerance, this.handleImageChange_, this);
|
||||||
}
|
}
|
||||||
}, this);
|
}, this);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -428,11 +428,11 @@ ol.render.canvas.Immediate.prototype.drawAsync = function(zIndex, callback) {
|
|||||||
* the current fill and stroke styles.
|
* the current fill and stroke styles.
|
||||||
*
|
*
|
||||||
* @param {ol.geom.Circle} circleGeometry Circle geometry.
|
* @param {ol.geom.Circle} circleGeometry Circle geometry.
|
||||||
* @param {Object} data Opaque data object,
|
* @param {ol.Feature} feature Feature,
|
||||||
* @api
|
* @api
|
||||||
*/
|
*/
|
||||||
ol.render.canvas.Immediate.prototype.drawCircleGeometry =
|
ol.render.canvas.Immediate.prototype.drawCircleGeometry =
|
||||||
function(circleGeometry, data) {
|
function(circleGeometry, feature) {
|
||||||
if (!ol.extent.intersects(this.extent_, circleGeometry.getExtent())) {
|
if (!ol.extent.intersects(this.extent_, circleGeometry.getExtent())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -504,10 +504,10 @@ ol.render.canvas.Immediate.prototype.drawFeature = function(feature, style) {
|
|||||||
*
|
*
|
||||||
* @param {ol.geom.GeometryCollection} geometryCollectionGeometry Geometry
|
* @param {ol.geom.GeometryCollection} geometryCollectionGeometry Geometry
|
||||||
* collection.
|
* collection.
|
||||||
* @param {Object} data Opaque data object.
|
* @param {ol.Feature} feature Feature.
|
||||||
*/
|
*/
|
||||||
ol.render.canvas.Immediate.prototype.drawGeometryCollectionGeometry =
|
ol.render.canvas.Immediate.prototype.drawGeometryCollectionGeometry =
|
||||||
function(geometryCollectionGeometry, data) {
|
function(geometryCollectionGeometry, feature) {
|
||||||
var geometries = geometryCollectionGeometry.getGeometriesArray();
|
var geometries = geometryCollectionGeometry.getGeometriesArray();
|
||||||
var i, ii;
|
var i, ii;
|
||||||
for (i = 0, ii = geometries.length; i < ii; ++i) {
|
for (i = 0, ii = geometries.length; i < ii; ++i) {
|
||||||
@@ -515,7 +515,7 @@ ol.render.canvas.Immediate.prototype.drawGeometryCollectionGeometry =
|
|||||||
var geometryRenderer =
|
var geometryRenderer =
|
||||||
ol.render.canvas.Immediate.GEOMETRY_RENDERERS_[geometry.getType()];
|
ol.render.canvas.Immediate.GEOMETRY_RENDERERS_[geometry.getType()];
|
||||||
goog.asserts.assert(goog.isDef(geometryRenderer));
|
goog.asserts.assert(goog.isDef(geometryRenderer));
|
||||||
geometryRenderer.call(this, geometry, data);
|
geometryRenderer.call(this, geometry, feature);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -525,11 +525,11 @@ ol.render.canvas.Immediate.prototype.drawGeometryCollectionGeometry =
|
|||||||
* the current style.
|
* the current style.
|
||||||
*
|
*
|
||||||
* @param {ol.geom.Point} pointGeometry Point geometry.
|
* @param {ol.geom.Point} pointGeometry Point geometry.
|
||||||
* @param {Object} data Opaque data object.
|
* @param {ol.Feature} feature Feature.
|
||||||
* @api
|
* @api
|
||||||
*/
|
*/
|
||||||
ol.render.canvas.Immediate.prototype.drawPointGeometry =
|
ol.render.canvas.Immediate.prototype.drawPointGeometry =
|
||||||
function(pointGeometry, data) {
|
function(pointGeometry, feature) {
|
||||||
var flatCoordinates = pointGeometry.getFlatCoordinates();
|
var flatCoordinates = pointGeometry.getFlatCoordinates();
|
||||||
var stride = pointGeometry.getStride();
|
var stride = pointGeometry.getStride();
|
||||||
if (!goog.isNull(this.image_)) {
|
if (!goog.isNull(this.image_)) {
|
||||||
@@ -546,11 +546,11 @@ ol.render.canvas.Immediate.prototype.drawPointGeometry =
|
|||||||
* uses the current style.
|
* uses the current style.
|
||||||
*
|
*
|
||||||
* @param {ol.geom.MultiPoint} multiPointGeometry MultiPoint geometry.
|
* @param {ol.geom.MultiPoint} multiPointGeometry MultiPoint geometry.
|
||||||
* @param {Object} data Opaque data object.
|
* @param {ol.Feature} feature Feature.
|
||||||
* @api
|
* @api
|
||||||
*/
|
*/
|
||||||
ol.render.canvas.Immediate.prototype.drawMultiPointGeometry =
|
ol.render.canvas.Immediate.prototype.drawMultiPointGeometry =
|
||||||
function(multiPointGeometry, data) {
|
function(multiPointGeometry, feature) {
|
||||||
var flatCoordinates = multiPointGeometry.getFlatCoordinates();
|
var flatCoordinates = multiPointGeometry.getFlatCoordinates();
|
||||||
var stride = multiPointGeometry.getStride();
|
var stride = multiPointGeometry.getStride();
|
||||||
if (!goog.isNull(this.image_)) {
|
if (!goog.isNull(this.image_)) {
|
||||||
@@ -567,11 +567,11 @@ ol.render.canvas.Immediate.prototype.drawMultiPointGeometry =
|
|||||||
* the current style.
|
* the current style.
|
||||||
*
|
*
|
||||||
* @param {ol.geom.LineString} lineStringGeometry Line string geometry.
|
* @param {ol.geom.LineString} lineStringGeometry Line string geometry.
|
||||||
* @param {Object} data Opaque data object.
|
* @param {ol.Feature} feature Feature.
|
||||||
* @api
|
* @api
|
||||||
*/
|
*/
|
||||||
ol.render.canvas.Immediate.prototype.drawLineStringGeometry =
|
ol.render.canvas.Immediate.prototype.drawLineStringGeometry =
|
||||||
function(lineStringGeometry, data) {
|
function(lineStringGeometry, feature) {
|
||||||
if (!ol.extent.intersects(this.extent_, lineStringGeometry.getExtent())) {
|
if (!ol.extent.intersects(this.extent_, lineStringGeometry.getExtent())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -597,11 +597,11 @@ ol.render.canvas.Immediate.prototype.drawLineStringGeometry =
|
|||||||
*
|
*
|
||||||
* @param {ol.geom.MultiLineString} multiLineStringGeometry
|
* @param {ol.geom.MultiLineString} multiLineStringGeometry
|
||||||
* MultiLineString geometry.
|
* MultiLineString geometry.
|
||||||
* @param {Object} data Opaque data object.
|
* @param {ol.Feature} feature Feature.
|
||||||
* @api
|
* @api
|
||||||
*/
|
*/
|
||||||
ol.render.canvas.Immediate.prototype.drawMultiLineStringGeometry =
|
ol.render.canvas.Immediate.prototype.drawMultiLineStringGeometry =
|
||||||
function(multiLineStringGeometry, data) {
|
function(multiLineStringGeometry, feature) {
|
||||||
var geometryExtent = multiLineStringGeometry.getExtent();
|
var geometryExtent = multiLineStringGeometry.getExtent();
|
||||||
if (!ol.extent.intersects(this.extent_, geometryExtent)) {
|
if (!ol.extent.intersects(this.extent_, geometryExtent)) {
|
||||||
return;
|
return;
|
||||||
@@ -633,11 +633,11 @@ ol.render.canvas.Immediate.prototype.drawMultiLineStringGeometry =
|
|||||||
* the current style.
|
* the current style.
|
||||||
*
|
*
|
||||||
* @param {ol.geom.Polygon} polygonGeometry Polygon geometry.
|
* @param {ol.geom.Polygon} polygonGeometry Polygon geometry.
|
||||||
* @param {Object} data Opaque data object.
|
* @param {ol.Feature} feature Feature.
|
||||||
* @api
|
* @api
|
||||||
*/
|
*/
|
||||||
ol.render.canvas.Immediate.prototype.drawPolygonGeometry =
|
ol.render.canvas.Immediate.prototype.drawPolygonGeometry =
|
||||||
function(polygonGeometry, data) {
|
function(polygonGeometry, feature) {
|
||||||
if (!ol.extent.intersects(this.extent_, polygonGeometry.getExtent())) {
|
if (!ol.extent.intersects(this.extent_, polygonGeometry.getExtent())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -670,11 +670,11 @@ ol.render.canvas.Immediate.prototype.drawPolygonGeometry =
|
|||||||
* Render MultiPolygon geometry into the canvas. Rendering is immediate and
|
* Render MultiPolygon geometry into the canvas. Rendering is immediate and
|
||||||
* uses the current style.
|
* uses the current style.
|
||||||
* @param {ol.geom.MultiPolygon} multiPolygonGeometry MultiPolygon geometry.
|
* @param {ol.geom.MultiPolygon} multiPolygonGeometry MultiPolygon geometry.
|
||||||
* @param {Object} data Opaque data object.
|
* @param {ol.Feature} feature Feature.
|
||||||
* @api
|
* @api
|
||||||
*/
|
*/
|
||||||
ol.render.canvas.Immediate.prototype.drawMultiPolygonGeometry =
|
ol.render.canvas.Immediate.prototype.drawMultiPolygonGeometry =
|
||||||
function(multiPolygonGeometry, data) {
|
function(multiPolygonGeometry, feature) {
|
||||||
if (!ol.extent.intersects(this.extent_, multiPolygonGeometry.getExtent())) {
|
if (!ol.extent.intersects(this.extent_, multiPolygonGeometry.getExtent())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -195,14 +195,14 @@ ol.render.canvas.Replay.prototype.appendFlatCoordinates =
|
|||||||
/**
|
/**
|
||||||
* @protected
|
* @protected
|
||||||
* @param {ol.geom.Geometry} geometry Geometry.
|
* @param {ol.geom.Geometry} geometry Geometry.
|
||||||
* @param {Object} data Opaque data object.
|
* @param {ol.Feature} feature Feature.
|
||||||
*/
|
*/
|
||||||
ol.render.canvas.Replay.prototype.beginGeometry = function(geometry, data) {
|
ol.render.canvas.Replay.prototype.beginGeometry = function(geometry, feature) {
|
||||||
this.beginGeometryInstruction1_ =
|
this.beginGeometryInstruction1_ =
|
||||||
[ol.render.canvas.Instruction.BEGIN_GEOMETRY, geometry, data, 0];
|
[ol.render.canvas.Instruction.BEGIN_GEOMETRY, feature, 0];
|
||||||
this.instructions.push(this.beginGeometryInstruction1_);
|
this.instructions.push(this.beginGeometryInstruction1_);
|
||||||
this.beginGeometryInstruction2_ =
|
this.beginGeometryInstruction2_ =
|
||||||
[ol.render.canvas.Instruction.BEGIN_GEOMETRY, geometry, data, 0];
|
[ol.render.canvas.Instruction.BEGIN_GEOMETRY, feature, 0];
|
||||||
this.hitDetectionInstructions.push(this.beginGeometryInstruction2_);
|
this.hitDetectionInstructions.push(this.beginGeometryInstruction2_);
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -215,14 +215,13 @@ ol.render.canvas.Replay.prototype.beginGeometry = function(geometry, data) {
|
|||||||
* @param {number} viewRotation View rotation.
|
* @param {number} viewRotation View rotation.
|
||||||
* @param {Object} skippedFeaturesHash Ids of features to skip.
|
* @param {Object} skippedFeaturesHash Ids of features to skip.
|
||||||
* @param {Array.<*>} instructions Instructions array.
|
* @param {Array.<*>} instructions Instructions array.
|
||||||
* @param {function(ol.geom.Geometry, Object): T|undefined} geometryCallback
|
* @param {function(ol.Feature): T|undefined} featureCallback Feature callback.
|
||||||
* Geometry callback.
|
|
||||||
* @return {T|undefined} Callback result.
|
* @return {T|undefined} Callback result.
|
||||||
* @template T
|
* @template T
|
||||||
*/
|
*/
|
||||||
ol.render.canvas.Replay.prototype.replay_ = function(
|
ol.render.canvas.Replay.prototype.replay_ = function(
|
||||||
context, pixelRatio, transform, viewRotation, skippedFeaturesHash,
|
context, pixelRatio, transform, viewRotation, skippedFeaturesHash,
|
||||||
instructions, geometryCallback) {
|
instructions, featureCallback) {
|
||||||
/** @type {Array.<number>} */
|
/** @type {Array.<number>} */
|
||||||
var pixelCoordinates;
|
var pixelCoordinates;
|
||||||
if (ol.vec.Mat4.equals2D(transform, this.renderedTransform_)) {
|
if (ol.vec.Mat4.equals2D(transform, this.renderedTransform_)) {
|
||||||
@@ -242,16 +241,15 @@ ol.render.canvas.Replay.prototype.replay_ = function(
|
|||||||
while (i < ii) {
|
while (i < ii) {
|
||||||
var instruction = instructions[i];
|
var instruction = instructions[i];
|
||||||
var type = /** @type {ol.render.canvas.Instruction} */ (instruction[0]);
|
var type = /** @type {ol.render.canvas.Instruction} */ (instruction[0]);
|
||||||
var data, fill, geometry, stroke, text, x, y;
|
var feature, fill, stroke, text, x, y;
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case ol.render.canvas.Instruction.BEGIN_GEOMETRY:
|
case ol.render.canvas.Instruction.BEGIN_GEOMETRY:
|
||||||
geometry = /** @type {ol.geom.Geometry} */ (instruction[1]);
|
feature = /** @type {ol.Feature} */ (instruction[1]);
|
||||||
data = /** @type {Object} */ (instruction[2]);
|
var featureUid = goog.getUid(feature).toString();
|
||||||
var dataUid = goog.getUid(data).toString();
|
if (!goog.isDef(goog.object.get(skippedFeaturesHash, featureUid))) {
|
||||||
if (!goog.isDef(goog.object.get(skippedFeaturesHash, dataUid))) {
|
|
||||||
++i;
|
++i;
|
||||||
} else {
|
} else {
|
||||||
i = /** @type {number} */ (instruction[3]);
|
i = /** @type {number} */ (instruction[2]);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ol.render.canvas.Instruction.BEGIN_PATH:
|
case ol.render.canvas.Instruction.BEGIN_PATH:
|
||||||
@@ -381,10 +379,9 @@ ol.render.canvas.Replay.prototype.replay_ = function(
|
|||||||
++i;
|
++i;
|
||||||
break;
|
break;
|
||||||
case ol.render.canvas.Instruction.END_GEOMETRY:
|
case ol.render.canvas.Instruction.END_GEOMETRY:
|
||||||
if (goog.isDef(geometryCallback)) {
|
if (goog.isDef(featureCallback)) {
|
||||||
geometry = /** @type {ol.geom.Geometry} */ (instruction[1]);
|
feature = /** @type {ol.Feature} */ (instruction[1]);
|
||||||
data = /** @type {Object} */ (instruction[2]);
|
var result = featureCallback(feature);
|
||||||
var result = geometryCallback(geometry, data);
|
|
||||||
if (result) {
|
if (result) {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -475,17 +472,16 @@ ol.render.canvas.Replay.prototype.replay = function(
|
|||||||
* @param {goog.vec.Mat4.Number} transform Transform.
|
* @param {goog.vec.Mat4.Number} transform Transform.
|
||||||
* @param {number} viewRotation View rotation.
|
* @param {number} viewRotation View rotation.
|
||||||
* @param {Object} skippedFeaturesHash Ids of features to skip
|
* @param {Object} skippedFeaturesHash Ids of features to skip
|
||||||
* @param {function(ol.geom.Geometry, Object): T=} opt_geometryCallback
|
* @param {function(ol.Feature): T=} opt_featureCallback Feature callback.
|
||||||
* Geometry callback.
|
|
||||||
* @return {T|undefined} Callback result.
|
* @return {T|undefined} Callback result.
|
||||||
* @template T
|
* @template T
|
||||||
*/
|
*/
|
||||||
ol.render.canvas.Replay.prototype.replayHitDetection = function(
|
ol.render.canvas.Replay.prototype.replayHitDetection = function(
|
||||||
context, transform, viewRotation, skippedFeaturesHash,
|
context, transform, viewRotation, skippedFeaturesHash,
|
||||||
opt_geometryCallback) {
|
opt_featureCallback) {
|
||||||
var instructions = this.hitDetectionInstructions;
|
var instructions = this.hitDetectionInstructions;
|
||||||
return this.replay_(context, 1, transform, viewRotation,
|
return this.replay_(context, 1, transform, viewRotation,
|
||||||
skippedFeaturesHash, instructions, opt_geometryCallback);
|
skippedFeaturesHash, instructions, opt_featureCallback);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -510,7 +506,7 @@ ol.render.canvas.Replay.prototype.reverseHitDetectionInstructions_ =
|
|||||||
goog.asserts.assert(begin == -1);
|
goog.asserts.assert(begin == -1);
|
||||||
begin = i;
|
begin = i;
|
||||||
} else if (type == ol.render.canvas.Instruction.BEGIN_GEOMETRY) {
|
} else if (type == ol.render.canvas.Instruction.BEGIN_GEOMETRY) {
|
||||||
instruction[3] = i;
|
instruction[2] = i;
|
||||||
goog.asserts.assert(begin >= 0);
|
goog.asserts.assert(begin >= 0);
|
||||||
ol.array.reverseSubArray(this.hitDetectionInstructions, begin, i);
|
ol.array.reverseSubArray(this.hitDetectionInstructions, begin, i);
|
||||||
begin = -1;
|
begin = -1;
|
||||||
@@ -590,17 +586,17 @@ ol.render.canvas.Replay.prototype.drawText = goog.abstractMethod;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {ol.geom.Geometry} geometry Geometry.
|
* @param {ol.geom.Geometry} geometry Geometry.
|
||||||
* @param {Object} data Opaque data object.
|
* @param {ol.Feature} feature Feature.
|
||||||
*/
|
*/
|
||||||
ol.render.canvas.Replay.prototype.endGeometry = function(geometry, data) {
|
ol.render.canvas.Replay.prototype.endGeometry = function(geometry, feature) {
|
||||||
goog.asserts.assert(!goog.isNull(this.beginGeometryInstruction1_));
|
goog.asserts.assert(!goog.isNull(this.beginGeometryInstruction1_));
|
||||||
this.beginGeometryInstruction1_[3] = this.instructions.length;
|
this.beginGeometryInstruction1_[2] = this.instructions.length;
|
||||||
this.beginGeometryInstruction1_ = null;
|
this.beginGeometryInstruction1_ = null;
|
||||||
goog.asserts.assert(!goog.isNull(this.beginGeometryInstruction2_));
|
goog.asserts.assert(!goog.isNull(this.beginGeometryInstruction2_));
|
||||||
this.beginGeometryInstruction2_[3] = this.hitDetectionInstructions.length;
|
this.beginGeometryInstruction2_[2] = this.hitDetectionInstructions.length;
|
||||||
this.beginGeometryInstruction2_ = null;
|
this.beginGeometryInstruction2_ = null;
|
||||||
var endGeometryInstruction =
|
var endGeometryInstruction =
|
||||||
[ol.render.canvas.Instruction.END_GEOMETRY, geometry, data];
|
[ol.render.canvas.Instruction.END_GEOMETRY, feature];
|
||||||
this.instructions.push(endGeometryInstruction);
|
this.instructions.push(endGeometryInstruction);
|
||||||
this.hitDetectionInstructions.push(endGeometryInstruction);
|
this.hitDetectionInstructions.push(endGeometryInstruction);
|
||||||
};
|
};
|
||||||
@@ -765,7 +761,7 @@ ol.render.canvas.ImageReplay.prototype.drawCoordinates_ =
|
|||||||
* @inheritDoc
|
* @inheritDoc
|
||||||
*/
|
*/
|
||||||
ol.render.canvas.ImageReplay.prototype.drawPointGeometry =
|
ol.render.canvas.ImageReplay.prototype.drawPointGeometry =
|
||||||
function(pointGeometry, data) {
|
function(pointGeometry, feature) {
|
||||||
if (goog.isNull(this.image_)) {
|
if (goog.isNull(this.image_)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -780,7 +776,7 @@ ol.render.canvas.ImageReplay.prototype.drawPointGeometry =
|
|||||||
goog.asserts.assert(goog.isDef(this.scale_));
|
goog.asserts.assert(goog.isDef(this.scale_));
|
||||||
goog.asserts.assert(goog.isDef(this.width_));
|
goog.asserts.assert(goog.isDef(this.width_));
|
||||||
ol.extent.extend(this.extent_, pointGeometry.getExtent());
|
ol.extent.extend(this.extent_, pointGeometry.getExtent());
|
||||||
this.beginGeometry(pointGeometry, data);
|
this.beginGeometry(pointGeometry, feature);
|
||||||
var flatCoordinates = pointGeometry.getFlatCoordinates();
|
var flatCoordinates = pointGeometry.getFlatCoordinates();
|
||||||
var stride = pointGeometry.getStride();
|
var stride = pointGeometry.getStride();
|
||||||
var myBegin = this.coordinates.length;
|
var myBegin = this.coordinates.length;
|
||||||
@@ -801,7 +797,7 @@ ol.render.canvas.ImageReplay.prototype.drawPointGeometry =
|
|||||||
this.originX_, this.originY_, this.rotateWithView_, this.rotation_,
|
this.originX_, this.originY_, this.rotateWithView_, this.rotation_,
|
||||||
this.scale_, this.snapToPixel_, this.width_
|
this.scale_, this.snapToPixel_, this.width_
|
||||||
]);
|
]);
|
||||||
this.endGeometry(pointGeometry, data);
|
this.endGeometry(pointGeometry, feature);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -809,7 +805,7 @@ ol.render.canvas.ImageReplay.prototype.drawPointGeometry =
|
|||||||
* @inheritDoc
|
* @inheritDoc
|
||||||
*/
|
*/
|
||||||
ol.render.canvas.ImageReplay.prototype.drawMultiPointGeometry =
|
ol.render.canvas.ImageReplay.prototype.drawMultiPointGeometry =
|
||||||
function(multiPointGeometry, data) {
|
function(multiPointGeometry, feature) {
|
||||||
if (goog.isNull(this.image_)) {
|
if (goog.isNull(this.image_)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -824,7 +820,7 @@ ol.render.canvas.ImageReplay.prototype.drawMultiPointGeometry =
|
|||||||
goog.asserts.assert(goog.isDef(this.scale_));
|
goog.asserts.assert(goog.isDef(this.scale_));
|
||||||
goog.asserts.assert(goog.isDef(this.width_));
|
goog.asserts.assert(goog.isDef(this.width_));
|
||||||
ol.extent.extend(this.extent_, multiPointGeometry.getExtent());
|
ol.extent.extend(this.extent_, multiPointGeometry.getExtent());
|
||||||
this.beginGeometry(multiPointGeometry, data);
|
this.beginGeometry(multiPointGeometry, feature);
|
||||||
var flatCoordinates = multiPointGeometry.getFlatCoordinates();
|
var flatCoordinates = multiPointGeometry.getFlatCoordinates();
|
||||||
var stride = multiPointGeometry.getStride();
|
var stride = multiPointGeometry.getStride();
|
||||||
var myBegin = this.coordinates.length;
|
var myBegin = this.coordinates.length;
|
||||||
@@ -845,7 +841,7 @@ ol.render.canvas.ImageReplay.prototype.drawMultiPointGeometry =
|
|||||||
this.originX_, this.originY_, this.rotateWithView_, this.rotation_,
|
this.originX_, this.originY_, this.rotateWithView_, this.rotation_,
|
||||||
this.scale_, this.snapToPixel_, this.width_
|
this.scale_, this.snapToPixel_, this.width_
|
||||||
]);
|
]);
|
||||||
this.endGeometry(multiPointGeometry, data);
|
this.endGeometry(multiPointGeometry, feature);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -1032,7 +1028,7 @@ ol.render.canvas.LineStringReplay.prototype.setStrokeStyle_ = function() {
|
|||||||
* @inheritDoc
|
* @inheritDoc
|
||||||
*/
|
*/
|
||||||
ol.render.canvas.LineStringReplay.prototype.drawLineStringGeometry =
|
ol.render.canvas.LineStringReplay.prototype.drawLineStringGeometry =
|
||||||
function(lineStringGeometry, data) {
|
function(lineStringGeometry, feature) {
|
||||||
var state = this.state_;
|
var state = this.state_;
|
||||||
goog.asserts.assert(!goog.isNull(state));
|
goog.asserts.assert(!goog.isNull(state));
|
||||||
var strokeStyle = state.strokeStyle;
|
var strokeStyle = state.strokeStyle;
|
||||||
@@ -1042,7 +1038,7 @@ ol.render.canvas.LineStringReplay.prototype.drawLineStringGeometry =
|
|||||||
}
|
}
|
||||||
ol.extent.extend(this.extent_, lineStringGeometry.getExtent());
|
ol.extent.extend(this.extent_, lineStringGeometry.getExtent());
|
||||||
this.setStrokeStyle_();
|
this.setStrokeStyle_();
|
||||||
this.beginGeometry(lineStringGeometry, data);
|
this.beginGeometry(lineStringGeometry, feature);
|
||||||
this.hitDetectionInstructions.push(
|
this.hitDetectionInstructions.push(
|
||||||
[ol.render.canvas.Instruction.SET_STROKE_STYLE,
|
[ol.render.canvas.Instruction.SET_STROKE_STYLE,
|
||||||
state.strokeStyle, state.lineWidth, state.lineCap, state.lineJoin,
|
state.strokeStyle, state.lineWidth, state.lineCap, state.lineJoin,
|
||||||
@@ -1053,7 +1049,7 @@ ol.render.canvas.LineStringReplay.prototype.drawLineStringGeometry =
|
|||||||
this.drawFlatCoordinates_(
|
this.drawFlatCoordinates_(
|
||||||
flatCoordinates, 0, flatCoordinates.length, stride);
|
flatCoordinates, 0, flatCoordinates.length, stride);
|
||||||
this.hitDetectionInstructions.push([ol.render.canvas.Instruction.STROKE]);
|
this.hitDetectionInstructions.push([ol.render.canvas.Instruction.STROKE]);
|
||||||
this.endGeometry(lineStringGeometry, data);
|
this.endGeometry(lineStringGeometry, feature);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -1061,7 +1057,7 @@ ol.render.canvas.LineStringReplay.prototype.drawLineStringGeometry =
|
|||||||
* @inheritDoc
|
* @inheritDoc
|
||||||
*/
|
*/
|
||||||
ol.render.canvas.LineStringReplay.prototype.drawMultiLineStringGeometry =
|
ol.render.canvas.LineStringReplay.prototype.drawMultiLineStringGeometry =
|
||||||
function(multiLineStringGeometry, data) {
|
function(multiLineStringGeometry, feature) {
|
||||||
var state = this.state_;
|
var state = this.state_;
|
||||||
goog.asserts.assert(!goog.isNull(state));
|
goog.asserts.assert(!goog.isNull(state));
|
||||||
var strokeStyle = state.strokeStyle;
|
var strokeStyle = state.strokeStyle;
|
||||||
@@ -1071,7 +1067,7 @@ ol.render.canvas.LineStringReplay.prototype.drawMultiLineStringGeometry =
|
|||||||
}
|
}
|
||||||
ol.extent.extend(this.extent_, multiLineStringGeometry.getExtent());
|
ol.extent.extend(this.extent_, multiLineStringGeometry.getExtent());
|
||||||
this.setStrokeStyle_();
|
this.setStrokeStyle_();
|
||||||
this.beginGeometry(multiLineStringGeometry, data);
|
this.beginGeometry(multiLineStringGeometry, feature);
|
||||||
this.hitDetectionInstructions.push(
|
this.hitDetectionInstructions.push(
|
||||||
[ol.render.canvas.Instruction.SET_STROKE_STYLE,
|
[ol.render.canvas.Instruction.SET_STROKE_STYLE,
|
||||||
state.strokeStyle, state.lineWidth, state.lineCap, state.lineJoin,
|
state.strokeStyle, state.lineWidth, state.lineCap, state.lineJoin,
|
||||||
@@ -1087,7 +1083,7 @@ ol.render.canvas.LineStringReplay.prototype.drawMultiLineStringGeometry =
|
|||||||
flatCoordinates, offset, ends[i], stride);
|
flatCoordinates, offset, ends[i], stride);
|
||||||
}
|
}
|
||||||
this.hitDetectionInstructions.push([ol.render.canvas.Instruction.STROKE]);
|
this.hitDetectionInstructions.push([ol.render.canvas.Instruction.STROKE]);
|
||||||
this.endGeometry(multiLineStringGeometry, data);
|
this.endGeometry(multiLineStringGeometry, feature);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -1236,7 +1232,7 @@ ol.render.canvas.PolygonReplay.prototype.drawFlatCoordinatess_ =
|
|||||||
* @inheritDoc
|
* @inheritDoc
|
||||||
*/
|
*/
|
||||||
ol.render.canvas.PolygonReplay.prototype.drawCircleGeometry =
|
ol.render.canvas.PolygonReplay.prototype.drawCircleGeometry =
|
||||||
function(circleGeometry, data) {
|
function(circleGeometry, feature) {
|
||||||
var state = this.state_;
|
var state = this.state_;
|
||||||
goog.asserts.assert(!goog.isNull(state));
|
goog.asserts.assert(!goog.isNull(state));
|
||||||
var fillStyle = state.fillStyle;
|
var fillStyle = state.fillStyle;
|
||||||
@@ -1249,7 +1245,7 @@ ol.render.canvas.PolygonReplay.prototype.drawCircleGeometry =
|
|||||||
}
|
}
|
||||||
ol.extent.extend(this.extent_, circleGeometry.getExtent());
|
ol.extent.extend(this.extent_, circleGeometry.getExtent());
|
||||||
this.setFillStrokeStyles_();
|
this.setFillStrokeStyles_();
|
||||||
this.beginGeometry(circleGeometry, data);
|
this.beginGeometry(circleGeometry, feature);
|
||||||
// always fill the circle for hit detection
|
// always fill the circle for hit detection
|
||||||
this.hitDetectionInstructions.push(
|
this.hitDetectionInstructions.push(
|
||||||
[ol.render.canvas.Instruction.SET_FILL_STYLE,
|
[ol.render.canvas.Instruction.SET_FILL_STYLE,
|
||||||
@@ -1280,7 +1276,7 @@ ol.render.canvas.PolygonReplay.prototype.drawCircleGeometry =
|
|||||||
this.instructions.push(strokeInstruction);
|
this.instructions.push(strokeInstruction);
|
||||||
this.hitDetectionInstructions.push(strokeInstruction);
|
this.hitDetectionInstructions.push(strokeInstruction);
|
||||||
}
|
}
|
||||||
this.endGeometry(circleGeometry, data);
|
this.endGeometry(circleGeometry, feature);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -1288,7 +1284,7 @@ ol.render.canvas.PolygonReplay.prototype.drawCircleGeometry =
|
|||||||
* @inheritDoc
|
* @inheritDoc
|
||||||
*/
|
*/
|
||||||
ol.render.canvas.PolygonReplay.prototype.drawPolygonGeometry =
|
ol.render.canvas.PolygonReplay.prototype.drawPolygonGeometry =
|
||||||
function(polygonGeometry, data) {
|
function(polygonGeometry, feature) {
|
||||||
var state = this.state_;
|
var state = this.state_;
|
||||||
goog.asserts.assert(!goog.isNull(state));
|
goog.asserts.assert(!goog.isNull(state));
|
||||||
var fillStyle = state.fillStyle;
|
var fillStyle = state.fillStyle;
|
||||||
@@ -1301,7 +1297,7 @@ ol.render.canvas.PolygonReplay.prototype.drawPolygonGeometry =
|
|||||||
}
|
}
|
||||||
ol.extent.extend(this.extent_, polygonGeometry.getExtent());
|
ol.extent.extend(this.extent_, polygonGeometry.getExtent());
|
||||||
this.setFillStrokeStyles_();
|
this.setFillStrokeStyles_();
|
||||||
this.beginGeometry(polygonGeometry, data);
|
this.beginGeometry(polygonGeometry, feature);
|
||||||
// always fill the polygon for hit detection
|
// always fill the polygon for hit detection
|
||||||
this.hitDetectionInstructions.push(
|
this.hitDetectionInstructions.push(
|
||||||
[ol.render.canvas.Instruction.SET_FILL_STYLE,
|
[ol.render.canvas.Instruction.SET_FILL_STYLE,
|
||||||
@@ -1316,7 +1312,7 @@ ol.render.canvas.PolygonReplay.prototype.drawPolygonGeometry =
|
|||||||
var flatCoordinates = polygonGeometry.getOrientedFlatCoordinates();
|
var flatCoordinates = polygonGeometry.getOrientedFlatCoordinates();
|
||||||
var stride = polygonGeometry.getStride();
|
var stride = polygonGeometry.getStride();
|
||||||
this.drawFlatCoordinatess_(flatCoordinates, 0, ends, stride);
|
this.drawFlatCoordinatess_(flatCoordinates, 0, ends, stride);
|
||||||
this.endGeometry(polygonGeometry, data);
|
this.endGeometry(polygonGeometry, feature);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -1324,7 +1320,7 @@ ol.render.canvas.PolygonReplay.prototype.drawPolygonGeometry =
|
|||||||
* @inheritDoc
|
* @inheritDoc
|
||||||
*/
|
*/
|
||||||
ol.render.canvas.PolygonReplay.prototype.drawMultiPolygonGeometry =
|
ol.render.canvas.PolygonReplay.prototype.drawMultiPolygonGeometry =
|
||||||
function(multiPolygonGeometry, data) {
|
function(multiPolygonGeometry, feature) {
|
||||||
var state = this.state_;
|
var state = this.state_;
|
||||||
goog.asserts.assert(!goog.isNull(state));
|
goog.asserts.assert(!goog.isNull(state));
|
||||||
var fillStyle = state.fillStyle;
|
var fillStyle = state.fillStyle;
|
||||||
@@ -1337,7 +1333,7 @@ ol.render.canvas.PolygonReplay.prototype.drawMultiPolygonGeometry =
|
|||||||
}
|
}
|
||||||
ol.extent.extend(this.extent_, multiPolygonGeometry.getExtent());
|
ol.extent.extend(this.extent_, multiPolygonGeometry.getExtent());
|
||||||
this.setFillStrokeStyles_();
|
this.setFillStrokeStyles_();
|
||||||
this.beginGeometry(multiPolygonGeometry, data);
|
this.beginGeometry(multiPolygonGeometry, feature);
|
||||||
// always fill the multi-polygon for hit detection
|
// always fill the multi-polygon for hit detection
|
||||||
this.hitDetectionInstructions.push(
|
this.hitDetectionInstructions.push(
|
||||||
[ol.render.canvas.Instruction.SET_FILL_STYLE,
|
[ol.render.canvas.Instruction.SET_FILL_STYLE,
|
||||||
@@ -1357,7 +1353,7 @@ ol.render.canvas.PolygonReplay.prototype.drawMultiPolygonGeometry =
|
|||||||
offset = this.drawFlatCoordinatess_(
|
offset = this.drawFlatCoordinatess_(
|
||||||
flatCoordinates, offset, endss[i], stride);
|
flatCoordinates, offset, endss[i], stride);
|
||||||
}
|
}
|
||||||
this.endGeometry(multiPolygonGeometry, data);
|
this.endGeometry(multiPolygonGeometry, feature);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -1573,7 +1569,7 @@ goog.inherits(ol.render.canvas.TextReplay, ol.render.canvas.Replay);
|
|||||||
* @inheritDoc
|
* @inheritDoc
|
||||||
*/
|
*/
|
||||||
ol.render.canvas.TextReplay.prototype.drawText =
|
ol.render.canvas.TextReplay.prototype.drawText =
|
||||||
function(flatCoordinates, offset, end, stride, geometry, data) {
|
function(flatCoordinates, offset, end, stride, geometry, feature) {
|
||||||
if (this.text_ === '' ||
|
if (this.text_ === '' ||
|
||||||
goog.isNull(this.textState_) ||
|
goog.isNull(this.textState_) ||
|
||||||
(goog.isNull(this.textFillState_) &&
|
(goog.isNull(this.textFillState_) &&
|
||||||
@@ -1589,7 +1585,7 @@ ol.render.canvas.TextReplay.prototype.drawText =
|
|||||||
this.setReplayStrokeState_(this.textStrokeState_);
|
this.setReplayStrokeState_(this.textStrokeState_);
|
||||||
}
|
}
|
||||||
this.setReplayTextState_(this.textState_);
|
this.setReplayTextState_(this.textState_);
|
||||||
this.beginGeometry(geometry, data);
|
this.beginGeometry(geometry, feature);
|
||||||
var myBegin = this.coordinates.length;
|
var myBegin = this.coordinates.length;
|
||||||
var myEnd =
|
var myEnd =
|
||||||
this.appendFlatCoordinates(flatCoordinates, offset, end, stride, false);
|
this.appendFlatCoordinates(flatCoordinates, offset, end, stride, false);
|
||||||
@@ -1601,7 +1597,7 @@ ol.render.canvas.TextReplay.prototype.drawText =
|
|||||||
fill, stroke];
|
fill, stroke];
|
||||||
this.instructions.push(drawTextInstruction);
|
this.instructions.push(drawTextInstruction);
|
||||||
this.hitDetectionInstructions.push(drawTextInstruction);
|
this.hitDetectionInstructions.push(drawTextInstruction);
|
||||||
this.endGeometry(geometry, data);
|
this.endGeometry(geometry, feature);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -1875,7 +1871,7 @@ ol.render.canvas.ReplayGroup.prototype.finish = function() {
|
|||||||
* @param {number} rotation Rotation.
|
* @param {number} rotation Rotation.
|
||||||
* @param {ol.Coordinate} coordinate Coordinate.
|
* @param {ol.Coordinate} coordinate Coordinate.
|
||||||
* @param {Object} skippedFeaturesHash Ids of features to skip
|
* @param {Object} skippedFeaturesHash Ids of features to skip
|
||||||
* @param {function(ol.geom.Geometry, Object): T} callback Geometry callback.
|
* @param {function(ol.Feature): T} callback Feature callback.
|
||||||
* @return {T|undefined} Callback result.
|
* @return {T|undefined} Callback result.
|
||||||
* @template T
|
* @template T
|
||||||
*/
|
*/
|
||||||
@@ -1894,14 +1890,13 @@ ol.render.canvas.ReplayGroup.prototype.forEachGeometryAtPixel = function(
|
|||||||
return this.replayHitDetection_(context, extent, transform,
|
return this.replayHitDetection_(context, extent, transform,
|
||||||
rotation, skippedFeaturesHash,
|
rotation, skippedFeaturesHash,
|
||||||
/**
|
/**
|
||||||
* @param {ol.geom.Geometry} geometry Geometry.
|
* @param {ol.Feature} feature Feature.
|
||||||
* @param {Object} data Opaque data object.
|
|
||||||
* @return {?} Callback result.
|
* @return {?} Callback result.
|
||||||
*/
|
*/
|
||||||
function(geometry, data) {
|
function(feature) {
|
||||||
var imageData = context.getImageData(0, 0, 1, 1).data;
|
var imageData = context.getImageData(0, 0, 1, 1).data;
|
||||||
if (imageData[3] > 0) {
|
if (imageData[3] > 0) {
|
||||||
var result = callback(geometry, data);
|
var result = callback(feature);
|
||||||
if (result) {
|
if (result) {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -1998,14 +1993,13 @@ ol.render.canvas.ReplayGroup.prototype.replay = function(
|
|||||||
* @param {goog.vec.Mat4.Number} transform Transform.
|
* @param {goog.vec.Mat4.Number} transform Transform.
|
||||||
* @param {number} viewRotation View rotation.
|
* @param {number} viewRotation View rotation.
|
||||||
* @param {Object} skippedFeaturesHash Ids of features to skip
|
* @param {Object} skippedFeaturesHash Ids of features to skip
|
||||||
* @param {function(ol.geom.Geometry, Object): T} geometryCallback Geometry
|
* @param {function(ol.Feature): T} featureCallback Feature callback.
|
||||||
* callback.
|
|
||||||
* @return {T|undefined} Callback result.
|
* @return {T|undefined} Callback result.
|
||||||
* @template T
|
* @template T
|
||||||
*/
|
*/
|
||||||
ol.render.canvas.ReplayGroup.prototype.replayHitDetection_ = function(
|
ol.render.canvas.ReplayGroup.prototype.replayHitDetection_ = function(
|
||||||
context, extent, transform, viewRotation, skippedFeaturesHash,
|
context, extent, transform, viewRotation, skippedFeaturesHash,
|
||||||
geometryCallback) {
|
featureCallback) {
|
||||||
/** @type {Array.<number>} */
|
/** @type {Array.<number>} */
|
||||||
var zs = goog.array.map(goog.object.getKeys(this.replaysByZIndex_), Number);
|
var zs = goog.array.map(goog.object.getKeys(this.replaysByZIndex_), Number);
|
||||||
goog.array.sort(zs, function(a, b) { return b - a; });
|
goog.array.sort(zs, function(a, b) { return b - a; });
|
||||||
@@ -2018,7 +2012,7 @@ ol.render.canvas.ReplayGroup.prototype.replayHitDetection_ = function(
|
|||||||
if (goog.isDef(replay) &&
|
if (goog.isDef(replay) &&
|
||||||
ol.extent.intersects(extent, replay.getExtent())) {
|
ol.extent.intersects(extent, replay.getExtent())) {
|
||||||
result = replay.replayHitDetection(context, transform, viewRotation,
|
result = replay.replayHitDetection(context, transform, viewRotation,
|
||||||
skippedFeaturesHash, geometryCallback);
|
skippedFeaturesHash, featureCallback);
|
||||||
if (result) {
|
if (result) {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,10 +23,10 @@ ol.render.IVectorContext.prototype.drawAsync = function(zIndex, callback) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {ol.geom.Circle} circleGeometry Circle geometry.
|
* @param {ol.geom.Circle} circleGeometry Circle geometry.
|
||||||
* @param {Object} data Opaque data object,
|
* @param {ol.Feature} feature Feature,
|
||||||
*/
|
*/
|
||||||
ol.render.IVectorContext.prototype.drawCircleGeometry =
|
ol.render.IVectorContext.prototype.drawCircleGeometry =
|
||||||
function(circleGeometry, data) {
|
function(circleGeometry, feature) {
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -41,65 +41,65 @@ ol.render.IVectorContext.prototype.drawFeature = function(feature, style) {
|
|||||||
/**
|
/**
|
||||||
* @param {ol.geom.GeometryCollection} geometryCollectionGeometry Geometry
|
* @param {ol.geom.GeometryCollection} geometryCollectionGeometry Geometry
|
||||||
* collection.
|
* collection.
|
||||||
* @param {Object} data Opaque data object.
|
* @param {ol.Feature} feature Feature.
|
||||||
*/
|
*/
|
||||||
ol.render.IVectorContext.prototype.drawGeometryCollectionGeometry =
|
ol.render.IVectorContext.prototype.drawGeometryCollectionGeometry =
|
||||||
function(geometryCollectionGeometry, data) {
|
function(geometryCollectionGeometry, feature) {
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {ol.geom.Point} pointGeometry Point geometry.
|
* @param {ol.geom.Point} pointGeometry Point geometry.
|
||||||
* @param {Object} data Opaque data object.
|
* @param {ol.Feature} feature Feature.
|
||||||
*/
|
*/
|
||||||
ol.render.IVectorContext.prototype.drawPointGeometry =
|
ol.render.IVectorContext.prototype.drawPointGeometry =
|
||||||
function(pointGeometry, data) {
|
function(pointGeometry, feature) {
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {ol.geom.LineString} lineStringGeometry Line string geometry.
|
* @param {ol.geom.LineString} lineStringGeometry Line string geometry.
|
||||||
* @param {Object} data Opaque data object.
|
* @param {ol.Feature} feature Feature.
|
||||||
*/
|
*/
|
||||||
ol.render.IVectorContext.prototype.drawLineStringGeometry =
|
ol.render.IVectorContext.prototype.drawLineStringGeometry =
|
||||||
function(lineStringGeometry, data) {
|
function(lineStringGeometry, feature) {
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {ol.geom.MultiLineString} multiLineStringGeometry
|
* @param {ol.geom.MultiLineString} multiLineStringGeometry
|
||||||
* MultiLineString geometry.
|
* MultiLineString geometry.
|
||||||
* @param {Object} data Opaque data object.
|
* @param {ol.Feature} feature Feature.
|
||||||
*/
|
*/
|
||||||
ol.render.IVectorContext.prototype.drawMultiLineStringGeometry =
|
ol.render.IVectorContext.prototype.drawMultiLineStringGeometry =
|
||||||
function(multiLineStringGeometry, data) {
|
function(multiLineStringGeometry, feature) {
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {ol.geom.MultiPoint} multiPointGeometry MultiPoint geometry.
|
* @param {ol.geom.MultiPoint} multiPointGeometry MultiPoint geometry.
|
||||||
* @param {Object} data Opaque data object.
|
* @param {ol.Feature} feature Feature.
|
||||||
*/
|
*/
|
||||||
ol.render.IVectorContext.prototype.drawMultiPointGeometry =
|
ol.render.IVectorContext.prototype.drawMultiPointGeometry =
|
||||||
function(multiPointGeometry, data) {
|
function(multiPointGeometry, feature) {
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {ol.geom.MultiPolygon} multiPolygonGeometry MultiPolygon geometry.
|
* @param {ol.geom.MultiPolygon} multiPolygonGeometry MultiPolygon geometry.
|
||||||
* @param {Object} data Opaque data object.
|
* @param {ol.Feature} feature Feature.
|
||||||
*/
|
*/
|
||||||
ol.render.IVectorContext.prototype.drawMultiPolygonGeometry =
|
ol.render.IVectorContext.prototype.drawMultiPolygonGeometry =
|
||||||
function(multiPolygonGeometry, data) {
|
function(multiPolygonGeometry, feature) {
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {ol.geom.Polygon} polygonGeometry Polygon geometry.
|
* @param {ol.geom.Polygon} polygonGeometry Polygon geometry.
|
||||||
* @param {Object} data Opaque data object.
|
* @param {ol.Feature} feature Feature.
|
||||||
*/
|
*/
|
||||||
ol.render.IVectorContext.prototype.drawPolygonGeometry =
|
ol.render.IVectorContext.prototype.drawPolygonGeometry =
|
||||||
function(polygonGeometry, data) {
|
function(polygonGeometry, feature) {
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -109,10 +109,10 @@ ol.render.IVectorContext.prototype.drawPolygonGeometry =
|
|||||||
* @param {number} end End.
|
* @param {number} end End.
|
||||||
* @param {number} stride Stride.
|
* @param {number} stride Stride.
|
||||||
* @param {ol.geom.Geometry} geometry Geometry.
|
* @param {ol.geom.Geometry} geometry Geometry.
|
||||||
* @param {Object} data Opaque data object.
|
* @param {ol.Feature} feature Feature.
|
||||||
*/
|
*/
|
||||||
ol.render.IVectorContext.prototype.drawText =
|
ol.render.IVectorContext.prototype.drawText =
|
||||||
function(flatCoordinates, offset, end, stride, geometry, data) {
|
function(flatCoordinates, offset, end, stride, geometry, feature) {
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+36
-38
@@ -49,11 +49,11 @@ ol.renderer.vector.getTolerance = function(resolution, pixelRatio) {
|
|||||||
* @param {ol.render.IReplayGroup} replayGroup Replay group.
|
* @param {ol.render.IReplayGroup} replayGroup Replay group.
|
||||||
* @param {ol.geom.Geometry} geometry Geometry.
|
* @param {ol.geom.Geometry} geometry Geometry.
|
||||||
* @param {ol.style.Style} style Style.
|
* @param {ol.style.Style} style Style.
|
||||||
* @param {Object} data Opaque data object.
|
* @param {ol.Feature} feature Feature.
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
ol.renderer.vector.renderCircleGeometry_ =
|
ol.renderer.vector.renderCircleGeometry_ =
|
||||||
function(replayGroup, geometry, style, data) {
|
function(replayGroup, geometry, style, feature) {
|
||||||
goog.asserts.assertInstanceof(geometry, ol.geom.Circle);
|
goog.asserts.assertInstanceof(geometry, ol.geom.Circle);
|
||||||
var fillStyle = style.getFill();
|
var fillStyle = style.getFill();
|
||||||
var strokeStyle = style.getStroke();
|
var strokeStyle = style.getStroke();
|
||||||
@@ -61,14 +61,14 @@ ol.renderer.vector.renderCircleGeometry_ =
|
|||||||
var polygonReplay = replayGroup.getReplay(
|
var polygonReplay = replayGroup.getReplay(
|
||||||
style.getZIndex(), ol.render.ReplayType.POLYGON);
|
style.getZIndex(), ol.render.ReplayType.POLYGON);
|
||||||
polygonReplay.setFillStrokeStyle(fillStyle, strokeStyle);
|
polygonReplay.setFillStrokeStyle(fillStyle, strokeStyle);
|
||||||
polygonReplay.drawCircleGeometry(geometry, data);
|
polygonReplay.drawCircleGeometry(geometry, feature);
|
||||||
}
|
}
|
||||||
var textStyle = style.getText();
|
var textStyle = style.getText();
|
||||||
if (!goog.isNull(textStyle)) {
|
if (!goog.isNull(textStyle)) {
|
||||||
var textReplay = replayGroup.getReplay(
|
var textReplay = replayGroup.getReplay(
|
||||||
style.getZIndex(), ol.render.ReplayType.TEXT);
|
style.getZIndex(), ol.render.ReplayType.TEXT);
|
||||||
textReplay.setTextStyle(textStyle);
|
textReplay.setTextStyle(textStyle);
|
||||||
textReplay.drawText(geometry.getCenter(), 0, 2, 2, geometry, data);
|
textReplay.drawText(geometry.getCenter(), 0, 2, 2, geometry, feature);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -78,20 +78,19 @@ ol.renderer.vector.renderCircleGeometry_ =
|
|||||||
* @param {ol.Feature} feature Feature.
|
* @param {ol.Feature} feature Feature.
|
||||||
* @param {ol.style.Style} style Style.
|
* @param {ol.style.Style} style Style.
|
||||||
* @param {number} squaredTolerance Squared tolerance.
|
* @param {number} squaredTolerance Squared tolerance.
|
||||||
* @param {Object} data Opaque data object.
|
|
||||||
* @param {function(this: T, goog.events.Event)} listener Listener function.
|
* @param {function(this: T, goog.events.Event)} listener Listener function.
|
||||||
* @param {T} thisArg Value to use as `this` when executing `listener`.
|
* @param {T} thisArg Value to use as `this` when executing `listener`.
|
||||||
* @return {boolean} `true` if style is loading.
|
* @return {boolean} `true` if style is loading.
|
||||||
* @template T
|
* @template T
|
||||||
*/
|
*/
|
||||||
ol.renderer.vector.renderFeature = function(
|
ol.renderer.vector.renderFeature = function(
|
||||||
replayGroup, feature, style, squaredTolerance, data, listener, thisArg) {
|
replayGroup, feature, style, squaredTolerance, listener, thisArg) {
|
||||||
var loading = false;
|
var loading = false;
|
||||||
var imageStyle, imageState;
|
var imageStyle, imageState;
|
||||||
imageStyle = style.getImage();
|
imageStyle = style.getImage();
|
||||||
if (goog.isNull(imageStyle)) {
|
if (goog.isNull(imageStyle)) {
|
||||||
ol.renderer.vector.renderFeature_(
|
ol.renderer.vector.renderFeature_(
|
||||||
replayGroup, feature, style, squaredTolerance, data);
|
replayGroup, feature, style, squaredTolerance);
|
||||||
} else {
|
} else {
|
||||||
imageState = imageStyle.getImageState();
|
imageState = imageStyle.getImageState();
|
||||||
if (imageState == ol.style.ImageState.LOADED ||
|
if (imageState == ol.style.ImageState.LOADED ||
|
||||||
@@ -99,7 +98,7 @@ ol.renderer.vector.renderFeature = function(
|
|||||||
imageStyle.unlistenImageChange(listener, thisArg);
|
imageStyle.unlistenImageChange(listener, thisArg);
|
||||||
if (imageState == ol.style.ImageState.LOADED) {
|
if (imageState == ol.style.ImageState.LOADED) {
|
||||||
ol.renderer.vector.renderFeature_(
|
ol.renderer.vector.renderFeature_(
|
||||||
replayGroup, feature, style, squaredTolerance, data);
|
replayGroup, feature, style, squaredTolerance);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (imageState == ol.style.ImageState.IDLE) {
|
if (imageState == ol.style.ImageState.IDLE) {
|
||||||
@@ -120,11 +119,10 @@ ol.renderer.vector.renderFeature = function(
|
|||||||
* @param {ol.Feature} feature Feature.
|
* @param {ol.Feature} feature Feature.
|
||||||
* @param {ol.style.Style} style Style.
|
* @param {ol.style.Style} style Style.
|
||||||
* @param {number} squaredTolerance Squared tolerance.
|
* @param {number} squaredTolerance Squared tolerance.
|
||||||
* @param {Object} data Opaque data object.
|
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
ol.renderer.vector.renderFeature_ = function(
|
ol.renderer.vector.renderFeature_ = function(
|
||||||
replayGroup, feature, style, squaredTolerance, data) {
|
replayGroup, feature, style, squaredTolerance) {
|
||||||
var geometry = feature.getGeometry();
|
var geometry = feature.getGeometry();
|
||||||
if (!goog.isDefAndNotNull(geometry)) {
|
if (!goog.isDefAndNotNull(geometry)) {
|
||||||
return;
|
return;
|
||||||
@@ -133,7 +131,7 @@ ol.renderer.vector.renderFeature_ = function(
|
|||||||
var geometryRenderer =
|
var geometryRenderer =
|
||||||
ol.renderer.vector.GEOMETRY_RENDERERS_[simplifiedGeometry.getType()];
|
ol.renderer.vector.GEOMETRY_RENDERERS_[simplifiedGeometry.getType()];
|
||||||
goog.asserts.assert(goog.isDef(geometryRenderer));
|
goog.asserts.assert(goog.isDef(geometryRenderer));
|
||||||
geometryRenderer(replayGroup, simplifiedGeometry, style, data);
|
geometryRenderer(replayGroup, simplifiedGeometry, style, feature);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -141,11 +139,11 @@ ol.renderer.vector.renderFeature_ = function(
|
|||||||
* @param {ol.render.IReplayGroup} replayGroup Replay group.
|
* @param {ol.render.IReplayGroup} replayGroup Replay group.
|
||||||
* @param {ol.geom.Geometry} geometry Geometry.
|
* @param {ol.geom.Geometry} geometry Geometry.
|
||||||
* @param {ol.style.Style} style Style.
|
* @param {ol.style.Style} style Style.
|
||||||
* @param {Object} data Opaque data object.
|
* @param {ol.Feature} feature Feature.
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
ol.renderer.vector.renderGeometryCollectionGeometry_ =
|
ol.renderer.vector.renderGeometryCollectionGeometry_ =
|
||||||
function(replayGroup, geometry, style, data) {
|
function(replayGroup, geometry, style, feature) {
|
||||||
goog.asserts.assertInstanceof(geometry, ol.geom.GeometryCollection);
|
goog.asserts.assertInstanceof(geometry, ol.geom.GeometryCollection);
|
||||||
var geometries = geometry.getGeometriesArray();
|
var geometries = geometry.getGeometriesArray();
|
||||||
var i, ii;
|
var i, ii;
|
||||||
@@ -153,7 +151,7 @@ ol.renderer.vector.renderGeometryCollectionGeometry_ =
|
|||||||
var geometryRenderer =
|
var geometryRenderer =
|
||||||
ol.renderer.vector.GEOMETRY_RENDERERS_[geometries[i].getType()];
|
ol.renderer.vector.GEOMETRY_RENDERERS_[geometries[i].getType()];
|
||||||
goog.asserts.assert(goog.isDef(geometryRenderer));
|
goog.asserts.assert(goog.isDef(geometryRenderer));
|
||||||
geometryRenderer(replayGroup, geometries[i], style, data);
|
geometryRenderer(replayGroup, geometries[i], style, feature);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -162,25 +160,25 @@ ol.renderer.vector.renderGeometryCollectionGeometry_ =
|
|||||||
* @param {ol.render.IReplayGroup} replayGroup Replay group.
|
* @param {ol.render.IReplayGroup} replayGroup Replay group.
|
||||||
* @param {ol.geom.Geometry} geometry Geometry.
|
* @param {ol.geom.Geometry} geometry Geometry.
|
||||||
* @param {ol.style.Style} style Style.
|
* @param {ol.style.Style} style Style.
|
||||||
* @param {Object} data Opaque data object.
|
* @param {ol.Feature} feature Feature.
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
ol.renderer.vector.renderLineStringGeometry_ =
|
ol.renderer.vector.renderLineStringGeometry_ =
|
||||||
function(replayGroup, geometry, style, data) {
|
function(replayGroup, geometry, style, feature) {
|
||||||
goog.asserts.assertInstanceof(geometry, ol.geom.LineString);
|
goog.asserts.assertInstanceof(geometry, ol.geom.LineString);
|
||||||
var strokeStyle = style.getStroke();
|
var strokeStyle = style.getStroke();
|
||||||
if (!goog.isNull(strokeStyle)) {
|
if (!goog.isNull(strokeStyle)) {
|
||||||
var lineStringReplay = replayGroup.getReplay(
|
var lineStringReplay = replayGroup.getReplay(
|
||||||
style.getZIndex(), ol.render.ReplayType.LINE_STRING);
|
style.getZIndex(), ol.render.ReplayType.LINE_STRING);
|
||||||
lineStringReplay.setFillStrokeStyle(null, strokeStyle);
|
lineStringReplay.setFillStrokeStyle(null, strokeStyle);
|
||||||
lineStringReplay.drawLineStringGeometry(geometry, data);
|
lineStringReplay.drawLineStringGeometry(geometry, feature);
|
||||||
}
|
}
|
||||||
var textStyle = style.getText();
|
var textStyle = style.getText();
|
||||||
if (!goog.isNull(textStyle)) {
|
if (!goog.isNull(textStyle)) {
|
||||||
var textReplay = replayGroup.getReplay(
|
var textReplay = replayGroup.getReplay(
|
||||||
style.getZIndex(), ol.render.ReplayType.TEXT);
|
style.getZIndex(), ol.render.ReplayType.TEXT);
|
||||||
textReplay.setTextStyle(textStyle);
|
textReplay.setTextStyle(textStyle);
|
||||||
textReplay.drawText(geometry.getFlatMidpoint(), 0, 2, 2, geometry, data);
|
textReplay.drawText(geometry.getFlatMidpoint(), 0, 2, 2, geometry, feature);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -189,18 +187,18 @@ ol.renderer.vector.renderLineStringGeometry_ =
|
|||||||
* @param {ol.render.IReplayGroup} replayGroup Replay group.
|
* @param {ol.render.IReplayGroup} replayGroup Replay group.
|
||||||
* @param {ol.geom.Geometry} geometry Geometry.
|
* @param {ol.geom.Geometry} geometry Geometry.
|
||||||
* @param {ol.style.Style} style Style.
|
* @param {ol.style.Style} style Style.
|
||||||
* @param {Object} data Opaque data object.
|
* @param {ol.Feature} feature Feature.
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
ol.renderer.vector.renderMultiLineStringGeometry_ =
|
ol.renderer.vector.renderMultiLineStringGeometry_ =
|
||||||
function(replayGroup, geometry, style, data) {
|
function(replayGroup, geometry, style, feature) {
|
||||||
goog.asserts.assertInstanceof(geometry, ol.geom.MultiLineString);
|
goog.asserts.assertInstanceof(geometry, ol.geom.MultiLineString);
|
||||||
var strokeStyle = style.getStroke();
|
var strokeStyle = style.getStroke();
|
||||||
if (!goog.isNull(strokeStyle)) {
|
if (!goog.isNull(strokeStyle)) {
|
||||||
var lineStringReplay = replayGroup.getReplay(
|
var lineStringReplay = replayGroup.getReplay(
|
||||||
style.getZIndex(), ol.render.ReplayType.LINE_STRING);
|
style.getZIndex(), ol.render.ReplayType.LINE_STRING);
|
||||||
lineStringReplay.setFillStrokeStyle(null, strokeStyle);
|
lineStringReplay.setFillStrokeStyle(null, strokeStyle);
|
||||||
lineStringReplay.drawMultiLineStringGeometry(geometry, data);
|
lineStringReplay.drawMultiLineStringGeometry(geometry, feature);
|
||||||
}
|
}
|
||||||
var textStyle = style.getText();
|
var textStyle = style.getText();
|
||||||
if (!goog.isNull(textStyle)) {
|
if (!goog.isNull(textStyle)) {
|
||||||
@@ -209,7 +207,7 @@ ol.renderer.vector.renderMultiLineStringGeometry_ =
|
|||||||
textReplay.setTextStyle(textStyle);
|
textReplay.setTextStyle(textStyle);
|
||||||
var flatMidpointCoordinates = geometry.getFlatMidpoints();
|
var flatMidpointCoordinates = geometry.getFlatMidpoints();
|
||||||
textReplay.drawText(flatMidpointCoordinates, 0,
|
textReplay.drawText(flatMidpointCoordinates, 0,
|
||||||
flatMidpointCoordinates.length, 2, geometry, data);
|
flatMidpointCoordinates.length, 2, geometry, feature);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -218,11 +216,11 @@ ol.renderer.vector.renderMultiLineStringGeometry_ =
|
|||||||
* @param {ol.render.IReplayGroup} replayGroup Replay group.
|
* @param {ol.render.IReplayGroup} replayGroup Replay group.
|
||||||
* @param {ol.geom.Geometry} geometry Geometry.
|
* @param {ol.geom.Geometry} geometry Geometry.
|
||||||
* @param {ol.style.Style} style Style.
|
* @param {ol.style.Style} style Style.
|
||||||
* @param {Object} data Opaque data object.
|
* @param {ol.Feature} feature Feature.
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
ol.renderer.vector.renderMultiPolygonGeometry_ =
|
ol.renderer.vector.renderMultiPolygonGeometry_ =
|
||||||
function(replayGroup, geometry, style, data) {
|
function(replayGroup, geometry, style, feature) {
|
||||||
goog.asserts.assertInstanceof(geometry, ol.geom.MultiPolygon);
|
goog.asserts.assertInstanceof(geometry, ol.geom.MultiPolygon);
|
||||||
var fillStyle = style.getFill();
|
var fillStyle = style.getFill();
|
||||||
var strokeStyle = style.getStroke();
|
var strokeStyle = style.getStroke();
|
||||||
@@ -230,7 +228,7 @@ ol.renderer.vector.renderMultiPolygonGeometry_ =
|
|||||||
var polygonReplay = replayGroup.getReplay(
|
var polygonReplay = replayGroup.getReplay(
|
||||||
style.getZIndex(), ol.render.ReplayType.POLYGON);
|
style.getZIndex(), ol.render.ReplayType.POLYGON);
|
||||||
polygonReplay.setFillStrokeStyle(fillStyle, strokeStyle);
|
polygonReplay.setFillStrokeStyle(fillStyle, strokeStyle);
|
||||||
polygonReplay.drawMultiPolygonGeometry(geometry, data);
|
polygonReplay.drawMultiPolygonGeometry(geometry, feature);
|
||||||
}
|
}
|
||||||
var textStyle = style.getText();
|
var textStyle = style.getText();
|
||||||
if (!goog.isNull(textStyle)) {
|
if (!goog.isNull(textStyle)) {
|
||||||
@@ -239,7 +237,7 @@ ol.renderer.vector.renderMultiPolygonGeometry_ =
|
|||||||
textReplay.setTextStyle(textStyle);
|
textReplay.setTextStyle(textStyle);
|
||||||
var flatInteriorPointCoordinates = geometry.getFlatInteriorPoints();
|
var flatInteriorPointCoordinates = geometry.getFlatInteriorPoints();
|
||||||
textReplay.drawText(flatInteriorPointCoordinates, 0,
|
textReplay.drawText(flatInteriorPointCoordinates, 0,
|
||||||
flatInteriorPointCoordinates.length, 2, geometry, data);
|
flatInteriorPointCoordinates.length, 2, geometry, feature);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -248,25 +246,25 @@ ol.renderer.vector.renderMultiPolygonGeometry_ =
|
|||||||
* @param {ol.render.IReplayGroup} replayGroup Replay group.
|
* @param {ol.render.IReplayGroup} replayGroup Replay group.
|
||||||
* @param {ol.geom.Geometry} geometry Geometry.
|
* @param {ol.geom.Geometry} geometry Geometry.
|
||||||
* @param {ol.style.Style} style Style.
|
* @param {ol.style.Style} style Style.
|
||||||
* @param {Object} data Opaque data object.
|
* @param {ol.Feature} feature Feature.
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
ol.renderer.vector.renderPointGeometry_ =
|
ol.renderer.vector.renderPointGeometry_ =
|
||||||
function(replayGroup, geometry, style, data) {
|
function(replayGroup, geometry, style, feature) {
|
||||||
goog.asserts.assertInstanceof(geometry, ol.geom.Point);
|
goog.asserts.assertInstanceof(geometry, ol.geom.Point);
|
||||||
var imageStyle = style.getImage();
|
var imageStyle = style.getImage();
|
||||||
if (!goog.isNull(imageStyle)) {
|
if (!goog.isNull(imageStyle)) {
|
||||||
var imageReplay = replayGroup.getReplay(
|
var imageReplay = replayGroup.getReplay(
|
||||||
style.getZIndex(), ol.render.ReplayType.IMAGE);
|
style.getZIndex(), ol.render.ReplayType.IMAGE);
|
||||||
imageReplay.setImageStyle(imageStyle);
|
imageReplay.setImageStyle(imageStyle);
|
||||||
imageReplay.drawPointGeometry(geometry, data);
|
imageReplay.drawPointGeometry(geometry, feature);
|
||||||
}
|
}
|
||||||
var textStyle = style.getText();
|
var textStyle = style.getText();
|
||||||
if (!goog.isNull(textStyle)) {
|
if (!goog.isNull(textStyle)) {
|
||||||
var textReplay = replayGroup.getReplay(
|
var textReplay = replayGroup.getReplay(
|
||||||
style.getZIndex(), ol.render.ReplayType.TEXT);
|
style.getZIndex(), ol.render.ReplayType.TEXT);
|
||||||
textReplay.setTextStyle(textStyle);
|
textReplay.setTextStyle(textStyle);
|
||||||
textReplay.drawText(geometry.getCoordinates(), 0, 2, 2, geometry, data);
|
textReplay.drawText(geometry.getCoordinates(), 0, 2, 2, geometry, feature);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -275,18 +273,18 @@ ol.renderer.vector.renderPointGeometry_ =
|
|||||||
* @param {ol.render.IReplayGroup} replayGroup Replay group.
|
* @param {ol.render.IReplayGroup} replayGroup Replay group.
|
||||||
* @param {ol.geom.Geometry} geometry Geometry.
|
* @param {ol.geom.Geometry} geometry Geometry.
|
||||||
* @param {ol.style.Style} style Style.
|
* @param {ol.style.Style} style Style.
|
||||||
* @param {Object} data Opaque data object.
|
* @param {ol.Feature} feature Feature.
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
ol.renderer.vector.renderMultiPointGeometry_ =
|
ol.renderer.vector.renderMultiPointGeometry_ =
|
||||||
function(replayGroup, geometry, style, data) {
|
function(replayGroup, geometry, style, feature) {
|
||||||
goog.asserts.assertInstanceof(geometry, ol.geom.MultiPoint);
|
goog.asserts.assertInstanceof(geometry, ol.geom.MultiPoint);
|
||||||
var imageStyle = style.getImage();
|
var imageStyle = style.getImage();
|
||||||
if (!goog.isNull(imageStyle)) {
|
if (!goog.isNull(imageStyle)) {
|
||||||
var imageReplay = replayGroup.getReplay(
|
var imageReplay = replayGroup.getReplay(
|
||||||
style.getZIndex(), ol.render.ReplayType.IMAGE);
|
style.getZIndex(), ol.render.ReplayType.IMAGE);
|
||||||
imageReplay.setImageStyle(imageStyle);
|
imageReplay.setImageStyle(imageStyle);
|
||||||
imageReplay.drawMultiPointGeometry(geometry, data);
|
imageReplay.drawMultiPointGeometry(geometry, feature);
|
||||||
}
|
}
|
||||||
var textStyle = style.getText();
|
var textStyle = style.getText();
|
||||||
if (!goog.isNull(textStyle)) {
|
if (!goog.isNull(textStyle)) {
|
||||||
@@ -295,7 +293,7 @@ ol.renderer.vector.renderMultiPointGeometry_ =
|
|||||||
textReplay.setTextStyle(textStyle);
|
textReplay.setTextStyle(textStyle);
|
||||||
var flatCoordinates = geometry.getFlatCoordinates();
|
var flatCoordinates = geometry.getFlatCoordinates();
|
||||||
textReplay.drawText(flatCoordinates, 0, flatCoordinates.length,
|
textReplay.drawText(flatCoordinates, 0, flatCoordinates.length,
|
||||||
geometry.getStride(), geometry, data);
|
geometry.getStride(), geometry, feature);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -304,11 +302,11 @@ ol.renderer.vector.renderMultiPointGeometry_ =
|
|||||||
* @param {ol.render.IReplayGroup} replayGroup Replay group.
|
* @param {ol.render.IReplayGroup} replayGroup Replay group.
|
||||||
* @param {ol.geom.Geometry} geometry Geometry.
|
* @param {ol.geom.Geometry} geometry Geometry.
|
||||||
* @param {ol.style.Style} style Style.
|
* @param {ol.style.Style} style Style.
|
||||||
* @param {Object} data Opaque data object.
|
* @param {ol.Feature} feature Feature.
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
ol.renderer.vector.renderPolygonGeometry_ =
|
ol.renderer.vector.renderPolygonGeometry_ =
|
||||||
function(replayGroup, geometry, style, data) {
|
function(replayGroup, geometry, style, feature) {
|
||||||
goog.asserts.assertInstanceof(geometry, ol.geom.Polygon);
|
goog.asserts.assertInstanceof(geometry, ol.geom.Polygon);
|
||||||
var fillStyle = style.getFill();
|
var fillStyle = style.getFill();
|
||||||
var strokeStyle = style.getStroke();
|
var strokeStyle = style.getStroke();
|
||||||
@@ -316,7 +314,7 @@ ol.renderer.vector.renderPolygonGeometry_ =
|
|||||||
var polygonReplay = replayGroup.getReplay(
|
var polygonReplay = replayGroup.getReplay(
|
||||||
style.getZIndex(), ol.render.ReplayType.POLYGON);
|
style.getZIndex(), ol.render.ReplayType.POLYGON);
|
||||||
polygonReplay.setFillStrokeStyle(fillStyle, strokeStyle);
|
polygonReplay.setFillStrokeStyle(fillStyle, strokeStyle);
|
||||||
polygonReplay.drawPolygonGeometry(geometry, data);
|
polygonReplay.drawPolygonGeometry(geometry, feature);
|
||||||
}
|
}
|
||||||
var textStyle = style.getText();
|
var textStyle = style.getText();
|
||||||
if (!goog.isNull(textStyle)) {
|
if (!goog.isNull(textStyle)) {
|
||||||
@@ -324,7 +322,7 @@ ol.renderer.vector.renderPolygonGeometry_ =
|
|||||||
style.getZIndex(), ol.render.ReplayType.TEXT);
|
style.getZIndex(), ol.render.ReplayType.TEXT);
|
||||||
textReplay.setTextStyle(textStyle);
|
textReplay.setTextStyle(textStyle);
|
||||||
textReplay.drawText(
|
textReplay.drawText(
|
||||||
geometry.getFlatInteriorPoint(), 0, 2, 2, geometry, data);
|
geometry.getFlatInteriorPoint(), 0, 2, 2, geometry, feature);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -382,7 +382,7 @@ ol.render.webgl.ImageReplay.prototype.drawMultiLineStringGeometry =
|
|||||||
* @inheritDoc
|
* @inheritDoc
|
||||||
*/
|
*/
|
||||||
ol.render.webgl.ImageReplay.prototype.drawMultiPointGeometry =
|
ol.render.webgl.ImageReplay.prototype.drawMultiPointGeometry =
|
||||||
function(multiPointGeometry, data) {
|
function(multiPointGeometry, feature) {
|
||||||
ol.extent.extend(this.extent_, multiPointGeometry.getExtent());
|
ol.extent.extend(this.extent_, multiPointGeometry.getExtent());
|
||||||
var flatCoordinates = multiPointGeometry.getFlatCoordinates();
|
var flatCoordinates = multiPointGeometry.getFlatCoordinates();
|
||||||
var stride = multiPointGeometry.getStride();
|
var stride = multiPointGeometry.getStride();
|
||||||
@@ -402,7 +402,7 @@ ol.render.webgl.ImageReplay.prototype.drawMultiPolygonGeometry =
|
|||||||
* @inheritDoc
|
* @inheritDoc
|
||||||
*/
|
*/
|
||||||
ol.render.webgl.ImageReplay.prototype.drawPointGeometry =
|
ol.render.webgl.ImageReplay.prototype.drawPointGeometry =
|
||||||
function(pointGeometry, data) {
|
function(pointGeometry, feature) {
|
||||||
ol.extent.extend(this.extent_, pointGeometry.getExtent());
|
ol.extent.extend(this.extent_, pointGeometry.getExtent());
|
||||||
var flatCoordinates = pointGeometry.getFlatCoordinates();
|
var flatCoordinates = pointGeometry.getFlatCoordinates();
|
||||||
var stride = pointGeometry.getStride();
|
var stride = pointGeometry.getStride();
|
||||||
|
|||||||
@@ -130,12 +130,10 @@ ol.renderer.canvas.VectorLayer.prototype.forEachFeatureAtPixel =
|
|||||||
return this.replayGroup_.forEachGeometryAtPixel(extent, resolution,
|
return this.replayGroup_.forEachGeometryAtPixel(extent, resolution,
|
||||||
rotation, coordinate, frameState.skippedFeatureUids,
|
rotation, coordinate, frameState.skippedFeatureUids,
|
||||||
/**
|
/**
|
||||||
* @param {ol.geom.Geometry} geometry Geometry.
|
* @param {ol.Feature} feature Feature.
|
||||||
* @param {Object} data Data.
|
|
||||||
* @return {?} Callback result.
|
* @return {?} Callback result.
|
||||||
*/
|
*/
|
||||||
function(geometry, data) {
|
function(feature) {
|
||||||
var feature = /** @type {ol.Feature} */ (data);
|
|
||||||
goog.asserts.assert(goog.isDef(feature));
|
goog.asserts.assert(goog.isDef(feature));
|
||||||
var key = goog.getUid(feature).toString();
|
var key = goog.getUid(feature).toString();
|
||||||
if (!(key in features)) {
|
if (!(key in features)) {
|
||||||
@@ -278,7 +276,7 @@ ol.renderer.canvas.VectorLayer.prototype.renderFeature =
|
|||||||
loading = ol.renderer.vector.renderFeature(
|
loading = ol.renderer.vector.renderFeature(
|
||||||
replayGroup, feature, styles[i],
|
replayGroup, feature, styles[i],
|
||||||
ol.renderer.vector.getSquaredTolerance(resolution, pixelRatio),
|
ol.renderer.vector.getSquaredTolerance(resolution, pixelRatio),
|
||||||
feature, this.handleImageChange_, this) || loading;
|
this.handleImageChange_, this) || loading;
|
||||||
}
|
}
|
||||||
return loading;
|
return loading;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -171,12 +171,10 @@ ol.renderer.dom.VectorLayer.prototype.forEachFeatureAtPixel =
|
|||||||
return this.replayGroup_.forEachGeometryAtPixel(extent, resolution,
|
return this.replayGroup_.forEachGeometryAtPixel(extent, resolution,
|
||||||
rotation, coordinate, frameState.skippedFeatureUids,
|
rotation, coordinate, frameState.skippedFeatureUids,
|
||||||
/**
|
/**
|
||||||
* @param {ol.geom.Geometry} geometry Geometry.
|
* @param {ol.Feature} feature Feature.
|
||||||
* @param {Object} data Data.
|
|
||||||
* @return {?} Callback result.
|
* @return {?} Callback result.
|
||||||
*/
|
*/
|
||||||
function(geometry, data) {
|
function(feature) {
|
||||||
var feature = /** @type {ol.Feature} */ (data);
|
|
||||||
goog.asserts.assert(goog.isDef(feature));
|
goog.asserts.assert(goog.isDef(feature));
|
||||||
var key = goog.getUid(feature).toString();
|
var key = goog.getUid(feature).toString();
|
||||||
if (!(key in features)) {
|
if (!(key in features)) {
|
||||||
@@ -319,7 +317,7 @@ ol.renderer.dom.VectorLayer.prototype.renderFeature =
|
|||||||
loading = ol.renderer.vector.renderFeature(
|
loading = ol.renderer.vector.renderFeature(
|
||||||
replayGroup, feature, styles[i],
|
replayGroup, feature, styles[i],
|
||||||
ol.renderer.vector.getSquaredTolerance(resolution, pixelRatio),
|
ol.renderer.vector.getSquaredTolerance(resolution, pixelRatio),
|
||||||
feature, this.handleImageChange_, this) || loading;
|
this.handleImageChange_, this) || loading;
|
||||||
}
|
}
|
||||||
return loading;
|
return loading;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -135,12 +135,10 @@ ol.renderer.Map.prototype.forEachFeatureAtPixel =
|
|||||||
result = this.replayGroup.forEachGeometryAtPixel(extent, viewResolution,
|
result = this.replayGroup.forEachGeometryAtPixel(extent, viewResolution,
|
||||||
viewRotation, coordinate, {},
|
viewRotation, coordinate, {},
|
||||||
/**
|
/**
|
||||||
* @param {ol.geom.Geometry} geometry Geometry.
|
* @param {ol.Feature} feature Feature.
|
||||||
* @param {Object} data Data.
|
|
||||||
* @return {?} Callback result.
|
* @return {?} Callback result.
|
||||||
*/
|
*/
|
||||||
function(geometry, data) {
|
function(feature) {
|
||||||
var feature = /** @type {ol.Feature} */ (data);
|
|
||||||
goog.asserts.assert(goog.isDef(feature));
|
goog.asserts.assert(goog.isDef(feature));
|
||||||
var key = goog.getUid(feature).toString();
|
var key = goog.getUid(feature).toString();
|
||||||
if (!(key in features)) {
|
if (!(key in features)) {
|
||||||
|
|||||||
@@ -234,7 +234,7 @@ ol.renderer.webgl.VectorLayer.prototype.renderFeature =
|
|||||||
loading = ol.renderer.vector.renderFeature(
|
loading = ol.renderer.vector.renderFeature(
|
||||||
replayGroup, feature, styles[i],
|
replayGroup, feature, styles[i],
|
||||||
ol.renderer.vector.getSquaredTolerance(resolution, pixelRatio),
|
ol.renderer.vector.getSquaredTolerance(resolution, pixelRatio),
|
||||||
feature, this.handleImageChange_, this) || loading;
|
this.handleImageChange_, this) || loading;
|
||||||
}
|
}
|
||||||
return loading;
|
return loading;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -163,12 +163,10 @@ ol.source.ImageVector.prototype.forEachFeatureAtPixel = function(
|
|||||||
return this.replayGroup_.forEachGeometryAtPixel(
|
return this.replayGroup_.forEachGeometryAtPixel(
|
||||||
extent, resolution, 0, coordinate, skippedFeatureUids,
|
extent, resolution, 0, coordinate, skippedFeatureUids,
|
||||||
/**
|
/**
|
||||||
* @param {ol.geom.Geometry} geometry Geometry.
|
* @param {ol.Feature} feature Feature.
|
||||||
* @param {Object} data Data.
|
|
||||||
* @return {?} Callback result.
|
* @return {?} Callback result.
|
||||||
*/
|
*/
|
||||||
function(geometry, data) {
|
function(feature) {
|
||||||
var feature = /** @type {ol.Feature} */ (data);
|
|
||||||
goog.asserts.assert(goog.isDef(feature));
|
goog.asserts.assert(goog.isDef(feature));
|
||||||
var key = goog.getUid(feature).toString();
|
var key = goog.getUid(feature).toString();
|
||||||
if (!(key in features)) {
|
if (!(key in features)) {
|
||||||
@@ -274,7 +272,7 @@ ol.source.ImageVector.prototype.renderFeature_ =
|
|||||||
loading = ol.renderer.vector.renderFeature(
|
loading = ol.renderer.vector.renderFeature(
|
||||||
replayGroup, feature, styles[i],
|
replayGroup, feature, styles[i],
|
||||||
ol.renderer.vector.getSquaredTolerance(resolution, pixelRatio),
|
ol.renderer.vector.getSquaredTolerance(resolution, pixelRatio),
|
||||||
feature, this.handleImageChange_, this) || loading;
|
this.handleImageChange_, this) || loading;
|
||||||
}
|
}
|
||||||
return loading;
|
return loading;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ describe('ol.renderer.vector', function() {
|
|||||||
|
|
||||||
// call #1
|
// call #1
|
||||||
ol.renderer.vector.renderFeature(replayGroup, feature,
|
ol.renderer.vector.renderFeature(replayGroup, feature,
|
||||||
style, 1, feature, listener, listenerThis);
|
style, 1, listener, listenerThis);
|
||||||
|
|
||||||
expect(iconStyleLoadSpy.calledOnce).to.be.ok();
|
expect(iconStyleLoadSpy.calledOnce).to.be.ok();
|
||||||
listeners = goog.events.getListeners(
|
listeners = goog.events.getListeners(
|
||||||
@@ -42,7 +42,7 @@ describe('ol.renderer.vector', function() {
|
|||||||
|
|
||||||
// call #2
|
// call #2
|
||||||
ol.renderer.vector.renderFeature(replayGroup, feature,
|
ol.renderer.vector.renderFeature(replayGroup, feature,
|
||||||
style, 1, feature, listener, listenerThis);
|
style, 1, listener, listenerThis);
|
||||||
|
|
||||||
expect(iconStyleLoadSpy.calledOnce).to.be.ok();
|
expect(iconStyleLoadSpy.calledOnce).to.be.ok();
|
||||||
listeners = goog.events.getListeners(
|
listeners = goog.events.getListeners(
|
||||||
|
|||||||
Reference in New Issue
Block a user