Выкладываю код здесь.
Ext.require([
'Ext.container.Viewport',
'Ext.window.MessageBox',
'GeoExt.panel.Map',
'Ext.layout.container.Border',
'GeoExt.tree.Panel',
'Ext.tree.plugin.TreeViewDragDrop',
'GeoExt.panel.Map',
'GeoExt.panel.Legend',
'GeoExt.tree.OverlayLayerContainer',
'GeoExt.tree.BaseLayerContainer',
'GeoExt.data.LayerTreeModel',
'GeoExt.tree.View',
'GeoExt.tree.LayerNode',
'GeoExt.container.WmsLegend',
'GeoExt.tree.Column',
'Ext.util.Point'
]);
Ext.application({
name: 'Геоинформационный портал Пензенской области',
launch: function(){
var map = new OpenLayers.Map("map", {
projection: "EPSG:3857",
displayProjection: "EPSG:4326",
units: 'degree',
numZoomLevels: 20,
//allOvelays: true
});
map.addControl(new OpenLayers.Control.ScaleLine());
map.addControl(new OpenLayers.Control.Attribution());
map.addControl(new OpenLayers.Control.MousePosition());
var google_satellite = new OpenLayers.Layer.Google("Google Satellite",
{
type: google.maps.MapTypeId.SATELLITE
},
{
isBaseLayer: true
}
);
var dochetv_web = new OpenLayers.Layer.WMS("Дочетвертичные отложения",
"
http://localhost:8080/geoserver/spatial_pnz/wms",
{
layers: "dochetv_web",
transparent: true,
format: 'image/png',
},
{
isBaseLayer: false,
singleTile: true,
visibility: true
}
);
var chetv_web = new OpenLayers.Layer.WMS("Неоген-четвертичные отложения",
"
http://localhost:8080/geoserver/spatial_pnz/wms",
{
layers: "chetv_web",
transparent: true,
format: 'image/png',
},
{
isBaseLayer: false,
singleTile: true,
visibility: true
}
);
var atd_web = new OpenLayers.Layer.WMS("Административное деление",
"
http://localhost:8080/geoserver/spatial_pnz/wms",
{
layers: "atd_web",
transparent: true,
format: 'image/png',
},
{
isBaseLayer: false,
singleTile: true,
visibility: true
}
);
var nas_punkt_web = new OpenLayers.Layer.WMS("Населенные пункты",
"
http://localhost:8080/geoserver/spatial_pnz/wms",
{
layers: "nas_punkt_web",
transparent: true,
format: 'image/png',
},
{
isBaseLayer: false,
singleTile: true,
visibility: true
}
);
map.addLayers([google_satellite, dochetv_web, chetv_web, atd_web, nas_punkt_web]);
var mappanel = Ext.create('GeoExt.panel.Map', {
title: 'Геоинформационный портал Пензенской области',
map: map,
center: [5012860.948, 7021052.071],
region: "center",
zoom: 8
});
var store = Ext.create('Ext.data.TreeStore', {
model: "GeoExt.data.LayerTreeModel",
root: {
text: 'Слои',
expanded: true,
children: [{
text: 'Административное устройство',
expanded: true,
leaf: false,
children: [{
text: 'Административное деление',
layer: atd_web,
leaf: true,
checked: true,
nodeType: 'gx_overlaylayercontainer'
}, {
text: 'Населенные пункты',
layer: nas_punkt_web,
leaf: true,
checked: true,
nodeType: 'gx_overlaylayercontainer'
}],
}, {
text: 'Природа',
leaf: false,
expanded: true,
children: [{
text: 'Неоген-четвертичные отложения',
layer: chetv_web,
leaf: true,
checked: true,
nodeType: 'gx_overlaylayercontainer'
}, {
text: 'Дочетвертичные отложения',
layer: dochetv_web,
leaf: true,
checked: true,
nodeType: 'gx_overlaylayercontainer'
}],
}, {
text: 'Базовые карты',
leaf: false,
expanded: true,
children: [{
text: 'Google Спутник',
layer: google_satellite,
leaf: true,
checked: true,
nodeType: 'gx_baselayercontainer'
}],
}],
},
});
var tree = Ext.create('GeoExt.tree.Panel', {
border: true,
region: "west",
title: "Layers",
width: 200,
split: true,
store: store,
collapsible: true,
collapseMode: "mini",
autoScroll: true,
rootVisible: true,
lines: true
});
var legendPanel = Ext.create('GeoExt.panel.Legend', {
defaults: {
labelCls: 'mylabel'
},
border: true,
title: "Legend",
width: 200,
split: true,
collapsible: true,
collapseMode: "mini",
autoScroll: true,
region: "east"
});
Ext.create('Ext.container.Viewport', {
layout: 'fit',
rtl: false,
hideBorders: false,
items: {
layout: 'border',
defferedRender: false,
items: [mappanel, tree, legendPanel]
}
});
}
});