传送门 ☞ 轮子的专栏 ☞ 转载请注明 ☞ http://blog.csdn.net/leverage_1229

在GIS服务平台构建完毕之后,我们就要着手在此平台上提供服务以供客户端请求访问。

1数据发布

1.1添加源数据

打开Tomcat服务器安装目录的\geoserver\data\data子目录,在该目录下新建名为usr的文件夹,将一张.TIFF图像(栅格数据)存放到这里。

1.2登录GeoServer

访问http://localhost:8080/geoserver/web/页面,输入admin和geoserver后,点击“登录”按钮。

1.3设置工作区

点击左边Data栏的Workspaces选项,设置自己的工作区间。并填写区间名称和命名空间URL,点击“提交”按钮。

进入刚创建好的工作区间,开启该区间的WMS服务功能。点击“保存”按钮。 

1.4设置数据源

点击左边Data栏的Stores选项,设置自己的数据源。我们的源数据是TIF格式的,所以选择数据源时注意对应数据类型。

添加数据源,工作区间选择刚刚创建好的sample,并填写数据源名称。最后选择连接参数(这里要关联到第一步存放的TIF文件),找到该文件后,点击“保存”按钮。

1.5设置图层

点击左边Data栏的Layers选项,添加图层的来源选择前面几步设置好的sample:university。

点击“Publish”链接来到如下页面,为当前图层配置资源和发布信息。填写“Declared SRS”和“Lat/Lon Bounding Box”两项后,点击“保存”按钮。

1.6预览图层

点击左边Data栏的Layer Preview,找到前面设置好的图层:sample:wuhanuniversity。

点击该图层的“OpenLayers”链接,出现如下界面,标示数据已经发布成功。 

2数据访问

GeoServer已经成功发布了数据,也就是说GIS服务平台已经提供了WMS服务,接下来客户端浏览器就要请求该服务。

2.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 οnlοad="init()"><div id="map" class="smallmap"></div><ul id="controlToggle"><li><input type="radio" name="type" value="none" id="noneToggle" οnclick="toggleControl(this);" checked="checked" /><label for="noneToggle">Navigate</label></li><li><input type="radio" name="type" value="point" id="pointToggle" οnclick="toggleControl(this);" /><label for="pointToggle">Draw Point</label></li><li><input type="radio" name="type" value="line" id="lineToggle" οnclick="toggleControl(this);" /><label for="lineToggle">Draw Line</label></li><li><input type="radio" name="type" value="polygon" id="polygonToggle" οnclick="toggleControl(this);" /><label for="polygonToggle">Draw Polygon</label></li><li><input type="radio" name="type" value="box" id="boxToggle" οnclick="toggleControl(this);" /><label for="boxToggle">Draw Box</label></li><li><input type="checkbox" name="allow-pan" value="allow-pan" id="allowPan" οnclick="allowPan(this);" checked=true /><label for="allowPan">Allow Pan While Drawing</label></li></ul></body></html>

2.2访问服务提供数据

在浏览器地址栏输入http://localhost:8080/webMapServer/wuda.html,出现如下页面,标示客户端已经能够成功访问服务端提供的服务数据。

转载于:https://www.cnblogs.com/innosight/p/3271167.html

