【问题标题】:How to enable "Snapping" with "Select" interaction in Openlayers 3如何在 Openlayers 3 中通过“选择”交互启用“捕捉”
【发布时间】:2017-02-06 09:16:54
【问题描述】:

我开发了一个应用程序,支持使用 OpenLayers 3 在地图上绘制线或点等内容并添加一些标签。

OL3 中的许多现有功能使我能够绘制和修改某些东西。

但是,当我选择我画的东西时,我觉得需要一个捕捉功能来让我更轻松地选择它们。

很遗憾,目前的OL3只支持绘制和修改的捕捉,如下:

var draw = ol.interaction.Draw({features: some_features});
var snap = ol.interaction.Snap({featrues: some_features});
map.addInteraction(draw);
map.addInteraction(snap);

实际上,我发现捕捉是通过将 ol.interaction.Draw 替换为 ol.interaction.Select 来实现的,因为如果我点击点,我可以选择我绘制的东西除了他们。但是,鼠标指针并没有捕捉到它们。

那么,如何在OL3中实现选择与捕捉功能的交互呢?


添加了一些代码来解释细节。

查看链接:https://jsfiddle.net/keltpower0/sej6z2q4/1/

在你画了一些线之后,如果你选择了这些线,你应该点击放置线的那个点。

我想更轻松地选择那些具有捕捉功能的线条,例如,如果我将鼠标指针移动到线条附近,指针会“自动”捕捉到线条

【问题讨论】:

    标签: javascript openlayers-3


    【解决方案1】:

    用捕捉的声音选择对我来说有点奇怪。使用选择交互的hitTolerance 选项怎么样?

    【讨论】:

    • 请阅读我添加的 cmets。我认为我应该的功能不是那么连线......
    • 请参阅 jsfiddle.net/sej6z2q4/3 以了解与 hitTolerance 的更新选择交互。浏览器不允许移动光标,所以你不能按你想要的方式“捕捉”。但是使用较大的hitTolerance,选择小特征会容易得多。
    • 有没有办法通过选择交互启用捕捉,例如绘制 + 捕捉交互?像这样:openlayers.org/en/latest/examples/snap.html
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-22
    • 2018-10-09
    • 1970-01-01
    • 2011-07-31
    相关资源
    最近更新 更多