OpenLayers 2:仅用两点绘制路径
OpenLayers 2: draw path with only two points
我想画一条不超过2个点的路径。关于第二点,我希望路径完成。
任何人都可以帮助我如何在 openlayers 2 中实现此功能。
我试过这段代码,但它给出了错误,尽管线条创建得很好。
_singleLineControl = new OpenLayers.Control.DrawFeature(
_singleLineLayer,
OpenLayers.Handler.Path,
{
eventListeners: { "featureadded": drawingFinished },
callbacks: {
point: function (pointGeometry, lineGeometry) {
var numPoints = lineGeometry.getVertices().length;
if (numPoints == 3) {
this.drawFeature(lineGeometry);
}
}
}
});
viewer.addControl(_singleLineControl);
_singleLineControl.handler.single = true;
_singleLineControl.handler.freehand = false;
_singleLineControl.deactivate();
我自己找到了解决方案 :) 使用 maxVertices
// single line drawing control
_singleLineControl = new OpenLayers.Control.DrawFeature(
_singleLineLayer,
OpenLayers.Handler.Path,
{
eventListeners: { "featureadded": drawingFinished },
handlerOptions: {
maxVertices: 2,
single: true,
freehand: false,
}
});
viewer.addControl(_singleLineControl);
_singleLineControl.deactivate();
我想画一条不超过2个点的路径。关于第二点,我希望路径完成。
任何人都可以帮助我如何在 openlayers 2 中实现此功能。
我试过这段代码,但它给出了错误,尽管线条创建得很好。
_singleLineControl = new OpenLayers.Control.DrawFeature(
_singleLineLayer,
OpenLayers.Handler.Path,
{
eventListeners: { "featureadded": drawingFinished },
callbacks: {
point: function (pointGeometry, lineGeometry) {
var numPoints = lineGeometry.getVertices().length;
if (numPoints == 3) {
this.drawFeature(lineGeometry);
}
}
}
});
viewer.addControl(_singleLineControl);
_singleLineControl.handler.single = true;
_singleLineControl.handler.freehand = false;
_singleLineControl.deactivate();
我自己找到了解决方案 :) 使用 maxVertices
// single line drawing control
_singleLineControl = new OpenLayers.Control.DrawFeature(
_singleLineLayer,
OpenLayers.Handler.Path,
{
eventListeners: { "featureadded": drawingFinished },
handlerOptions: {
maxVertices: 2,
single: true,
freehand: false,
}
});
viewer.addControl(_singleLineControl);
_singleLineControl.deactivate();