2011-08-04 19 views
0

MapFishから与えられたGeoJSONデータでOpenLayers.Layer.GMLレイヤービルドを作成しました。 彼のフィーチャを選択すると、コントロールポイントが表示され、フィーチャの形状を編集できるようになります。まあ、私はそれらを望んでいない!そして、私はそれらがどのように登場したのか、その理由を知らない。 コントロール内、これを生成するレイヤー内またはマップ内にいくつかの設定が必要です。OpenLayersコントロールポイントでフィーチャを選択

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

おかげで一人一人

はここで私はコントロールを生成するために使用するコードはこれですスクリーンショット

feature selected with control points

です!

+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のドキュメントを参照して見つけてください。私は私の解決策をハックだと思っています。 –

関連する問題