【问题标题】:OpenLayers Select Feature with control pointsOpenLayers 选择具有控制点的要素
【发布时间】:2025-12-17 11:25:01
【问题描述】:

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

这是截图

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

_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")
   }
);                       

谢谢大家!

【问题讨论】:

  • 所以您没有在代码中的任何位置添加ModifyFeature

标签: openlayers gml geojson


【解决方案1】:

试试这个:

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

【讨论】:

  • 哦,是的!有效! :) 非常感谢!!我正在使用 GeoExt 显示一个带有功能属性的窗口,我猜我使用的组件会自动添加修改功能控件...
  • 在这种情况下,您应该深入研究 GeoExt 文档以尝试找到它。我认为我的解决方案是 hack。