基于DeeGree的Web Service配置过程

基于DeeGree的Web Service配置过程


发布日期: 2016-10-27 更新日期: 2016-10-27 编辑:玲玲 浏览次数: 3514

标签:

摘要: 在我们的学习过程中,我们可能会用到基于deegree的web service的配置,所以我们要了解一下它的配置过程,防患于未然,所以现在我们来了解下基于deegree的web service 的配置过程。 前期准备工作: 须安装JDK(JRE)来支持WMS...

在我们的学习过程中,我们可能会用到基于deegree的web service的配置,所以我们要了解一下它的配置过程,防患于未然,所以现在我们来了解下基于deegree的web service 的配置过程。

前期准备工作:

  1. 须安装JDK(JRE)来支持WMS、Viewer、WCS、WFS、等正常工作,这里选用较新版本jdk-1_5_0_01-windows-i586-p.exe,可以在java.sun.com上下载;

  2. 须安装Tomcat支持Web Service(JSP)服务,这里选用jakarta-tomcat-5.0.28.exe版本,可以从apache.org上下载;

  3. 设置Java环境变量,如下: 我的电脑->属性->高级->环境变量(Windows 2000环境) 添加以下环境变量(java安装在C:/Program Files/Java/jdk1.5.0_01) 那么

<pre class="brush:py"> java_home=C:/Program Files/Java/jdk1.5.0_01 classpath=.;C:/ProgramFiles/Java/jdk1.5.0_01/lib/dt.jar;C:/ProgramFiles/Java/jdk1.5.0_01/lib/tools.jar;(.; </pre>

已经不能少,因为它代表当前路径)

<pre class="brush:py"> path= C:/Program Files/Java/jdk1.5.0_01/bin </pre>

配置Web Service:

[1]解压缩文件夹到deegreewms(矢量地图服务),deegreewfs(地理信息特征服务),deegreewcs(栅格地图服务);

[2]WCS(栅格地图服务)配置: 增加新层(即自己的新数据): TileImageTree(TileImgeTree2)分割图像,其说明如下:

<1> Tile Image所支持的格式有: JPG,JPEG,TIF,TIFF,GeoTIFF,GIF,PNG,BMP,IMG(IDRISI二进制文件)等常见的栅格图像格式。

<2>分割参数如下:

-i:被割文件的路径(包括名字和后缀),是必须的;

-o:输出文件的路径,是必须的;

-f:输出格式(,bmp,,jpg,gif,,png, tif),默认jpg;

-r:分割图像时的分辨率,此参数与你采用的CRS有关,应该用逗号分开表示,如: 1.0,0.5,0.25

参数的长度和你要生成的级数相同,例如: 假设在EPSG:4326 (-180°, -90°, 180°, 90°)的世界地图,它有720x360像素因此每个像素覆盖了0.5°x0.5°,因此地图的比例尺应是0.5°;

-s:开始分割图像的地方(可选,默认为0);

-q:图像的质量(可选,默认为1(最佳)),只有当源图像是JPG的时候才有作用;

-k:所割图像相关的参照系(可选,默认为EPSG:4326);

<3>割图的头文件说明如下: [a]在非GeoTIFF图像格式的情况下,分割时必须有头文件支持,头文件(包含地理信息) 有如下后缀:

.tfw,.wld,.jgw,.jpgw,.gfw,.gifw,.pgw,.pngw;

以上的后缀格式有的是如ERDAS IMAGINE等支持的,如.tfw 一般头文件中的地理信息有六条,以.tfw和.wld为例,说明头文件所包含的地理信息:

<pre class="brush:py"> [tfw]:

30.00000000000000
0.00000000000000
0.00000000000000
-30.00000000000000
20353736.40955999900000
3545868.09360700010000

</pre>

  • Line1: 每个像素的水平尺度(这里单位是:米);
  • Line2,3:Koeffizient旋转(大多数情况是值是0)
  • Line4: 每个像素的垂直尺度(这里单位是:米);
  • Line5,6:左上角像素在相关CRS中的坐标(这里是Transverse Mercator?高斯克里格?)。

