2012-03-12 36 views
2

我不能在我的谷歌地圖上使用sencha觸摸來放置任何標記。此代碼正常工作:sencha觸控地圖中的標記

Ext.setup({ 
    tabletStartupScreen: 'tablet_startup.png', 
    phoneStartupScreen: 'phone_startup.png', 
    icon: 'icon.png', 
    glossOnIcon: false, 
    onReady: function() { 
     var position = new google.maps.LatLng(36.830618975720746,10.1987886428833); 
     var position2 = new google.maps.LatLng(33.7580276912933,10.848312377929688); 
     var map = new Ext.Map({ 
      mapOptions: { 
       center: position 
      }, 
      listeners: { 
       delay: 500, 
       afterrender: function(){ 
        var marker = new google.maps.Marker({ 
         position: position, 
         title: 'helooooooo', 
         map: map.map 
        }); 
        var marker2 = new google.maps.Marker({ 
         position: position2, 
         title: 'helooooooo', 
         map: map.map 
        }); 
       } 
      } 
     }); 
     var icons = new Ext.TabPanel({ 
      fullscreen: true, 
      items: [{ 
       iconCls: 'bookmarks', 
       title: 'page principale', 
       cls: 'card card3', 
       html: 'Blaaaaaaaa' 
      }, { 
       iconCls: 'search', 
       title: 'MapTunis', 
       cls: '', 
       layout: 'fit', 
       items: map 
      }], 
      tabBar: { 
       scroll: { 
        direction: 'horizontal', 
        scrollbars: false 
       }, 
       layout: { 
        pack: 'center' 
       } 
      }, 
     }); 
    } 
}); 

我自己試過這段代碼,它工作正常。但是當我用xtype嘗試它時:無論我嘗試什麼,映射它都不會起作用。

App.views.Homegeoatm = Ext.extend(Ext.Panel, { 
    items: [{ 
     xtype: 'map', 
     id: 'map', 
     useCurrentLocation: true, 
     fullscreen: true, 
     markerDesc: "salam", 
     markerPos: new google.maps.LatLng (36.830618975720746,10.1987886428833), 
     mapOptions: { 
      zoom: 8 
     }, 
     listeners: { 
      delay: 500, 
      afterrender: function(){ 
       var marker = new google.maps.Marker({ 
        position: position = new google.maps.LatLng (36.830618975720746,10.1987886428833), 
        map: App.views.Homegeoatm.getComponent('map').map, 
       }); 
      } 
     } 
    }] 
}); 
Ext.reg('Homegeoatm', App.views.Homegeoatm); 

回答

5

您需要在地圖的「maprender」事件(而不是「afterrender」)上添加標記。試試這個:

listeners: { 
    maprender: function(extMapComponent, googleMapComp){ 
     var marker = new google.maps.Marker({ 
     position: new google.maps.LatLng (36.830618975720746,10.1987886428833), 
     map: googleMapComp, 
    }); 
} 

這應該工作(未測試)。