0

我有一个带有三个选项卡的选项卡面板。第三个选项卡是显示地图。我正在获取带有所需控件的地图,但它没有居中。点比选项卡的中心更偏西。所以我必须拖动地图将点带到 Tab 的中心。

选项卡面板代码

var infoPanel = new Ext.tab.Panel({
    id: 'guestTabPan',
    xtype: 'tabpanel',
    title: 'Site Information',
    autoDestroy: false,
    items:[
      {
        id: 'siteTab',
        title:'Site',
        items:[
           ....
        ]
      },{
        title: 'Pressure',
        id: 'pressureTab',
        items:[
          .....
        ]
      },{
        title: 'Map',
        id: 'mapTab',
        items:[ 
          {
            xtype: "panel",
            id: 'mapTabPanel',
            height: 1000,                         
            layout: 'fit',
            items:[
            ]
          }
        ]
      }
    ]
  });

地图代码

 var smallGoogleMap = {xtype: 'gmappanel',id :'gSmallSiteMap',width:'100%',height:1000,
            zoomLevel:10,
            gmapType: 'map',
            mapConfOpts: ['enableScrollWheelZoom','enableDoubleClickZoom','enableDragging'],
            mapControls: ['GSmallMapControl','GMapTypeControl','NonExistantControl'],
            setCenter: {
              lat: SiteLat,
              lng: SiteLng,
              marker:{ title: SiteTitle}
            }

};

Ext.getCmp('mapTabPanel').add(smallGoogleMap);

有什么猜测吗?

4

1 回答 1

0

如果您在激活有助于使地图居中的选项卡时调用 GMapPanel.js 的 this.getMap().setcenter。这个对我有用。现在 setCenter 不是单独的方法,至少不是我拥有的 js 文件,我在 Map Tab 的激活事件上添加了地图的中心点,如下所示,

{
   title: 'Map',
   id: 'mapTab',
   listeners: {
    'activate':{
       fn:function(){
         var gsm = Ext.getCmp('gSmallSiteMap');
         var mpoint = new GLatLng(mymarker.lat,mymarker.lng);
         gsm.addMarker(mpoint,mymarker.marker,false,true, mymarker.listeners);
       }
     }  
   },
   items:[ 
          ......
         ]
}
于 2013-02-01T21:01:53.657 回答