传送门☞Android兵器谱☞转载请注明☞http://blog.csdn.net/leverage_1229
传送门☞系统架构设计☞转载请注明☞http://blog.csdn.net/leverage_1229
传送门☞GoF23种设计模式☞转载请注明☞http://blog.csdn.net/leverage_1229
在GIS服务平台构建完毕之后,我们就要着手在此平台上提供服务以供客户端请求访问。
一、数据发布
1.添加源数据
打开Tomcat服务器安装目录的\geoserver\data\data子目录,在该目录下新建名为usr的文件夹,将一张.TIFF图像(栅格数据)存放到这里。
2.登录GeoServer
访问
http://localhost:8080/geoserver/web/页面,输入admin和geoserver后,点击“登录”按钮。
3.设置工作区
点击左边Data栏的Workspaces选项,设置自己的工作区间。并填写区间名称和命名空间URL,点击“提交”按钮。
进入刚创建好的工作区间,开启该区间的WMS服务功能。点击“保存”按钮。
4.设置数据源
点击左边Data栏的Stores选项,设置自己的数据源。我们的源数据是TIF格式的,所以选择数据源时注意对应数据类型。
添加数据源,工作区间选择刚刚创建好的sample,并填写数据源名称。最后选择连接参数(这里要关联到第一步存放的TIF文件),找到该文件后,点击“保存”按钮。
5.设置图层
点击左边Data栏的Layers选项,添加图层的来源选择前面几步设置好的sample:university。
点击“Publish”链接来到如下页面,为当前图层配置资源和发布信息。填写“Declared SRS”和“Lat/Lon Bounding Box”两项后,点击“保存”按钮。
6.预览图层
点击左边Data栏的Layer Preview,找到前面设置好的图层:sample:wuhanuniversity。
点击该图层的“OpenLayers”链接,出现如下界面,标示数据已经发布成功。
二、数据访问
GeoServer已经成功发布了数据,也就是说GIS服务平台已经提供了WMS服务,接下来客户端浏览器就要请求该服务。
1.构建html静态网页
使用OpenLayers类库结合动态网页技术构建wuda.html,用于向服务端发送请求。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title> WuHan University : WMS </title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<meta name="apple-mobile-web-app-capable" content="yes">
<link rel="stylesheet" href="./script/OpenLayers/theme/default/style.css" type="text/css" />
<link rel="stylesheet" href="./script/OpenLayers/style.css" type="text/css">
<script type="text/javascript" src="./script/OpenLayers/OpenLayers.js"></script>
<script type="text/javascript">
var map, drawControls;
var bounds = new OpenLayers.Bounds(114.34795499999998, 30.524327, 114.36603512820511, 30.536327);
function init() {
map = new OpenLayers.Map({
div: 'map',
maxExtent: bounds,
projection: "EPSG:4326",
units: 'degrees'
});
var wmsLayer = new OpenLayers.Layer.WMS(
"University WMS",
"http://127.0.0.1:8080/geoserver/sample/wms?", {
layers: "sample:wuhanuniversity",
format: "image/png",
singleTile: true
}
);
var pointLayer = new OpenLayers.Layer.Vector("Point Layer");
var lineLayer = new OpenLayers.Layer.Vector("Line Layer");
var polygonLayer = new OpenLayers.Layer.Vector("Polygon Layer");
var boxLayer = new OpenLayers.Layer.Vector("Box Layer");
map.addLayers([wmsLayer, pointLayer, lineLayer, polygonLayer, boxLayer]);
map.addControl(new OpenLayers.Control.PanZoomBar());
map.addControl(new OpenLayers.Control.LayerSwitcher());
/*map.addControl(new OpenLayers.Control.ScaleLine());
map.addControl(new OpenLayers.Control.Permalink('permalink'));*/
map.addControl(new OpenLayers.Control.MousePosition());
/*map.addControl(new OpenLayers.Control.OverviewMap());
map.addControl(new OpenLayers.Control.KeyboardDefaults());*/
drawControls = {
point : new OpenLayers.Control.DrawFeature(pointLayer, OpenLayers.Handler.Point),
line : new OpenLayers.Control.DrawFeature(lineLayer, OpenLayers.Handler.Path),
polygon : new OpenLayers.Control.DrawFeature(polygonLayer, OpenLayers.Handler.Polygon),
box : new OpenLayers.Control.DrawFeature(boxLayer,
OpenLayers.Handler.RegularPolygon, {
handlerOptions: {
sides: 4,
irregular: true
}
}
)
};
for(var key in drawControls) {
map.addControl(drawControls[key]);
}
map.zoomToExtent(bounds);
document.getElementById('noneToggle').checked = true;
}
function toggleControl(element) {
for(key in drawControls) {
var control = drawControls[key];
if(element.value == key && element.checked) {
control.activate();
} else {
control.deactivate();
}
}
}
function allowPan(element) {
var stop = !element.checked;
for(var key in drawControls) {
drawControls[key].handler.stopDown = stop;
drawControls[key].handler.stopUp = stop;
}
}
</script>
</head>
<body onload="init()">
<div id="map" class="smallmap"></div>
<ul id="controlToggle">
<li>
<input type="radio" name="type" value="none" id="noneToggle" onclick="toggleControl(this);" checked="checked" />
<label for="noneToggle">Navigate</label>
</li>
<li>
<input type="radio" name="type" value="point" id="pointToggle" onclick="toggleControl(this);" />
<label for="pointToggle">Draw Point</label>
</li>
<li>
<input type="radio" name="type" value="line" id="lineToggle" onclick="toggleControl(this);" />
<label for="lineToggle">Draw Line</label>
</li>
<li>
<input type="radio" name="type" value="polygon" id="polygonToggle" onclick="toggleControl(this);" />
<label for="polygonToggle">Draw Polygon</label>
</li>
<li>
<input type="radio" name="type" value="box" id="boxToggle" onclick="toggleControl(this);" />
<label for="boxToggle">Draw Box</label>
</li>
<li>
<input type="checkbox" name="allow-pan" value="allow-pan" id="allowPan" onclick="allowPan(this);" checked=true />
<label for="allowPan">Allow Pan While Drawing</label>
</li>
</ul>
</body>
</html>
分享到:
相关推荐
精通Java EE:精通Java EE 整合应用案例\源代码第三章
Java EE Web编程(Eclipse平台) 李芝兴 本书的4-18章全部源文件 自己买的书带光盘,把源文件传上来了
并提供使用最新版本NetBeans IDE和GIassFish服务器开源版的有关说明书中不仅介绍了平台的基础知识,包括资源创建、资源注入和打包,还涵盖了多项相关技术,包括JavaServer Faces(JSF)、Java Servlet、WebSocket Java...
《轻量级Java EE企业应用实战:Struts2+Spring4+Hibernate整合开发(第4版)》介绍了Java EE领域的三个开源框架:Struts 2、Spring和Hibernate。其中Struts 2升级到2.3.16.3,Spring升级到4.0.4,Hibernate升级到...
JavaEE课程设计报告-基于Java EE身体健康管理平台.pdfJavaEE课程设计报告-基于Java EE身体健康管理平台.pdfJavaEE课程设计报告-基于Java EE身体健康管理平台.pdfJavaEE课程设计报告-基于Java EE身体健康管理平台....
本毕业设计首先论述了系统的开发背景和设计目标,并对系统开发所采用的技术进行相应的简单...系统设计的技术选择:采用java ee、数据库使用开源的Mysql、服务器采用Tomcat;本系统的设计是只有一种用户,就是系统管理员
Java EE知识体系结构,用图解的形式详细讲述了Java EE整体的知识架构。
DateFormat,Calendar、文件与流、Java变量类型间的相互转换、Java与Web、用连接池提高Servlet访问数据库的效率、Java扩展、应用服务器的集群策略及Java EE 5.0、Java IO 包中的Decorator模式等。
基于Java EE平台项目管理系统的设计与实现.docx基于Java EE平台项目管理系统的设计与实现.docx基于Java EE平台项目管理系统的设计与实现.docx基于Java EE平台项目管理系统的设计与实现.docx基于Java EE平台项目管理...
1.2 Java EE的分层模型和平台组成 4 1.2.1 Java EE的分层模型 4 1.2.2 Java EE的结构变形 5 1.2.3 Java EE平台的组成 7 1.3 Java EE参与人员的角色 9 1.4 开发工具Eclipse 10 1.5 小结 13 第2章 使用...
为了使读者对JAVA EE编程技术获得全面系统的了解,《Java EE Web开发实例精解》以JAVA EE Web应用系统的逻辑加构为主线,通过多个典型工程实例对上述三个层次的开发技术和编程技巧进行讲解,并对同一实例的多个解决...
PDF还算清晰,我是能坚持着看完,有目录,有源码.
Java EE -Hibernate 开源解决方案,供大家学习适用~~~~~~
并提供使用最新版本NetBeans IDE和GIassFish服务器开源版的有关说明书中不仅介绍了平台的基础知识,包括资源创建、资源注入和打包,还涵盖了多项相关技术,包括JavaServer Faces(JSF)、Java Servlet、WebSocket Java...
精通Java EE:精通Java EE 整合应用案例\源代码第五章
Java EE兼容性测试套件 - 兼容性测试套件用于检验Java EE平台产品是否符合Java EE平台标准。 Java EE可参考的实现- 一个可参考的实现是一个Java EE 应用程序原型,提供一套可行的Java EE平台定义。 Java EE蓝图 - ...