<pre class="brush:py"> [.wld]: 0.00833333376795 0.00000000000000 0.00000000000000 -0.00833333376795 -19.99583244323731 89.99583435058594 </pre>

  • Line1: 每个像素的水平尺度(这里单位是:度);
  • Line2,3:Koeffizient旋转(大多数情况是值是0)
  • Line4: 每个像素的垂直尺度(这里单位是:度);
  • Line5,6:左上角像素在相关CRS中的坐标(这里是经纬度)。

由上可知,其中Line1,4的单位是于我们采用的何种CRS有关。以上的Line1,4,5,6是分割图像时写入.xml文件生成Bounding Box的重要参数,日后访问WCS时候框定图像范围的重要参数 [b]在为GeoTIFF的图像格式情况下,由于GeoTIFF是带有地理信息TIFF文件,头文件支持因此不需要的。分割时读入GeoTIFF里的地理信息来产生.xml中的Bounding Box的参数;

<4>分割时候的参数设置如下: <pre class="brush:py"> java-Xms300m-Xmx1000m -classpath .;./WEB-INF/lib/deegree-2003-09-12.jar;./WEB-INF/lib/jai_codec.jar;./WEB-INF/lib/jai_core.jar;./WEB-INF/lib/mlibwrapper_jai.jar TileImageTree

-I "C:/deegreewcs/WEB-INF/data/europe.jpg" 输入路径

-o "C:/deegreewcs/WEB-INF/data" 输出路径

-r 0.064,0.032,0.16,0.008 分辨率(为每个象素跨度的倍数)

-f jpg -q 0.95 -k EPSG:4326 输出格式(jpg),质量,参照系 </pre> pause xml的修改:

/deegreewcs/WEB-INF/xml/wcs_capabilities.xml中增加一层参数(GridCoverageLayer)

[a]修改descriptorResource=file:///C:/deegreewcs/WEB-INF/geo/gvDesc.xml 使之指向新增加层的描述文档(xml),即这里的/geo/gvDesc.xml

[b]修改LatLonBoundingBox的minx,maxx,miny,maxy

[c]Xextent,Yextentd的minx,maxx,miny,maxy

[d] RangeID, title修改为自己的ID和名字

WCS中栅格数据的访问 路径,以Europe为例,其访问的路径是:

http://127.0.0.1:8080/deegreewcs/wcs?

SERVICE=WCS&amp;VERSION=0.7.0&amp;REQUEST=GetCoverage&amp;LAYER=europe&amp;SRS=EPSG:4326&amp;BBOX=-40,30,40,80&amp;WIDTH=600&amp;HEIGHT=400&amp;FORMAT=jpg

关键参数:

(1) SERVICE:WCS(访问的是WCS的服务);

(2) VERSION:WCS的版本号;

(3) REQUEST:GetCoverage操作;

(4) LAYER:层名;

(5) SRS:参照系;

(6) BBOX:访问的范围(根据图像数据在相应参照系的地理范围而定);

(7) WIDTH,HEIGHT:图像显示的大小;

(8) FORMAT:图像的格式;

WCS中GetCapabilities的访问

<pre class="brush:py"> http://127.0.0.1:8080/deegreewcs/wcs?

SERVICE=WCS&amp;
VERSION=0.7.0&amp;
REQUEST=GetCapabilities

</pre>

注意事项:

[1]大小写

[2]版本的问题,例如这里是0.7.0 否则访问会有问题

[3]WMS(矢量地图服务)配置(By 肖喜伢)

一、WMS服务如何加入自己的矢量数据。

