我在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});
}
});
答案 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源,并在您已加载时刷新商店内容。