OpenLayers 选择带有控制点的要素

发布于 2024-11-27 22:50:48 字数 945 浏览 2 评论 0 原文

我有一个 OpenLayers.Layer.GML 层,使用 MapFish 提供的 GeoJSON 数据构建。 当我选择他的特征时,会显示控制点,它们让我可以编辑特征的形状。好吧,我不想要他们!我不知道它们是如何出现的,也不知道为什么出现。 控件、图层或地图中必须有一些设置才能产生此效果。

这是一个屏幕截图

我用来生成控件的代码是这样的:

_selectFeatureControl = new OpenLayers.Control.SelectFeature(
    _activeLayer,
    {
        clickout: true, 
        toggle: true,
        multiple: false, 
        hover: false,
        toggleKey: "ctrlKey", // ctrl key removes from selection
        multipleKey: "shiftKey" // shift key adds to selection
    }
 );

层生成代码是:

layer = new OpenLayers.Layer.GML(
   displayName,
   url,
   {
       format: OpenLayers.Format.GeoJSON,
       isBaseLayer: false,
       visibility: true,

       styleMap: styleMap,

       projection: new OpenLayers.Projection("EPSG:4326")
   }
);                       

谢谢每个人!

I have a OpenLayers.Layer.GML layer build with GeoJSON data given by MapFish.
When I select his features control points are displayed and they let me edit the shape of the features. Well I don't want them! And I don't know how they appeared or why.
There must be some setting in the control, in the layer or in the map that produce this.

Here's a screenshot

feature selected with control points

The code I use to generate the control is this:

_selectFeatureControl = new OpenLayers.Control.SelectFeature(
    _activeLayer,
    {
        clickout: true, 
        toggle: true,
        multiple: false, 
        hover: false,
        toggleKey: "ctrlKey", // ctrl key removes from selection
        multipleKey: "shiftKey" // shift key adds to selection
    }
 );

The layer generation code is:

layer = new OpenLayers.Layer.GML(
   displayName,
   url,
   {
       format: OpenLayers.Format.GeoJSON,
       isBaseLayer: false,
       visibility: true,

       styleMap: styleMap,

       projection: new OpenLayers.Projection("EPSG:4326")
   }
);                       

Thanks every one!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

心舞飞扬 2024-12-04 22:50:48

试试这个:

var controls = map.getControlsByClass('OpenLayers.Control.ModifyFeature');
for(var i=0;i<controls.length;i++){
    controls[i].deactivate();
    controls[i].destroy();
}

try this:

var controls = map.getControlsByClass('OpenLayers.Control.ModifyFeature');
for(var i=0;i<controls.length;i++){
    controls[i].deactivate();
    controls[i].destroy();
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文