我有一个带标记的地图,我想制作标记点击表以显示一些基本信息。
我是Sencha的新手,我需要建议我应该在侦听器函数中实现什么才能获得与单击列表项相同的效果:
例如,这是我的maprender函数代码
var lat = 37.428607;
var lng = -122.169344;
var latLng = new google.maps.LatLng(lat, lng);
var marker = new google.maps.Marker({
position: latLng,
map: gmap,
draggable: false,
animation: google.maps.Animation.DROP,
title: 'cool'
});
var contentString = 'bla bla bla';
var infowindow = new google.maps.InfoWindow({
content: contentString
});
google.maps.event.addListener(marker, 'click', function() {
/* here comes something that will make my detail list visible with the marker details*/
});
我想让它的工作方式与我在我的列表中使用的“itemtap”功能相同......就像这样:
onMyListItemTap: function(dataview, index, target, record, e, options) {
this.setActiveItem('detalji');this.down('#back').show();
this.down('#detalji').setData(record.data);
}
答案 0 :(得分:0)
Github为Sencha Touch 1提供了一个很好的例子......我相信它被称为世界地图。如果您解压缩(应用程序位于众多文件夹中的一个),您可以看到谷歌地图将有多个自定义标记。此项目对于学习非常有用,因为它不仅显示自定义地图标记,还显示标记点击上的弹出式叠加。
我还没有适应Sencha Touch 2,但它不应该太难......这里有一些示例代码(添加了多个标记后):
google.maps.event.addListener(marker, 'click', function()
{
if (!this.popup)
{
this.popup = new Ext.Panel(
{
floating: true,
modal: true,
centered: true,
width: 500,
styleHtmlContent: true,
scroll: 'vertical',
items:[{
xtype:'button',
ui:'round',
text:'See Country Profile',
handler:goToCountryWrapper,
scope : this
},
(new countryOverlay(country)).overlayPanel
],
layout: {
type: 'auto',
padding: '55',
align: 'left'
},
dockedItems: [{
dock: 'top',
xtype: 'toolbar',
title: country.title
}],
});
};
this.popup.show('pop');
});
另外,根据我对Sencha Touch 2的理解,您必须在地图控制器中放置一个监听器(MyApp.map.controller文件)....阅读关于refs的内容,因为refs'发现'您已定义的标记,并为该项添加一个监听器。
如果您有任何进展,请发布您的发现: - )