打开图层 3 - 初始化与 LineString 上第一个节点的绘图交互
Open Layers 3 - Initialize Draw Interaction with first node on LineString
我有一张地图,用户可以在地图上选择一些 object/feature 并画一条线到另一个 object/feature。当用户选择要素时,我想添加绘图交互并已将第一个点设置为所选要素,而无需用户再次单击地图。
这是一个fiddle:Sample
按下绘图按钮后,下面的注释代码应在没有用户交互的情况下以编程方式执行
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
我有一张地图,用户可以在地图上选择一些 object/feature 并画一条线到另一个 object/feature。当用户选择要素时,我想添加绘图交互并已将第一个点设置为所选要素,而无需用户再次单击地图。
这是一个fiddle:Sample
按下绘图按钮后,下面的注释代码应在没有用户交互的情况下以编程方式执行
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