Web Service配置过程(基于DeeGree)

该博客介绍了Web Service的配置与访问。前期需安装JDK和Tomcat并设置Java环境变量。详细说明了WCS的配置,包括增加新层、图像分割参数、头文件说明等,还介绍了WCS中栅格数据和GetCapabilities的访问。此外,阐述了WMS加入矢量和栅格数据的配置及测试方法,以及iGeoPortal的配置。

前期准备:

 

[1]须安装JDKJRE)来支持WCSWFSWMSViewer等正常工作,这里选用较新版本jdk-1_5_0_01-windows-i586-p.exe,可以在java.sun.com上下载;

 

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

 

[3]设置Java环境变量,如下:

我的电脑->属性->高级->环境变量(Windows 2000环境)

添加以下环境变量(java安装在C:/Program Files/Java/jdk 1.5.0 _01)

那么

java_home=C:/Program Files/Java/jdk 1.5.0 _01

classpath=.;C:/ProgramFiles/Java/jdk 1.5.0 _01/lib/dt.jar;C:/ProgramFiles/Java/jdk1.5.0_01/lib/tools.jar;.;已经不能少,因为它代表当前路径)

path= C:/Program Files/Java/jdk 1.5.0 _01/bin

 

配置Web Service

 

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

 

[2]WCS(栅格地图服务)配置:

增加新层(即自己的新数据):

TileImageTreeTileImgeTree2)分割图像,其说明如下:

<1> Tile Image所支持的格式有:

JPGJPEGTIFTIFFGeoTIFFGIFPNGBMPIMGIDRISI二进制文件)等常见的栅格图像格式。

<2>分割参数如下:

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

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

-f:输出格式(gif,bmp,jpg,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为例,说明头文件所包含的地理信息:

[tfw]

30.00000000000000

0.00000000000000

0.00000000000000

-30.00000000000000

20353736.40955999900000

3545868.09360700010000

Line1   每个像素的水平尺度(这里单位是:米);

Line23Koeffizient旋转(大多数情况是值是0)

Line4     每个像素的垂直尺度(这里单位是:米);

Line56:左上角像素在相关CRS中的坐标(这里是Transverse Mercator?高斯克里格?)。

[.wld]

0.00833333376795

0.00000000000000

0.00000000000000

-0.00833333376795

-19.99583244323731

89.99583435058594

Line1   每个像素的水平尺度(这里单位是:度);

Line23Koeffizient旋转(大多数情况是值是0)

Line4     每个像素的垂直尺度(这里单位是:度);

Line56:左上角像素在相关CRS中的坐标(这里是经纬度)。

由上可知,其中Line14的单位是于我们采用的何种CRS有关

 

以上的Line1456是分割图像时写入.xml文件生成Bounding Box的重要参数,日后访问WCS时候框定图像范围的重要参数

 

[b]在为GeoTIFF的图像格式情况下,由于GeoTIFF是带有地理信息TIFF文件,头文件支持因此不需要的。分割时读入GeoTIFF里的地理信息来产生.xml中的Bounding Box的参数;

<4>分割时候的参数设置如下:

java-Xms 300m -Xmx 1000m -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),质量,参照系

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]修改LatLonBoundingBoxminx,maxx,miny,maxy

[c]Xextent,Yextentdminx,maxx,miny,maxy

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

WCS中栅格数据的访问

路径,以Europe为例,其访问的路径是:

http://127.0.0.1:8080/deegreewcs/wcs?SERVICE=WCS&VERSION= 0.7.0 &REQUEST=GetCoverage&LAYER=europe&SRS=EPSG:4326&BBOX=-40,30,40,80&WIDTH=600&HEIGHT=400&FORMAT=jpg

关键参数:

(1)       SERVICEWCS(访问的是WCS的服务);

(2)       VERSIONWCS的版本号;

(3)       REQUESTGetCoverage操作;

(4)       LAYER:层名;

(5)       SRS:参照系;

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

(7)       WIDTHHEIGHT:图像显示的大小;

(8)       FORMAT:图像的格式;

WCSGetCapabilities的访问

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

SERVICE=WCS&

VERSION= 0.7.0 &

REQUEST=GetCapabilities

注意事项:

[1]大小写

[2]版本的问题,例如这里是 0.7.0

否则访问会有问题

 

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

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

采用杭州街区的矢量文件做试验。在Mapinfo下面Exportshape文件,这时候文件为高斯投影,在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"/>

 

例如

<!-- hangzhou -->

                     <Layer queryable="0" cascaded="0" noSubsets="0">

                            <Title>xxy layers</Title>

                            <Abstract>layers for the cite WMS implementation</Abstract>

                    

                            <Layer queryable="1" noSubsets="0" fixedWidth="0" fixedHeight="0">

                                   <Name>xxy:hz</Name>

                                   <Title>xxy:hz</Title>

                                   <SRS>EPSG:4326</SRS>

                                   <LatLonBoundingBox minx="-1" miny="-1" maxx="1" maxy="1"/>

                                   <Style>

                                          <Name>BlueFill</Name>

                                   </Style>

                            </Layer>

                            <Layer queryable="1" noSubsets="0" fixedWidth="0" fixedHeight="0">

                                   <Name>xxy:hz2</Name>

                                   <Title>xxy:hz2</Title>

                                   <SRS>EPSG:4326</SRS>

                                   <LatLonBoundingBox minx="119.463" miny="29.8" maxx="120.367" maxy="30.55"/>

                                   <Style>

                                          <Name>BlueFill</Name>

                                   </Style>

                            </Layer>

                     </Layer>

 

由于DeeGree的层如果不制定DataSource,(参考DeeGreeWMS的说明文档),默认是用LOCALWFS

 

所以接下来修改LOCALWFS_capabilities.xml文件,加入自己的层的FeatureType,例如:

主要修改NameSRS等信息。

<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>

             

              <FeatureType>

                     <ResponsibleClass className="org.deegree_impl.services.wfs.shape.ShapeDataStore" configURL="file:///C:/deegreewms/WEB-INF/xml/demo_config.xml"/>

                     <Name>xxy:hz2</Name>

                     <SRS>EPSG:4326</SRS>

                     <LatLonBoundingBox minx="119.463" miny="29.8" maxx="120.367" maxy="30.55"/>

              </FeatureType>

 

最后修改demo_config.xml文件,加入自己的层的信息,例如:

修改name, tagetName等信息。

注意加入的Shape文件存放的路径,这里是在C:/deegreewms/WEB-INF/data/xxy下面

 

<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>

 

修改配置完毕。下面进行测试:

启动Tomcat

打开ie浏览器,进入http://127.0.0.1:8080/deegreewms/

敲入下面url测试:

图层hz

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

图层hz2

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

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

二、WMS加入栅格数据

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

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

       <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>

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

       LOCALWCS_capabilities.xml文件中有下列配置

<wcs:CoverageLayerList>

              <wcs:GridCoverageLayer descriptorResource="file:///C:/deegreewms/WEB-INF/data/raster/gvDesc.xml">

                     <wcs:LayerID> europe :physical</wcs:LayerID>

                     <wcs:Title> europe :physical</wcs:Title>

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

 

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

(待续)

 

 

iGeoPortalwmsClient的配置

 

[1]修改/igeoportal/WEB-INF/下的Web.xml的参数:

Handler.configFile & MapContext.configFile的路径修改,分别为:

igeoportal/WEB-INF/xml/controller.xml

/igeoportal/WEB-INF/xml/mapcontext1.xml

[2]相应的mapcotext1.xml里的路径修改

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值