采用杭州街区的矢量文件做试验。在Mapinfo下面Export成shape文件,这时候文件为高斯投影,在ArcMap下面转换为WGS84坐标系。对应 EPSG:4326 = WGS84
如何加入自己的层:主要是修改deegreewms/WEB-INF/xml目录下面的xml配置文件 先修改sample_wms_capabilities.xml文件 在Layer标签下面加入自己的层:主要修改Name和 Title标签,以及SRS投影坐标 还有注意LatLonBoundingBox的范围,杭州地区街区图的范围,在arcmap里大概测量一下为:<LatLonBoundingBox minx="119.463" miny="29.8" maxx="120.367" maxy="30.55"/> 例如: <pre class="brush:py"> <!--hangzhou--> <Layer queryable="0" cascaded="0" noSubsets="0"> <Title>xxy layers</Title> <Abstract>layers for the cite WMS implementation</Abstract>

                &lt;Layer queryable=&quot;1&quot; noSubsets=&quot;0&quot; fixedWidth=&quot;0&quot; fixedHeight=&quot;0&quot;&gt;
                    &lt;Name&gt;xxy:hz&lt;/Name&gt;
                    &lt;Title&gt;xxy:hz&lt;/Title&gt;
                    &lt;SRS&gt;EPSG:4326&lt;/SRS&gt;
                    &lt;LatLonBoundingBox minx=&quot;-1&quot; miny=&quot;-1&quot; maxx=&quot;1&quot; maxy=&quot;1&quot;/&gt;
                    &lt;Style&gt;
                        &lt;Name&gt;BlueFill&lt;/Name&gt;
                    &lt;/Style&gt;
                &lt;/Layer&gt;
                &lt;Layer queryable=&quot;1&quot; noSubsets=&quot;0&quot; fixedWidth=&quot;0&quot; fixedHeight=&quot;0&quot;&gt;
                    &lt;Name&gt;xxy:hz2&lt;/Name&gt;
                    &lt;Title&gt;xxy:hz2&lt;/Title&gt;
                    &lt;SRS&gt;EPSG:4326&lt;/SRS&gt;
                    &lt;LatLonBoundingBox minx=&quot;119.463&quot; miny=&quot;29.8&quot; maxx=&quot;120.367&quot; maxy=&quot;30.55&quot;/&gt;
                    &lt;Style&gt;
                        &lt;Name&gt;BlueFill&lt;/Name&gt;
                    &lt;/Style&gt;
                &lt;/Layer&gt;
        &lt;/Layer&gt;

</pre>

由于DeeGree的层如果不制定DataSource,(参考DeeGree的WMS的说明文档),默认是用LOCALWFS。所以接下来修改LOCALWFS_capabilities.xml文件,加入自己的层的FeatureType,例如: 主要修改SRS和Name等信息。

<pre class="brush:py"> <FeatureType> <ResponsibleClass className="org.deegree_impl.services.wfs.shape.ShapeDataStore" configURL="file:///C:/deegreewms/WEB-INF/xml/demo_config.xml"/> <Name>xxy:hz</Name> <SRS>EPSG:4326</SRS> <LatLonBoundingBox minx="-1" miny="-1" maxx="1" maxy="1"/> </FeatureType>

        &lt;FeatureType&gt;
            &lt;ResponsibleClass className=&quot;org.deegree_impl.services.wfs.shape.ShapeDataStore&quot; configURL=&quot;file:///C:/deegreewms/WEB-INF/xml/demo_config.xml&quot;/&gt;
            &lt;Name&gt;xxy:hz2&lt;/Name&gt;
            &lt;SRS&gt;EPSG:4326&lt;/SRS&gt;
            &lt;LatLonBoundingBox minx=&quot;119.463&quot; miny=&quot;29.8&quot; maxx=&quot;120.367&quot; maxy=&quot;30.55&quot;/&gt;
        &lt;/FeatureType&gt;

</pre>

