如何使用sencha touch加载GeoJson文件

时间:2012-10-16 09:51:43

标签: mobile sencha-touch jsonp geojson

我为一个带有sencha touch的移动应用程序项目工作,我的模型有一个问题来检索信息。 我将向您展示我的模型和我的json文件内容

json文件:(我只是为了测试而非常简单,我删除了几何线)

{
        "type": "FeatureCollection",
        "features": [
            {
            "properties": {"graphic": "img/restaurant.png","Name": "Igor Tihonov", "Country":"Sweden", "City":"Gothenburg"}
            }

        ]
}

我的模特:

 Ext.regModel('Features', {
        hasMany: {model: 'Properties', name: 'properties'}

    });


    Ext.regModel('Properties', {
        fields: ['graphic', 'Name', 'Country', 'City'],
        associations: [
            {type: 'belongsTo', model: 'Features'}
        ]
    });

商店:

 Ext.data.Store({
        model: 'Features',
        proxy: {
            type: 'ajax',
            url : 'poi2.json',
            reader: {
                type: 'json',
                rootProperty: 'features'
            }
        },
        autoLoad:true
    });

我被封锁了一个多星期,我希望你能帮助我! 谢谢

1 个答案:

答案 0 :(得分:0)

如果您没有使用'type'属性,我建议:

  • 失去第一个模型和所有关联
  • 将商店中的模型设置为“属性”(这样可行,因为您的rootProperty设置为'要素)
  • 更改您的JSON,因此属性不是您的JSON更深层次的其他级别:

    {  
        "type": "FeatureCollection",  
        "features": [  
            {  
                "graphic": "img/restaurant.png",  
                    "Name": "Igor Tihonov",   
                "Country":"Sweden",  
                "City":"Gothenburg"}  
            },  
            {  
                "graphic": "img/restaurant2.png",  
                "Name": "Igor Tihonov2",   
                "Country":"Sweden",  
                "City":"Gothenburg"}    
            }  
        ]  
    }  
    

[编辑]
要保持json格式,请使用以下方法:

  • 将rootproperty设置为'features'
  • 添加一个仅包含'hasMany'关联的'feature'模型到您的属性模型(包含实际字段)
  • 将商店的型号设置为您的要素模型

[/编辑]