我有一张地图,用户可以在地图上选择某个对象/特征,并在另一个对象/特征上画一条线。当用户选择要素时,我想添加一个绘制交互,并且已经将第一个点设置为所选要素,而无需用户在地图上再次单击。
这是一个小提琴:示例
下面的注释代码应该在按下绘制按钮后以编程方式执行,无需用户交互
geometryFunction: function (c, g) {
if (goog.isDef(g)) {
g.setCoordinates(c);
} else {
// DO THIS AUTOMATICALLY ON PRESSING DRAW
// TO INITIALIZE AND START THE DRAWING PROCESS
c[0][0] = 1174072.754460305;
c[0][1] = 332653.94709708635;
g = new ol.geom.LineString(c);
}
...
}
当前的行为是,您单击"绘图"按钮,可以单击地图开始绘制(但我用我想要的起始位置覆盖了第一个节点 - 在本例中靠近中非)
是否可以单击"绘制"并且第一个节点已经以编程方式设置,而不必先单击地图?
目前无法手动将点附加到 OpenLayers 3 ol.interaction.Draw
,但能够支持它是有意义的(在我看来)。 这将是用户点击的"好像"。
您应该询问 OL3-dev 发送此邮件有关添加此类功能的信息,以了解他们对此的看法。 如果他们同意并且您愿意为此工作,则可以提供拉取请求。 请参阅:https://groups.google.com/forum/#!forum/ol3-dev
如果您不介意在OL中使用私有方法,则可以执行此操作以实现所需的目标。
var event = $.Event('click'); //create a click event in your draw method using JQuery
event.coordinate = [1174072.754460305,332653.94709708635];// set your starting coordinate
draw_interaction.startDrawing_(event);// tell your interaction to start drawing