GeoServer 2014年2月17日 2015年6月8日重构 2015年6月9日添加TMS等WEB服务 1 目标:GeoServer发布数据,实现浏览、查询、编辑等功能。GeoServer是OpenGIS Web服务器的J2EE开源实现,具有数据发布,在线编辑功能。早期需要使用Tomcat,现已具有独立运行的能力。 支持WMS、WFS、TMS等WebService,支持当前主流数据格式、支持常用数据库、支持常用的投影及图片格式输出。 参考:http://www./plus/view-195117-1.html http://www.cnblogs.com/beniao/archive/2011/01/11/1931028.html 2 方法:GeoServer的安装与配置2.1 安装当前版本为2.4.4。下载geoserver-2.4.4-bin,解压。 打开geoserver-2.4.4\bin\startup.bat,弹出命令行。 2.2 配置:Web控制页面在浏览器中打开http://localhost:8080/geoserver 用户名和密码:admin/geoserver 左侧是所有设置的入口(现在使用默认的就好,不用进行配置)。 3 方法:数据组织工作区(Workspace):最终用户所见数据。 数据存储(Data Store):物理数据的逻辑名称,可以是目录。 图层(Layer):单个图层。 图层组(Layer Group):可以将多个图层组织为一组。 样式(Style):图层的样式,SLD文件或代码。 4 方法:发布WMS目标:将地图数据发布为WEB服务,能够通过WEB获取。 方法:WMS WMS:OpenGIS Web MapService,目标是发布地图服务,提供网络地图图片。功能包括:GetCapabilities,GetMap,GetFeatureInfo,GetLegendGraphic。 4.1 发布:图层上设置发布信息,保存后就可以发布了。4.2 测试:使用QGIS测试4.2.1获取WMS地址4.2.1.1 获取WMS地址:http://服务器IP:PORT/geoserver[/工作空间[/图层名]]/wms如果可选部分不使用的话,将获取其下所有的服务。 4.2.1.2 或从WMS的文档中获取:在OnlineReference中获取。4.2.1.3 或在LayerPreview中选择需要服务:从中获取服务地址,只需要到WMS就可以,http://localhost:8080/geoserver/testShp/wms
4.2.2在Qgis加载WMS服务:设置连接参数将WMS地址输入,设置名字,就可以查看当前工作区中所有WMS服务。选择需要的图层,加入到Qgis中进行显示。
4.3 示例:WMS GetMap: WMS GetFeatureInfo: 返回值:
参考:http://blog.csdn.net/chenxiaodan_danny/article/details/42675411 5 方法:发布WFSWFS:Web Feature Service,目的是提供对矢量地图的查询、编译等操作。功能包含:GetCapabilities,DescribeFeatureType,GetFeature(查询),LockFeature(加锁,用于事务),Transaction(编辑事务)。 5.1 发布:将工作区设置为WFS启用,然后在Layer中设置发布属性。参考:http://girona-geoserver-workshop./en/latest/overview/wfs.html https://wiki.state./confluence/display/massgis/GeoServer+-+WFS+-+Extract+-+Shapefile+Format 5.1.1启用jsonp输出格式:默认是禁止的。在web.xml中去掉jsonp的注释。 参考: http://gis./questions/57494/geoserver-2-3-how-to-enable-jsonp
5.2 测试:QGIS加载WFS,并执行编辑。5.2.1获取WFS地址:与WMS相似5.2.1.1 获取WMS地址:http://服务器IP:PORT/geoserver[/工作空间[/图层名]]/WFS5.2.1.2 或从WMS的文档中获取:在Operation中获取Url,但这样获取的是所有的WFS。5.2.1.3 或在LayerPreview中选择需要服务,从中获取xsi:schemaLocation中找到wfs地址。5.2.2在Qgis加载WFS服务:设置连接参数,添加图层。
WFS可以进行图层编辑 5.3 示例:返回值: This XML file doesnot appear to have any style information associated with it. The document treeis shown below. <wfs:FeatureCollection xmlns="http://www./wfs" xmlns:wfs="http://www./wfs" xmlns:testShp="localhost:8080/testShp" xmlns:gml="http://www./gml"xmlns:xsi="http://www./2001/XMLSchema-instance" xsi:schemaLocation="http://www./wfshttp://localhost:8080/geoserver/schemas/wfs/1.0.0/WFS-basic.xsd localhost:8080/testShphttp://localhost:8080/geoserver/wfs?service=WFS&version=1.0.0&request=DescribeFeatureType&typeName=testShp%3Astates"> <gml:boundedBy> <gml:null>unknown</gml:null> </gml:boundedBy> <gml:featureMember> <testShp:states fid="states.2"> <testShp:the_geom> <gml:MultiPolygon srsName="http://www./gml/srs/epsg.xml#4326"> <gml:polygonMember> <gml:Polygon> <gml:outerBoundaryIs> <gml:LinearRing> <gml:coordinates xmlns:gml="http://www./gml" decimal="." cs="," ts=" "> -77.008232,38.966557-76.911209,38.889988 -77.045448,38.78812 -77.035248,38.813915-77.045189,38.829365 -77.040405,38.838413 -77.039078,38.862431-77.067886,38.886101 -77.078949,38.9156 -77.122627,38.93206-77.042389,38.993431 -77.008232,38.966557 </gml:coordinates> </gml:LinearRing> </gml:outerBoundaryIs> </gml:Polygon> </gml:polygonMember> </gml:MultiPolygon> </testShp:the_geom> <testShp:STATE_NAME>Districtof Columbia</testShp:STATE_NAME> <testShp:STATE_FIPS>11</testShp:STATE_FIPS> <testShp:SUB_REGION>SAtl</testShp:SUB_REGION> <testShp:STATE_ABBR>DC</testShp:STATE_ABBR> <testShp:LAND_KM>159.055</testShp:LAND_KM> <testShp:WATER_KM>17.991</testShp:WATER_KM> <testShp:PERSONS>606900.0</testShp:PERSONS> <testShp:FAMILIES>122087.0</testShp:FAMILIES> <testShp:HOUSHOLD>249634.0</testShp:HOUSHOLD> <testShp:MALE>282970.0</testShp:MALE> <testShp:FEMALE>323930.0</testShp:FEMALE> <testShp:WORKERS>229975.0</testShp:WORKERS> <testShp:DRVALONE>106694.0</testShp:DRVALONE> <testShp:CARPOOL>36621.0</testShp:CARPOOL> <testShp:PUBTRANS>111422.0</testShp:PUBTRANS> <testShp:EMPLOYED>303994.0</testShp:EMPLOYED> <testShp:UNEMPLOY>23442.0</testShp:UNEMPLOY> <testShp:SERVICE>65498.0</testShp:SERVICE> <testShp:MANUAL>22407.0</testShp:MANUAL> <testShp:P_MALE>0.466</testShp:P_MALE> <testShp:P_FEMALE>0.534</testShp:P_FEMALE> <testShp:SAMP_POP>72696.0</testShp:SAMP_POP> </testShp:states> </gml:featureMember> </wfs:FeatureCollection>
6 方法:发布WCSWCS:Web Coverage Service,目标是发布原始栅格数据。功能包括GetCapabilities,GetCoverage,DescribeCoverage。 6.1 发布:工作空间启用WCS并设置图层的发布属性。6.2 测试:QGIS加载WCS6.2.1获取WMS地址6.2.1.1 获取WMS地址:http://服务器IP:PORT/geoserver[/工作空间[/图层名]]/WCS6.2.1.2 或从WMS的文档中获取:在Operation中获取Url,但这样获取的是所有的WCS。
6.2.1.3 或演示中获取地址6.2.2QGIS中加载WCSWCS图片加载完成后,可能会有空白的地方,这是因为默认将0值设置为无值像素。 在图层属性中将无值像素去掉,可以正常显示。 6.3 测试:使用演示-》WCS Request Builder可以生成请求POST的XML和测试。参考: 示例:
GetCoverage则下载图像。 点击Generate就可以生成XML。 <?xmlversion="1.0" encoding="UTF-8"?> <GetCoverageversion="1.0.0" service="WCS"xmlns:xsi="http://www./2001/XMLSchema-instance"xmlns="http://www./wcs"xmlns:ows="http://www./ows/1.1"xmlns:gml="http://www./gml" xmlns:ogc="http://www./ogc"xsi:schemaLocation="http://www./wcshttp://schemas./wcs/1.0.0/getCoverage.xsd"> <sourceCoverage>nurc:Img_Sample</sourceCoverage> <domainSubset> <spatialSubset> <gml:EnvelopesrsName="EPSG:4326"> <gml:pos>-130.8516820.7052</gml:pos> <gml:pos>-62.005454.1141</gml:pos> </gml:Envelope> <gml:Grid dimension="2"> <gml:limits> <gml:GridEnvelope> <gml:low>0 0</gml:low> <gml:high>983597</gml:high> </gml:GridEnvelope> </gml:limits> <gml:axisName>x</gml:axisName> <gml:axisName>y</gml:axisName> </gml:Grid> </spatialSubset> </domainSubset> <output> <crs>EPSG:4326</crs> <format>GeoTIFF</format> </output> </GetCoverage> 7 方法:发布TMSTMS:Tiled Map Service,目标是发布切片。功能是根据Level/x/y.type来获取切片。 参考:http://www.cnblogs.com/TechSnail/p/3205454.html 7.1 发布:使用GeoServer发布TMS7.1.1首先新建切片策略Gridset,可以设置范围,级别等。7.1.2 设置图层样式和切片策略:在图层的TileCache中设置切片的样式和策略。注意:只有DefaultStyle的切片才是默认切片,其它样式的切片都带有GUID后缀,不能被TMS请求直接获取。 7.1.3切片:点击seed可以生成切片。可以配置切片的线程数,生成方法,策略,级别,样式等。使用RefreshList可以查看当前的切片进度。 切片在数据目录下的gwc文件夹下。 7.2 测试TMS:Qgis加载TMS需要使用GDAL的VRT格式,设置TMS,并以栅格方式加载。参见:GDAL_OGR\GDAL应用.docx 7.3 使用TMS7.3.1点击左上角的logo,进入首页,点击右侧的TMS,得到所有TMS,查找需要的服务。7.3.2 根据服务地址,添加level/x/y.format构造瓦片请求。示例: http://localhost:8080/geoserver/gwc/service/tms/1.0.0/testShp%3Astates@testTms@png/3/2/5.png 8 方法:发布WMTS目标:WMS中使用已经生成的缓存瓦片进行服务。 方法:WMTS,OpenGIS Web MapTile Service,切片网络地图服务。 8.1 发布:生成WMS的切片(参见:方法:发布TMS),在Layer中设置TileCache为已有的切片。8.2 测试:QGIS加载WMTS获取WMTS地址:在首页上点击WMTS,从中找到ProviderName,取出其值。
在QGIS新建WMTS连接,从输入相应的地址,设置名称。连接后从瓦片集中找到需要服务,添加。将显示所选的WMTS瓦片。 这里要注意,可能需要翻转轴方向。
9 方法:设置样式通过uDig设置样式。 点击样式编辑器左下角的Export导出sld文件。 在GeoServer的Style目录下导入SLD文件。 在图层的发布目录下,设置导入的样式为图层的样式。 9.1.1参考http://www.cnblogs.com/beniao/archive/2011/01/09/1930932.html 10 OpenLayers |
|