我在我的应用程序中使用OpenLayers3开始,并在创建工作版本,到目前为止,我已经成功了:OpenLayers3 - 是否可以结合修改/绘制/选择操作?
- 组合平局/修改页(基于相关的例子,
draw-and-modify-features.js
) - 一合并的选择/修改页(基于相关的例子,
modify-features.js
)
在(1)中,ol.interaction.Modify
实例指定它将上的特征工作的ol.FeatureOverlay
实例内的情况下:
var modify = new ol.interaction.Modify({
features: featureOverlay.getFeatures()
...
...并且它是ol.FeatureOverlay
,其中包含用户绘制的所有新功能。
在的情况下,(2),该ol.interaction.Modify
实例指定它将在功能工作ol.interaction.Select
实例内:
var select = new ol.interaction.Select();
var modify = new ol.interaction.Modify({
features: select.getFeatures()
});
...除非我弄错了,这将创建一个隐藏的ol.FeatureOverlay
这保存当前选择的功能 - 然后进行编辑。
但是,我看不到一种方法来组合所有3 - 即用户友好的方式来允许用户绘制,选择和修改多边形。
我想(理想情况下)需要的是绘制/修改的功能,但是当我点击并保持Ctrl按下时,光标不再在“绘制”模式下工作,而是在“选择”模式下,允许我选择其中一个现有的多边形,然后在键盘上点击Delete删除它,或者只需用鼠标编辑它的顶点。只要在所有多边形之外单击,我就会返回到绘制/修改模式。
我做了一个天真的测试 - 将ol.interaction.Select
添加到绘图/修改Map实例的交互中 - 这导致了令人捧腹的结果:-)例如,在完成绘制多边形时(即,点击关闭它)它也被选中......并且点击任何地方(多边形内部或外部)只是开始另一个新的多边形边缘,它从不选择预先存在的一个边缘等。
我只想到一个解决方案远远是......为了实现“VI仿真”:-)即“命令”模式(即选择/修改状态)和“插入”模式(即绘制/修改状态) - 和你从地图(自定义OL3控件)或地图(常规HTML按钮)内部的“状态切换”按钮中选择您所处的模式。
我,但是,找一个更好的办法,像我跟按住Ctrl建议...
任何意见/建议,深受欢迎。
这有帮助吗? http://openlayers.org/en/v3.0.0/examples/draw-and-modify-features.html?q=modify你必须使用修饰键,但我设法绘制,删除和修改多边形(阅读后来源,它必须说:-)) – 2014-09-26 10:34:09
@JohnBarça:谢谢约翰,但你只是重复我在我自己的问题(modify.js)中有同样的参考,没有告诉我你是如何管理所有3(绘制,选择,修改):-)小心分享你的解决方案? – ttsiodras 2014-09-29 07:05:09
对不起,我没有看到你的问题中的链接,我没有解决方案。那个不适合你的例子是什么? – 2014-09-29 07:08:34