0

OpenLayers + GeoExt2 に問題があります。(API 経由でダウンロードされた) フィーチャにid属性が含まれる FeatureStore を作成しました。グリッド パネルで機能を表現しようとすると、他のすべての属性 (名前、説明など) は適切に表現されますが、ID は OpenLayers オブジェクトの ID によって上書きされます。 " int id.

私の店は次のように定義されています。

areaStore = Ext.create('GeoExt.data.FeatureStore', {
    layer: areaLayer,
        fields: [
            {type:'string', name: 'note'},
            {type:'int',    name: 'node' },
            {type:'string', name: 'description'},
            {type:'bool',   name: 'enabled'},
            {type:'int',    name: 'id'}
        ],
    autoLoad: false,
});

グリッド パネルに配置する列は、次のように定義されています。

var areaColumns = [
    { dataIndex: 'id', header: 'ID', flex:1 },
    { dataIndex: 'description', flex: 1, header: 'Description' },
    { dataIndex: 'node', flex: 1, header: 'Node' },
    { dataIndex: 'enabled', flex: 1, header: 'Enabled'},
    { dataIndex: 'note', flex: 1, header: 'Note' }
]

API を介してデータベースから機能をダウンロードするときに同じ問題が発生した人はいますか? ありがとうございました!

4

2 に答える 2

0

@アレクサンダー:答えてくれてありがとう。他のすべてのフィールドが正しく読み取られ、そのフィールドの型が整数であると確信しているため、これは奇妙です。

[編集] OpenLayers がプロパティの ID を上書きする理由がわからなかったので、元の ID 属性へのマッピングを作成する前に発生したため、recordId 属性を追加するために GeoJSON 形式を編集しようとしました。機能のプロパティに追加し、元の ID と同じに設定します。つまり、ダウンロードした JSON を解析して OpenLayers 特徴ベクトルとして追加する前に編集し、recordId 属性を追加してから、「id」の代わりにこれを使用しました。

私の解決策が同じ問題を抱えている人に役立つことを願っています!

于 2014-09-01T07:33:56.570 に答える
0

使ってみましたか

{type:'int',    name: 'recordId',      mapping:'id'}

{ dataIndex: 'recordId', header: 'ID', flex:1 },

IDがデータから正しく読み取られているかどうかを確認するには?

idPropertyストアの設定オプションをいじってみましたか、つまり に設定しましたかsomeNonExistentIdProp?

于 2014-08-27T18:52:07.170 に答える