最后修改demo_config.xml文件,加入自己的层的信息,例如:` 修改name, tagetName等信息。注意加入的Shape文件存放的路径,这里是在C:/deegreewms/WEB-INF/data/xxy下面

<pre class="brush:py"> <FeatureType name="xxy:hz"> <OutputFormat> <GML2 responsibleClass="org.deegree_impl.services.wfs.shape.SHPDataStoreOutputGML"/> <FEATURECOLLECTION responsibleClass="org.deegree_impl.services.wfs.shape.SHPDataStoreOutputFC"/> </OutputFormat> <MasterTable name="file:///C:/deegreewms/WEB-INF/data/xxy/xxyLakes" targetName="hz"> <!-- name of the table column that stores the id of a feature --> <IdField number="false" auto="false">NAME</IdField> <GeoFieldIdentifier>GEOM</GeoFieldIdentifier> </MasterTable> <CRS>EPSG:4326</CRS> </FeatureType> <FeatureType name="xxy:hz2"> <OutputFormat> <GML2 responsibleClass="org.deegree_impl.services.wfs.shape.SHPDataStoreOutputGML"/> <FEATURECOLLECTION responsibleClass="org.deegree_impl.services.wfs.shape.SHPDataStoreOutputFC"/> </OutputFormat> <MasterTable name="file:///C:/deegreewms/WEB-INF/data/xxy/Export_Output_3" targetName="hz2"> <!-- name of the table column that stores the id of a feature --> <IdField number="false" auto="false">NAME</IdField> <GeoFieldIdentifier>GEOM</GeoFieldIdentifier> </MasterTable> <CRS>EPSG:4326</CRS> </FeatureType> </pre>

修改配置完毕。下面进行测试: 启动Tomcat。打开ie浏览器,进入

<pre class="brush:py"> http://127.0.0.1:8080/deegreewms/ </pre>

敲入下面url测试: 图层hz:

<pre class="brush:py"> http://127.0.0.1:8080/deegreewms/wms?

service=WMS&amp;VERSION=1.1.1&amp;REQUEST=GetMap&amp;LAYERS=xxy:hz&amp;STYLES=default&amp;SRS=EPSG:4326&amp;BBOX=-0.005,-0.005,0.005,0.005&amp;WIDTH=640&amp;HEIGHT=410&amp;FORMAT=image/png&amp;BGCOLOR=0xfff8ff&amp;TRANSPARENT=true&amp;EXCEPTIONS=application/vnd.ogc.se_inimage

</pre>

图层hz2:

<pre class="brush:py"> http://127.0.0.1:8080/deegreewms/wms?

service=WMS&amp;VERSION=1.1.1&amp;REQUEST=GetMap&amp;LAYERS=xxy:hz2&amp;STYLES=default&amp;SRS=EPSG:4326&amp;BBOX=119.5,30,120.34,30.43&amp;WIDTH=640&amp;HEIGHT=410&amp;FORMAT=image/png&amp;BGCOLOR=0xfff8ff&amp;TRANSPARENT=true&amp;EXCEPTIONS=application/vnd.ogc.se_inimage

</pre>

可修改BBOX等参数来测试生成新的图。

二、WMS加入栅格数据

DeeGree的WMS加入栅格数据,主要通过与WCS配合。

在sample_wms_capabilities.xml里面可以看到这样的层:

<pre class="brush:py"> <Layer> <Name>europe:physical</Name> <Title>europe:physical</Title> <LatLonBoundingBox minx="-180" miny="-90" maxx="180" maxy="90"/> <DataSource> <Type>LOCALWCS</Type> </DataSource> <ScaleHint min="0" max="100000"/> </Layer> </pre>

DataSource制定了LOCALWCS访问方式。于是通过LOCALWCS_capabilities.xml文件来获得配置。

在LOCALWCS_capabilities.xml文件中有下列配置

<pre class="brush:py"> <wcs:CoverageLayerList>

        &lt;wcs:GridCoverageLayer descriptorResource=&quot;file:///C:/deegreewms/WEB-INF/data/raster/gvDesc.xml&quot;&gt;
            &lt;wcs:LayerID&gt;europe:physical&lt;/wcs:LayerID&gt;
            &lt;wcs:Title&gt;europe:physical&lt;/wcs:Title&gt;

</pre>

所以还需要在gvDesc.xml文件中来配置。其具体方法可以参看DeeGree的WCS的documentation。

[4]WFS(地理特征服务)

(待续)

iGeoPortal(wmsClient)的配置

  1. 修改/igeoportal/WEB-INF/下的Web.xml的参数: Handler.configFile &amp; MapContext.configFile 的路径修改,分别为:

<pre class="brush:py"> igeoportal/WEB-INF/xml/controller.xml /igeoportal/WEB-INF/xml/mapcontext1.xml </pre>

  1. 相应的mapcotext1.xml里的路径修改

关注公众号
获取免费资源

随机推荐


Copyright © Since 2014. 开源地理空间基金会中文分会 吉ICP备05002032号

Powered by TorCMS

OSGeo 中国中心 邮件列表

问题讨论 : 要订阅或者退订列表,请点击 订阅

发言 : 请写信给: osgeo-china@lists.osgeo.org