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

出处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,用于向服务端发送请求。 

[html]  view plain copy print ?
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  2.  <html>  
  3.   <head>  
  4.    <title> WuHan University : WMS </title>  
  5.    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
  6.    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">  
  7.    <meta name="apple-mobile-web-app-capable" content="yes">  
  8.    <link rel="stylesheet" href="./script/OpenLayers/theme/default/style.css" type="text/css" />  
  9.    <link rel="stylesheet" href="./script/OpenLayers/style.css" type="text/css">  
  10.    <script type="text/javascript" src="./script/OpenLayers/OpenLayers.js"></script>  
  11.    <script type="text/javascript">  
  12.   
  13.      var map, drawControls;  
  14.      var bounds = new OpenLayers.Bounds(114.34795499999998, 30.524327, 114.36603512820511, 30.536327);  
  15.        
  16.      function init() {  
  17.        map = new OpenLayers.Map({  
  18.          div: 'map',  
  19.          maxExtent: bounds,  
  20.          projection: "EPSG:4326",  
  21.          units: 'degrees'  
  22.        });  
  23.   
  24.        var wmsLayer = new OpenLayers.Layer.WMS(  
  25.          "University WMS",   
  26.          "http://127.0.0.1:8080/geoserver/sample/wms?", {  
  27.             layers: "sample:wuhanuniversity",   
  28.             format: "image/png",  
  29.             singleTile: true  
  30.          }  
  31.        );  
  32.          
  33.        var pointLayer = new OpenLayers.Layer.Vector("Point Layer");  
  34.        var lineLayer = new OpenLayers.Layer.Vector("Line Layer");  
  35.        var polygonLayer = new OpenLayers.Layer.Vector("Polygon Layer");  
  36.        var boxLayer = new OpenLayers.Layer.Vector("Box Layer");   
  37.            
  38.        map.addLayers([wmsLayer, pointLayer, lineLayer, polygonLayer, boxLayer]);  
  39.          
  40.        map.addControl(new OpenLayers.Control.PanZoomBar());  
  41.        map.addControl(new OpenLayers.Control.LayerSwitcher());  
  42.        /*map.addControl(new OpenLayers.Control.ScaleLine());  
  43.        map.addControl(new OpenLayers.Control.Permalink('permalink'));*/  
  44.        map.addControl(new OpenLayers.Control.MousePosition());  
  45.        /*map.addControl(new OpenLayers.Control.OverviewMap());  
  46.        map.addControl(new OpenLayers.Control.KeyboardDefaults());*/  
  47.          
  48.        drawControls = {  
  49.          point : new OpenLayers.Control.DrawFeature(pointLayer, OpenLayers.Handler.Point),  
  50.          line : new OpenLayers.Control.DrawFeature(lineLayer, OpenLayers.Handler.Path),  
  51.          polygon : new OpenLayers.Control.DrawFeature(polygonLayer, OpenLayers.Handler.Polygon),  
  52.          box : new OpenLayers.Control.DrawFeature(boxLayer,   
  53.            OpenLayers.Handler.RegularPolygon, {  
  54.              handlerOptions: {  
  55.                sides: 4,  
  56.                irregular: true  
  57.              }  
  58.            }  
  59.          )  
  60.        };  
  61.          
  62.        for(var key in drawControls) {  
  63.          map.addControl(drawControls[key]);  
  64.        }  
  65.          
  66.        map.zoomToExtent(bounds);  
  67.          
  68.        document.getElementById('noneToggle').checked = true;  
  69.      }  
  70.        
  71.      function toggleControl(element) {  
  72.        for(key in drawControls) {  
  73.          var control = drawControls[key];  
  74.          if(element.value == key && element.checked) {  
  75.            control.activate();  
  76.          } else {  
  77.            control.deactivate();  
  78.          }  
  79.        }  
  80.      }  
  81.        
  82.      function allowPan(element) {  
  83.        var stop = !element.checked;  
  84.        for(var key in drawControls) {  
  85.          drawControls[key].handler.stopDown = stop;  
  86.          drawControls[key].handler.stopUp = stop;  
  87.        }  
  88.      }  
  89.    </script>  
  90.   </head>  
  91.   <body onload="init()">  
  92.    <div id="map" class="smallmap"></div>  
  93.    <ul id="controlToggle">  
  94.      <li>  
  95.        <input type="radio" name="type" value="none" id="noneToggle" onclick="toggleControl(this);" checked="checked" />  
  96.        <label for="noneToggle">Navigate</label>  
  97.      </li>  
  98.      <li>  
  99.        <input type="radio" name="type" value="point" id="pointToggle" onclick="toggleControl(this);" />  
  100.        <label for="pointToggle">Draw Point</label>  
  101.      </li>  
  102.      <li>  
  103.        <input type="radio" name="type" value="line" id="lineToggle" onclick="toggleControl(this);" />  
  104.        <label for="lineToggle">Draw Line</label>  
  105.      </li>  
  106.      <li>  
  107.        <input type="radio" name="type" value="polygon" id="polygonToggle" onclick="toggleControl(this);" />  
  108.        <label for="polygonToggle">Draw Polygon</label>  
  109.      </li>  
  110.      <li>  
  111.        <input type="radio" name="type" value="box" id="boxToggle" onclick="toggleControl(this);" />  
  112.        <label for="boxToggle">Draw Box</label>  
  113.      </li>  
  114.      <li>  
  115.        <input type="checkbox" name="allow-pan" value="allow-pan" id="allowPan" onclick="allowPan(this);" checked=true />  
  116.        <label for="allowPan">Allow Pan While Drawing</label>  
  117.      </li>  
  118.    </ul>  
  119.   </body>  
  120.  </html>  

2.2访问服务提供数据

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值