我是Extjs4.2 / OL / Geoext2开发的新手,我对它应该如何运作感到困惑。
---编辑---
我正在尝试编写一个小应用程序来阅读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 :(得分:1)
我不是专家,但我认为创建GeoExt.data.FeatureStore是为了与图层同步。因此,如果您执行store.sync()
,则不会向您的远程GeoJSON数据源发送更新请求。 GeoExt.data.FeatureStore构造函数首先创建proxy: { type: 'memory', ...
,因此您的原始代理将被此替换。要使用GeoExt.data.FeatureStore,您必须重写它。
所以,我认为最好的方法是使用一个非常灵活的OpenLayers.Protocol.Script源,配置为使用远程GeoJSON源。使用图层的保存策略,所有更新都将发送到远程源。
问候!