gpt4 book ai didi

google-maps - Sencha Touch - 在 Maprender 之后向 map 添加标记

转载 作者:行者123 更新时间:2023-12-04 15:15:03 25 4
gpt4 key购买 nike

在我从 ajax 请求加载一些 json 数据后,我想在 sencha touch 中将标记加载到我的 map 上。问题是在触发 maprender 事件后我不知道如何实现这一点。
我有这个:

我的 map View :

app.views.MapTab = Ext.extend(Ext.Panel, {
iconCls: 'map',
id: 'map',
items: [{
xtype: 'map',
id: 'mapa',
mapOptions : {
center : new google.maps.LatLng(50.077721, 14.448585),
zoom : 12,
mapTypeId : google.maps.MapTypeId.ROADMAP,
navigationControl: true,
navigationControlOptions: {
style: google.maps.NavigationControlStyle.DEFAULT
}
},
listeners : {
'maprender' : function(comp, map){
Ext.dispatch({
controller: app.controllers.map,
action: 'map_rendered',
map: map
});
}
}
}],
initComponent: function() {
app.views.MapTab.superclass.initComponent.apply(this, arguments);
}
});

存储加载json:
app.stores.results = new Ext.data.Store({
model: "app.models.Results",
proxy: {
type: 'ajax',
url: 'http://app.cz/json_list2.php?a=l&zp=1&u=vinohrady-praha&c0=500000&c1=6000000&p0=10&p1=120&cm20=1000&cm21=120000&pg=0&s=Datumu&t=byt&age=30&pod=0&lat=50.075401&lng=14.458344&pp=prodej&tp0=0&tp1=12',
reader: {
type: 'json',
root: 'markers'
}
},
listeners: {
'load': function (t, r, s) {
Ext.dispatch({
controller: app.controllers.map,
action: 'loaded',
records: r
});
}
}
});

Controller
app.controllers.map = new Ext.Controller({

loaded: function(options) {
for(var i = 0; i < options.records.length; i++){
var marker = new google.maps.Marker({
position: new google.maps.LatLng(options.records[i].get('lat'), options.records[i].get('lng')),
map: app.views.mapTab.getComponent('mapa')
});
}
// need to rerender/refresh the map here
},

map_rendered: function(options) {
console.log("map rendered");
}

});

最佳答案

您的代码应该可以工作,但您将标记附加到 Sencha Touch Map 组件而不是底层的 Google Maps map ,可以使用“ map ”属性访问。

...
var marker = new google.maps.Marker({
position: new google.maps.LatLng(options.records[i].get('lat'), options.records[i].get('lng')),
**map: app.views.mapTab.getComponent('mapa').map**
});
...

map 不需要手动重新渲染,只需在将它们与 map 配置绑定(bind)时添加它们。

关于google-maps - Sencha Touch - 在 Maprender 之后向 map 添加标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6726693/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com