2012-04-12 14 views
3

Google Mapを使用するSencha Touch 2で作成したアプリケーションがあります。マップは、JSONファイルからストアでロードされたいくつかのマーカーの位置を表示します。私の質問は、店舗からマーカーを読み取るにはどうすればいいですか?店舗のデータを使ってマーカーを生成するにはどうすればよいですか?Google maps markerとSencha touch 2

これは私が持っているものであると私はインライン配列 "地域" を持っているので、それを見つけるに取り組んでいる:

地図:

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: '' 
      } 
     } 
    } 
}); 

配列 - マーカー "近傍"をマップクラスに使用するため、すべて正常に動作しますが、ファイル '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}); 
    } 

}); 

答えて

0

これは場合に誰かが答えを探していますされています。これは、再びURLソースをロードすると更新されますので、

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); 
     } 
    }); 
}, 

は注意してください既に読み込んだ場合のストアコンテンツ。