我有一个使用谷歌地图的 Sencha Touch 2 应用程序。该地图将显示从带有商店的 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: ''
}
}
}
});
到目前为止一切正常,因为我在地图类中使用了数组标记“neighborhoods”,但是如何使用商店从文件“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});
}
});