Implement text rendering along paths
This commit also changes the TextReplay.drawText() signature, and moves geometry calculation into drawText(). This improves performance where no text needs to be rendered (TextStyle.getText() == ''), which is used often in applications.
This commit is contained in:
@@ -58,7 +58,7 @@ ol.renderer.vector.renderCircleGeometry_ = function(replayGroup, geometry, style
|
||||
var textReplay = replayGroup.getReplay(
|
||||
style.getZIndex(), ol.render.ReplayType.TEXT);
|
||||
textReplay.setTextStyle(textStyle);
|
||||
textReplay.drawText(geometry.getCenter(), 0, 2, 2, geometry, feature);
|
||||
textReplay.drawText(geometry, feature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -181,7 +181,7 @@ ol.renderer.vector.renderLineStringGeometry_ = function(replayGroup, geometry, s
|
||||
var textReplay = replayGroup.getReplay(
|
||||
style.getZIndex(), ol.render.ReplayType.TEXT);
|
||||
textReplay.setTextStyle(textStyle);
|
||||
textReplay.drawText(geometry.getFlatMidpoint(), 0, 2, 2, geometry, feature);
|
||||
textReplay.drawText(geometry, feature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -206,9 +206,7 @@ ol.renderer.vector.renderMultiLineStringGeometry_ = function(replayGroup, geomet
|
||||
var textReplay = replayGroup.getReplay(
|
||||
style.getZIndex(), ol.render.ReplayType.TEXT);
|
||||
textReplay.setTextStyle(textStyle);
|
||||
var flatMidpointCoordinates = geometry.getFlatMidpoints();
|
||||
textReplay.drawText(flatMidpointCoordinates, 0,
|
||||
flatMidpointCoordinates.length, 2, geometry, feature);
|
||||
textReplay.drawText(geometry, feature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -234,9 +232,7 @@ ol.renderer.vector.renderMultiPolygonGeometry_ = function(replayGroup, geometry,
|
||||
var textReplay = replayGroup.getReplay(
|
||||
style.getZIndex(), ol.render.ReplayType.TEXT);
|
||||
textReplay.setTextStyle(textStyle);
|
||||
var flatInteriorPointCoordinates = geometry.getFlatInteriorPoints();
|
||||
textReplay.drawText(flatInteriorPointCoordinates, 0,
|
||||
flatInteriorPointCoordinates.length, 2, geometry, feature);
|
||||
textReplay.drawText(geometry, feature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -264,8 +260,7 @@ ol.renderer.vector.renderPointGeometry_ = function(replayGroup, geometry, style,
|
||||
var textReplay = replayGroup.getReplay(
|
||||
style.getZIndex(), ol.render.ReplayType.TEXT);
|
||||
textReplay.setTextStyle(textStyle);
|
||||
textReplay.drawText(geometry.getFlatCoordinates(), 0, 2, 2, geometry,
|
||||
feature);
|
||||
textReplay.drawText(geometry, feature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -293,9 +288,7 @@ ol.renderer.vector.renderMultiPointGeometry_ = function(replayGroup, geometry, s
|
||||
var textReplay = replayGroup.getReplay(
|
||||
style.getZIndex(), ol.render.ReplayType.TEXT);
|
||||
textReplay.setTextStyle(textStyle);
|
||||
var flatCoordinates = geometry.getFlatCoordinates();
|
||||
textReplay.drawText(flatCoordinates, 0, flatCoordinates.length,
|
||||
geometry.getStride(), geometry, feature);
|
||||
textReplay.drawText(geometry, feature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -321,8 +314,7 @@ ol.renderer.vector.renderPolygonGeometry_ = function(replayGroup, geometry, styl
|
||||
var textReplay = replayGroup.getReplay(
|
||||
style.getZIndex(), ol.render.ReplayType.TEXT);
|
||||
textReplay.setTextStyle(textStyle);
|
||||
textReplay.drawText(
|
||||
geometry.getFlatInteriorPoint(), 0, 2, 2, geometry, feature);
|
||||
textReplay.drawText(geometry, feature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user