Render simplified geometries in replay mode
This commit is contained in:
@@ -15,10 +15,12 @@ goog.require('ol.style.Style');
|
||||
* @param {ol.render.IReplayGroup} replayGroup Replay group.
|
||||
* @param {ol.Feature} feature Feature.
|
||||
* @param {ol.style.Style} style Style.
|
||||
* @param {number} squaredTolerance Squared tolerance.
|
||||
* @param {Object} data Opaque data object.
|
||||
*/
|
||||
ol.renderer.vector.renderFeature = function(replayGroup, feature, style, data) {
|
||||
var geometry = feature.getGeometry();
|
||||
ol.renderer.vector.renderFeature = function(
|
||||
replayGroup, feature, style, squaredTolerance, data) {
|
||||
var geometry = feature.getGeometry().getSimplifiedGeometry(squaredTolerance);
|
||||
var geometryRenderer =
|
||||
ol.renderer.vector.GEOMETRY_RENDERERS_[geometry.getType()];
|
||||
goog.asserts.assert(goog.isDef(geometryRenderer));
|
||||
|
||||
@@ -218,6 +218,8 @@ ol.renderer.canvas.VectorLayer.prototype.renderFeature =
|
||||
function(feature, resolution, styleFunction, replayGroup) {
|
||||
var loading = false;
|
||||
var styles = styleFunction(feature, resolution);
|
||||
// simplify to a tolerance of half a CSS pixel
|
||||
var squaredTolerance = resolution * resolution / 4;
|
||||
var i, ii, style, imageStyle, imageState;
|
||||
for (i = 0, ii = styles.length; i < ii; ++i) {
|
||||
style = styles[i];
|
||||
@@ -228,12 +230,14 @@ ol.renderer.canvas.VectorLayer.prototype.renderFeature =
|
||||
this.handleImageStyleChange_, false, this);
|
||||
imageStyle.load();
|
||||
} else if (imageStyle.imageState == ol.style.ImageState.LOADED) {
|
||||
ol.renderer.vector.renderFeature(replayGroup, feature, style, feature);
|
||||
ol.renderer.vector.renderFeature(
|
||||
replayGroup, feature, style, squaredTolerance, feature);
|
||||
}
|
||||
goog.asserts.assert(imageStyle.imageState != ol.style.ImageState.IDLE);
|
||||
loading = imageStyle.imageState == ol.style.ImageState.LOADING;
|
||||
} else {
|
||||
ol.renderer.vector.renderFeature(replayGroup, feature, style, feature);
|
||||
ol.renderer.vector.renderFeature(
|
||||
replayGroup, feature, style, squaredTolerance, feature);
|
||||
}
|
||||
}
|
||||
return loading;
|
||||
|
||||
Reference in New Issue
Block a user