<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta http-equiv="refresh" content="300"> <!--每隔300秒自动刷新-->
<title>平面图</title>
<script type="text/javascript" src="ext/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="ext/ext-all.js"></script>
<script type="text/javascript" src="OpenLayers/OpenLayers.js"></script>
<script type="text/javascript" src="geoext/lib/GeoExt.js"></script>
<script type="text/javascript" src="js/jeegoocontext_1_3/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="js/GeoWebCache.js"></script>
<link rel="stylesheet" type="text/css" href="ext/resources/css/ext-all.css">
<script type="text/javascript">
var mapSRS,jpegFormat,geoserverWFSUrl,featureNameSpace;
try{
var map;
var mapPanel,store,gridPanel,mainPanel;
var mapUnits;
var geoserverWMTSUrl;
Ext.onReady(function() {
mapSRS = "EPSG:2385",jpegFormat = "image/jpeg",mapUnits = "meters";
geoserverWFSUrl = "http://192.168.122.114:8989/geoserver/wfs";
geoserverWMTSUrl = "http://192.168.122.114:8989/geoserver/gwc/service/wms";
featureNameSpace = "http://localhost:8989/";
var mode = 0;
switch (mode) {
case 0: // 调用WMTS
var mapBounds = new OpenLayers.Bounds(1474755,576879,1537217,599560);
var options = {
resolutions: [82.83203125,41.416015625,20.7080078125],
projection: new OpenLayers.Projection(mapSRS),
units: mapUnits,
maxExtent: mapBounds
};
map = new OpenLayers.Map("map",options);
var baseLayer = new OpenLayers.Layer.WMS(
"底图",
geoserverWMTSUrl, {
layers: "seari:nb7_extent",
format: jpegFormat
},{
tileSize: new OpenLayers.Size(256,256),
displayInLayerSwitcher: false
}
);
map.addLayers([baseLayer]);
break;
}
// 添加图层
var layer1 = CreateLayer("新建墙体","nb7_layer1","#00946A"); // 74
var layer2 = CreateLayer("建筑墙体","nb7_layer2","#000482"); // 175
//var layer3 = CreateLayer("顶面主要造型","nb7_layer3","#AB00AB") // 97
var layer4 = CreateLayer("玻璃","nb7_layer4","#009696"); // 136
var layer5 = CreateLayer("景观","nb7_layer5","#4CE600"); // 2367
var layer6 = CreateLayer("通-尺寸","nb7_layer6","#009E08"); // 750
var layer7 = CreateLayer("平面洁具","nb7_layer7","#A65B00"); // 288
var layer8 = CreateLayer("地面填充","nb7_layer8","#004799"); // 3
var layer9 = CreateLayer("完成厚面","nb7_layer9","#A32E00"); // 10
var layer10 = CreateLayer("消防楼梯","nb7_layer10","#991700"); // 174
var layer11 = CreateLayer("活动家具","nb7_layer11","#05008F"); // 588
var layer12 = CreateLayer("门套","nb7_layer12","#001E82"); // 38
var layer13 = CreateLayer("柱体框线","nb7_layer13","#009C9C"); // 139
var layer14 = CreateLayer("门","nb7_layer14","#828282"); // 1193
var layer15 = CreateLayer("电梯桥箱","nb7_layer15","#329E00"); // 48
// 面图层
var layer0 = CreateThematicLayer("客流分布","nb7_floor");
map.addLayers([layer0,layer1,layer2,layer4,layer5,layer6,layer7,layer8,layer9,layer10,layer11,layer12,layer13,layer14,layer15]);
map.zoomToMaxExtent();
mapPanel = new GeoExt.MapPanel({
title: "平面图",
region: "center",
height: 650,
width: 900,
map: map
});
store = new GeoExt.data.FeatureStore({
layer: layer0,
fields: [
{name: 'RoomNum', tyep: 'string'},
{name: 'Num', tyep: 'integer'}
],
proxy: new GeoExt.data.ProtocolProxy({
protocol: new OpenLayers.Protocol.WFS({
version: "1.1.0",
url: geoserverWFSUrl,
featureType: "nb7_floor",
featureNS: featureNameSpace,
srsName: mapSRS,
geometryName: "the_geom"
})
}),
autoLoad: true
});
store.sort("RoomNum","ASC"); // 排序
gridPanel = new Ext.grid.GridPanel({
title: "客流统计",
region: "east",
store: store,
width: 150,
columns: [{
header: "房间号",
width: 60,
dataIndex: "RoomNum"
},{
header: "客流数(人)",
width: 90,
dataIndex: "Num"
}]
});
mainPanel = new Ext.Panel({
renderTo: "mainPanel",
layout: "border",
height: 650,
width: 1050,
items: [mapPanel,gridPanel]
});
var treeControl = new Ext.tree.TreePanel({
renderTo: "toc",
title: "图层控制",
border: true,
region: "west",
width: 150,
collapsible: true, // 折叠TreePanel
collapseMode: "mini",
root: new GeoExt.tree.LayerContainer({
text: "平面图",
layerStore: mapPanel.layers,
leaf: false,
expanded: true
}),
rootVisible: true, // 显示根节点
lines: true // 显示根节点与子节点的关联线
});
});
} catch (e) {
alert(e);
}
function CreateLayer(layerName,featType,color){
var styleMap = new OpenLayers.StyleMap({
"default": new OpenLayers.Style({
"strokeColor": color,
"strokeWidth": 0.8
})
});
var layer = new OpenLayers.Layer.Vector(layerName,{
strategies: [new OpenLayers.Strategy.BBOX()],
projection: new OpenLayers.Projection(mapSRS),
protocol: new OpenLayers.Protocol.WFS({
version: "1.1.0",
url: geoserverWFSUrl,
featureType: featType,
featureNS: featureNameSpace,
srsName: mapSRS,
geometryName: "the_geom"
}),
styleMap: styleMap
}
);
return layer;
}
function CreateThematicLayer(layerName,featType){
// 创建客流分布专题图层
var rule0 = new OpenLayers.Rule({
filter: new OpenLayers.Filter.Comparison({
type: OpenLayers.Filter.Comparison.EQUAL_TO,
property: "Num",
value: 0
}),
symbolizer: {
fillColor: "#C3C3C3",
fillOpacity: .6,
label: '${Num}',
fontColor: "#000000",
strockColor: "#6E6E6E",
strockWidth: 1
}
});
var rule1 = new OpenLayers.Rule({
filter: new OpenLayers.Filter.Comparison({
type: OpenLayers.Filter.Comparison.BETWEEN,
property: "Num",
lowerBoundary: 1,
upperBoundary: 5
}),
symbolizer: {
fillColor: "#38A800",
fillOpacity: .6,
label: '${Num}',
fontColor: "#000000",
strockColor: "#6E6E6E",
strockWidth: 1
}
});
var rule2 = new OpenLayers.Rule({
filter: new OpenLayers.Filter.Comparison({
type: OpenLayers.Filter.Comparison.BETWEEN,
property: "Num",
lowerBoundary: 5,
upperBoundary: 10
}),
symbolizer: {
fillColor: "#8BD100",
fillOpacity: .6,
label: '${Num}',
fontColor: "#000000",
strockColor: "#6E6E6E",
strockWidth: 1
}
});
var rule3 = new OpenLayers.Rule({
filter: new OpenLayers.Filter.Comparison({
type: OpenLayers.Filter.Comparison.BETWEEN,
property: "Num",
lowerBoundary: 10,
upperBoundary: 15
}),
symbolizer: {
fillColor: "#FFFF00",
fillOpacity: .6,
label: '${Num}',
fontColor: "#000000",
strockColor: "#6E6E6E",
strockWidth: 1
}
});
var rule4 = new OpenLayers.Rule({
filter: new OpenLayers.Filter.Comparison({
type: OpenLayers.Filter.Comparison.BETWEEN,
property: "Num",
lowerBoundary: 15,
upperBoundary: 20
}),
symbolizer: {
fillColor: "#FF8000",
fillOpacity: .6,
label: '${Num}',
fontColor: "#000000",
strockColor: "#6E6E6E",
strockWidth: 1
}
});
var rule5 = new OpenLayers.Rule({
filter: new OpenLayers.Filter.Comparison({
type: OpenLayers.Filter.Comparison.GREATER_THAN,
property: "Num",
value: 20
}),
symbolizer: {
fillColor: "#FF0000",
fillOpacity: .6,
label: '${Num}',
fontColor: "#000000",
strockColor: "#6E6E6E",
strockWidth: 1
}
});
var styles = new OpenLayers.Style();
styles.addRules([rule0,rule1,rule2,rule3,rule4,rule5]);
var styleMap = new OpenLayers.StyleMap({
'default': styles
});
var layer = new OpenLayers.Layer.Vector(layerName,{
strategies: [new OpenLayers.Strategy.BBOX()],
projection: new OpenLayers.Projection(mapSRS),
protocol: new OpenLayers.Protocol.WFS({
version: "1.1.0",
url: geoserverWFSUrl,
featureType: featType,
featureNS: featureNameSpace,
srsName: mapSRS,
geometryName: "the_geom"
}),
styleMap: styleMap,
attribution: "<img src='legend.png' />"
}
);
return layer;
}
</script>
</head>
<body>
<table style="width:100%;height:100%">
<tr>
<td style="width: 10%;height: 100%">
<div id="toc" style="width: 100%;height: 100%"></div>
</td>
<td style="width: 90%;height: 100%">
<div id="mainPanel" style="width: 100%;height: 100%"></div>
</td>
</tr>
</table>
</body>
</html>
OpenGIS应用(1)
最新推荐文章于 2022-08-26 09:23:27 发布