var layout = Ext.create('Ext.panel.Panel', {
//renderTo: 'layout',
width: window.innerWidth,
height: window.innerHeight,
//title: 'Border Layout', //no title will be blank
layout: 'border',
items: [{
title: 'Message List',
region: 'south', // position for region
xtype: 'panel',
height: 100,
split: true, // enable resizing
collapsible: true,
margins: '0 5 5 5',
collapsed: true
},tree,{
xtype: 'gmappanel',
region: 'center',
id : 'mygooglemap',
center: new google.maps.LatLng(3.951941, 102.052002),
mapOptions: {
zoom: 7,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
}],
renderTo: Ext.getBody() //get the body and display Layout at there
});
});
function addInfoWindow(lat,lng) {
var map123 = Ext.getCmp('mygooglemap');
var latLng = new google.maps.LatLng(lat, lng);
map123.SetCenter(latLng);
}
为什么我不能将地图设置为坐标的中心?
Firebug出现此错误
TypeError: map123.setCenter is not a function
[Break On This Error]
map123.setCenter(latLng);
我的GMapPanel.js从https://raw.github.com/VinylFox/ExtJS.ux.GMapPanel/master/src/GMapPanel3.js下载 然后我把它放在我的localhost / ux / GMapPanel3.js中 这是我使用GMapPanel之前的配置
Ext.Loader.setPath('Ext.ux', 'ux/');
Ext.require([
'Ext.tree.*',
'Ext.data.*',
'Ext.window.MessageBox',
'Ext.window.*',
'Ext.ux.GMapPanel'
]);
但未设置中心,为什么?
答案 0 :(得分:0)
我假设您正在使用此处的插件:https://github.com/VinylFox/ExtJS.ux.GMapPanel
假设情况属实,从查看代码开始,您需要在调用getMap()
之前在gmappanel
上使用setCenter()
:
map123.getMap().setCenter(latLng);
或者,您可以在配置setCenter
时指定gmappanel
属性:
{
xtype: 'gmappanel',
region: 'center',
id : 'mygooglemap',
setCenter: {
lat: 3.951941,
long: 102.052002
},
mapOptions: {
zoom: 7,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
}
ExtJS / Javascript的一大优点是您可以访问所有库的代码。当您看到“xxx不是函数”之类的错误时,它应该是非常明显的:您尝试使用的函数在您调用它的对象上不可用。