2011-11-21 202 views
6

我使用的是openlayers,能够使用DrawFeature和OpenLayers.Handler.Path来绘制线条。现在我需要提供一个可以绘制水平/垂直线的选项。这意味着当用户开始绘制线并将鼠标移动到某个角度时,如果角度小于x轴的45度,则只绘制水平线,如果角度大于45度,则将开始绘制垂直线。如何在openLayers中绘制水平线?

有关如何做到这一点的任何想法?

回答

1

这是一个棘手的问题。我想你应该以某种方式结合多个控件

我会尝试绘制两个隐藏的矢量,在你想开始绘制的时刻。一个水平轴矢量和一个垂直轴。当然它们相交在你的出发点

你想绘制的实际线条应该捕捉到这些向量之一。 http://dev.openlayers.org/docs/files/OpenLayers/Control/Snapping-js.html

你可以看看的捕捉例子: http://www.openlayers.org/dev/examples/snap-grid.htmlhttp://www.openlayers.org/dev/examples/wfs-snap-split.html

唯一的区别是,你可以只画“网格”,如果你知道的起源。我会从假设你的例子开始。