2014-09-04 69 views
0

我是Extjs4.2/OL/Geoext2開發新手,我對它應該如何工作感到困惑。如何在FeatureStore和AJAX後端之間交換數據?

---編輯---

我試圖寫一個小程序來讀取GeoJSON的,在地圖上放置讀功能,讓用戶編輯/繪製新的,並最終將它們保存回到GeoJSON。我的當前方法: OpenLayers.Layer.Vector綁定到Geoext.data.FeatureStore。 圖層讀取GeoJSON,並填充FeatureStore。

現在我的問題 - 如何將用戶數據修改後保存到GeoJSON? 我可以通過FeatureStore將數據保存爲JSON,但我沒有看到讓FetureStore保存GeoJSON的簡單方法。我應該使用矢量圖層來保存GeoJSON,還是嘗試添加某種類型的轉換以將特徵的幾何特徵添加到FeatureStore,然後同步()存儲?

---編輯---

已經通過插入另一個屬性的模式做到了這一點:

{ 
    name: 'geom', 
    convert: function(value, record) { 
    return record.raw.geometry.toString(); 
    } 
} 

現在我FeatureStore節約與幾何GeoJSON的狀輸出,這是確定我。

問題:這是否是正確的方法?

問候,帕維爾

+0

我們可以看到一些代碼嗎? – 2014-09-04 23:31:36

+0

我沒有發佈任何代碼,因爲我正在尋找一個通用問題的答案。我會試着重述一下我的問題...... – 2014-09-05 10:41:53

回答

1

我不是專家,但我認爲GeoExt.data.FeatureStore創建與層同步。所以,如果你做了一個store.sync()沒有更新請求將被髮送到您的遠程GeoJSON數據源。 GeoExt.data.FeatureStore構造函數從創建proxy: { type: 'memory', ...開始,因此您的原始代理將被替換爲此代理。要使用GeoExt.data.FeatureStore,你必須重寫它。

所以,我認爲最好的方法是使用一個OpenLayers.Protocol.Script源代碼,它非常靈活,配置爲使用遠程GeoJSON源代碼。使用圖層的保存策略,所有更新都將發送到遠程源。

問候!

相關問題