遵循Java EE标准规范的开源GIS服务平台之三:数据发布与访问相关推荐

  1. 遵循Java EE标准体系的开源GIS服务平台之三:数据发布与访问

    传送门☞Android兵器谱☞转载请注明☞http://blog.csdn.net/leverage_1229 传送门☞系统架构设计☞转载请注明☞http://blog.csdn.net/levera ...

  2. 遵循Java EE标准体系的开源GIS服务平台之一:平台架构

    传送门☞Android兵器谱☞转载请注明☞http://blog.csdn.net/leverage_1229 传送门☞系统架构设计☞转载请注明☞http://blog.csdn.net/levera ...

  3. 遵循Java EE标准体系的开源GIS服务平台之二:平台部署

    传送门☞Android兵器谱☞转载请注明☞http://blog.csdn.net/leverage_1229 传送门☞系统架构设计☞转载请注明☞http://blog.csdn.net/levera ...

  4. 【转】JAVA EE 6 规范综述

    目录 1.JAVA EE规范综述 2.JAVA EE整体架构 3.JAVA EE规范的角色划分图 4.JAVA EE平台依赖的J2SE API 5.JAVA EE平台的版本变迁 6.JAVA EE平台 ...

  5. java ee规范_测试Java EE 8规范

    java ee规范 Java EE 8平台肯定在过去的几个月中一直在发展. 规范已经发布了早期的草案评审,里程碑甚至最终版本. 实际上,随着JSF 2.3的发布,JSR-372才刚刚进入最终版本. 有 ...

  6. 测试Java EE 8规范

    Java EE 8平台肯定在过去的几个月中一直在发展. 规范已经发布了早期的草案评审,里程碑甚至最终版本. 实际上,随着JSF 2.3的发布,JSR-372才刚刚进入最终版本. 有关更多信息,请参见 ...

  7. RedHat发布JBoss 7.2,完全支持Java EE 8规范

    edHat发布了JBoss 7.2,完全支持Java EE 8规范.这个版本将另一个应用程序服务器引入到Jakarta EE中.它还支持现代Web技术,例如具有HTTP/2功能的Servlet 4.0 ...

  8. 开源企业级数字化服务平台——Choerodon猪齿鱼发布0.8版本

    Choerodon猪齿鱼是一个开源企业服务平台,是基于Kubernetes的容器编排和管理能力,整合DevOps工具链.微服务和移动应用框架,来帮助企业实现敏捷化的应用交付和自动化的运营管理的开源平台 ...

  9. 管网管理GIS服务平台有何功能?

    伴随着科技的发展,愈来愈多的城市地区在各种各样基本建设中开始应用GIS系统,智能化系统的管理城市规划建设,推动城市地区的智能化系统发展趋势. GIS系统,便是运用GIS空间数据管理技术,将客户很感兴趣 ...

最新文章

  1. 防止重复提交订单-(转)
  2. 小程序获取用户手机号_社区团购小程序应该如何推广才能获取更多用户?
  3. Python-----多线程threading用法
  4. DataTable ,XML和JSON相互转化
  5. wikioi 3027 线段覆盖 2
  6. 原生编辑器_免费开源的GIF制作神器,可录屏幕/摄像头/画板,自带编辑器
  7. 在汇编程序中调用C函数
  8. 如何在 ASP.NET Core 中为 gRPC 服务添加全局异常处理 ?
  9. php iframe js加载不上,js iframe的onload事件不去作用的原因及解决办法
  10. Ubuntu Eclipse ns3编译中 遇到的OSError 系列问题
  11. OrzFAng系列–树 解题报告
  12. python输出unicode对应字符_python unicode字符串
  13. 分布式系统的完整介绍
  14. 第一章 python基础
  15. Linux VPS 免费管理面板推荐
  16. 银行核心系统的清算与结算
  17. 网站备案 服务器不在一个地方,域名和服务器不在一个 如何备案
  18. Grafana画图表教程
  19. DGA 域名生成和检测算法
  20. ubuntu 启动无故出现 ACPI ERROR

热门文章

  1. 02 ansible核心模块 之 shell script
  2. CSS 的三种样式 内联 内部 外部
  3. 【快速入门ORM框架之Dapper】大牛勿进系列
  4. Git-根据tag创建分支
  5. 上传图片实时显示 兼容 ie11
  6. CSS核心的几个概念
  7. jsp 静态资源 打入jar
  8. java中after什么意思_Java中的即时isAfter()方法
  9. 7-5 素数判断 (10 分)
  10. 7-4 求下一天 (30 分)