OpenLayer

将一OpenLayer集成到Panel里面
扩展一个MapPanel继承自Ext.Panel
在prototype里加入

MapPanel =function()
{
...
}
Ext.extend(MapPanel,Ext.Panel,{

updateStatus:function(info)
{
Ext.fly(this.mapInfo.getEl()).update("坐标信息:"+info,true);
}
,initMap:function()
{
var lon = 5;
var lat = 40;
var zoom = 5;
var map, layer;
map = new OpenLayers.Map( 'regionMap', { controls: [] } );//'regionMap'为html页面上的一个div子元素,与MapPanel的ContentEl为同一个
//map = new OpenLayers.Map(mapPanel,{controls:[]});
layer = new OpenLayers.Layer.WMS( "OpenLayers WMS",
"http://labs.metacarta.com/wms/vmap0", {layers: 'basic'} );
map.addLayer(layer);

var vlayer = new OpenLayers.Layer.Vector( "Editable" );
map.addLayer(vlayer);


var zb = new OpenLayers.Control.ZoomBox(
{title:"Zoom box: Selecting it you can zoom on an area by clicking and dragging."});
var panel = new OpenLayers.Control.Panel({defaultControl: zb});
panel.addControls([
new OpenLayers.Control.MouseDefaults(
{title:'You can use the default mouse configuration'}),
zb,
new OpenLayers.Control.DrawFeature(vlayer, OpenLayers.Handler.Path,
{title:'Draw a feature'}),
new OpenLayers.Control.ZoomToMaxExtent({title:"Zoom to the max extent"})
]);
map.addControl(panel);
map.setCenter(new OpenLayers.LonLat(lon, lat), zoom);

map.events.register("mousemove", map, function(e) {
var position = this.events.getMousePosition(e);
//Ext.fly(mapInfo.getEl()).update("坐标信息:"+position,true);
//this.updateStatus1(position);
var mapPanel = Ext.getCmp("regionMap");
if(mapPanel)
mapPanel.updateStatus(position);
else
this.updateStatus(position);//此处不能调用prototype函数,也不能调用function内部的私有函数.郁闷
});
this.doLayout();
}
});

var mapPanel =new MapPanel();
mapPanel.initMap();
///
我想通过定制一个Panel的plugin或者扩展一个,但是不会,谁能教教我?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值