谷歌地图标记和Sencha touch 2

时间:2012-04-12 22:11:10

标签: google-maps sencha-touch-2

我在Sencha Touch 2中有一个使用谷歌地图的应用程序。地图将显示从带有Store的JSON文件加载的几个标记的位置。我的问题是,如何从我的商店阅读标记?如何使用商店中的数据生成标记?

这就是我所拥有的并且它正在工作,因为我有一个内联数组“邻居”:

地图:

Ext.define('MyApp.view.detalleMapa', {
    extend: 'Ext.Map',
    alias: 'widget.detallemapa',

    config: {
        listeners: [
            {
                fn: 'onMapMaprender',
                event: 'maprender'
            }
        ]
    },

    onMapMaprender: function(map, gmap, options) {

        var neighborhoods = [
        new google.maps.LatLng(52.511467, 13.447179),
        new google.maps.LatLng(52.549061, 13.422975),
        new google.maps.LatLng(52.497622, 13.396110),
        new google.maps.LatLng(52.517683, 13.394393)
        ];


        for (var i = 0; i < neighborhoods.length; i++) {
            var m = neighborhoods[i];

            new google.maps.Marker({
                position: m,
                map: gmap,
                draggable: false,
                animation: google.maps.Animation.DROP
            });
        }
    }

});

商店:

Ext.define('MyApp.store.itemsStore', {
    extend: 'Ext.data.Store',
    alias: 'store.itemsstore',
    requires: [
        'MyApp.model.modelo'
    ],

    config: {
        autoLoad: true,
        model: 'MyApp.model.modelo',
        storeId: 'itemsStoreId',
        proxy: {
            type: 'ajax',
            url: '/markersJsonFormat.json',
            reader: {
                type: 'json',
                rootProperty: ''
            }
        }
    }
});

到目前为止一切正常,因为我将数组标记“邻域”用于map-class,但是如何使用文件'markersJsonFormat.json'中存储加载的数组?

任何想法? 谢谢! :)

PD:这是我的应用程序:

Ext.application({
    requires: [
        'MyApp.view.override.detalleMapa'
    ],

    models: [
        'modelo'
    ],
    stores: [
        'itemsStore'
    ],
    views: [
        'principalTabPanel',
        'navegacionView',
        'itemsLista',
        'detalleMapa'
    ],
    name: 'MyApp',

    launch: function() {

        Ext.create('MyApp.view.detalleMapa', {fullscreen: true});
    }

});

1 个答案:

答案 0 :(得分:0)

这是有人看的答案:

onMapMaprender: function(map, gmap, options) {

    var store = Ext.getStore('itemsstore'); // Ext.getStore('StoreId')
    var count = store.getCount();
    //debugger;

    store.load({
        scope: this,
        callback: function(records) {
            //debugger;
            this.processTweets(records);
        }
    });
},

请注意,因为这会再次加载URL源,并在您已加载时刷新商店内容。