繁体   English   中英

openlayers3如何始终启用徒手绘制

[英]openlayers3 how to always enable freehand draw

在OpenLayers3 v3.5中,你如何始终启用徒手画? 启用徒手绘制的默认设置是通过ol.interaction.DrawfreehandCondition属性完成的,默认情况下,该属性当前设置为shift键。

draw = new ol.interaction.Draw({
  source: drawLayer.getSource(),
  type: 'LineString',
  freehandCondition: ol.events.condition.shiftKeyOnly
});

但我不想那样。 我不希望按下shift键来启用徒手画。 我希望通过单击并拖动而不使用任何键修饰符来启用徒手画。

我试过了:

freehandCondition: ol.events.condition.always

freehandCondition: ol.events.condition.click

freehandCondition: ol.events.condition.noModifierKeys

但这些都不起作用。

您可能想知道通过这样做会平移地图,但我已经通过更改我的默认交互禁用平移,以便dragPan: false

你错过了文档ol.interaction.Drawcondition参数。 它与freehandCondition冲突。

它应该像下面(测试)

draw = new ol.interaction.Draw({
  source: drawLayer.getSource(),
  type: 'LineString',
   condition: ol.events.condition.singleClick,
   freehandCondition: ol.events.condition.noModifierKeys
});

看看这个小提琴进行演示。

我可能错过了一个更好的选择。 如果行为不完全符合预期,您可能还需要尝试其他条件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM