2014-08-27 190 views
0

我有一個OpenLayers + GeoExt2問題:我創建了一個FeatureStore,其中的功能(通過API下載)包含一個id屬性。當我嘗試在網格面板中表示所有功能時,所有其他屬性都被正確表示(名稱,描述等),但該ID以某種方式被OpenLayers對象的ID覆蓋,例如「OpenLayers_Feature_Vector_363」,而不是「原始「int id。OpenLayers覆蓋功能編號

我的店被定義如下:

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? 謝謝!

回答

0

@Alexander:謝謝你的回答,我現在沒有運氣試過,實際上它好像id是未定義的。這很奇怪,因爲所有其他字段都被正確讀取,我確定該字段的類型是整數。

[編輯]由於我沒有找到爲什麼OpenLayers覆蓋屬性的id,它發生之前,我可以做任何映射到原來的id屬性,我試圖和設法編輯我的GeoJSON格式,以便將一個recordId屬性添加到要素的屬性並將其設置爲等於原始ID。 換句話說,我編輯下載的JSON,然後將其解析並添加爲OpenLayers特徵向量,我添加了recordId屬性,然後使用這個而不是'id'。

我希望我的解決方案能幫助有同樣問題的人!

0

您是否嘗試過使用

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

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

檢查是否ID從數據正確讀取?

您是否玩過idProperty商店的配置選項,即將其設置爲someNonExistentIdProp