2011-08-04 66 views
0

我有一个OpenLayers.Layer.GML层与MapFish给出的GeoJSON数据构建。 当我选择他的特征时,显示控制点,他们让我编辑特征的形状。那么我不希望他们!我不知道他们是如何出现或为什么。 控件中,图层或地图中必须有一些设置可以产生此设置。OpenLayers选择功能与控制点

下面是截图

feature selected with control points

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

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

感谢每一个!

+0

这样你就不会在你的代码中加入'ModifyFeature'地方? –

回答

0

试试这个:

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

哦,是啊!有效! :) 非常感谢!! 我正在使用GeoExt来显示一个窗口,其中包含要素的属性,我猜我使用的组件自动添加了修改功能控件... – mokagio

+0

在这种情况下,您应该深入GeoExt文档以尝试找到它。我认为我的解决方案是黑客攻击。 –