GIS的学习(十八)Openlayers+Geoserver使用纪要

1       Geoserver图层发布流程

安装后Geoserver后,发布图层基本上是如下的一个流程:

1、使用管理员账户登陆。一般用户名和密码是admin/geoserver;

2、建立一个“新的工作空间”。此时可以指定改工作空间的名称及命名空间的Uri,如果原意使用默认的工作空间,就不用建立了~~

3、添加一个数据集合。Geoserver支持的数据源有很多种,如shapefile、postgis等等,在这里,笔者使用的是shapefile~~

4、选择后,可以指定该数据集合的工作空间、数据源名称、描述、shapefile的位置、字符集等等。

5、添加一个图层。在刚才添加完数据集合后,即可看到一个发布新图层的页面

6、同样也可以通过:所有图层->添加一个新的资源->选择Test:Test的方式打开发布图层的界面

 

7、点击发布,可以设定相关的信息,如名称、标题等,可以根据项目的实际需要进行设定。

 

2       参数设定

WfsUrl:Wfs服务的地址,如http://localhost:8080/geoserver/wfs

WfsNamespace:Wfs服务的命名空间,即上文的Test

WfsLayerName:Wfs服务的图层名称,即上文图中的states

FeatureIdKey:Wfs服务图层中字段的名称,如上文图中的STATE_NAME

SrsName:wfs图层数据的实际投影坐标系,即地图显示时设置的投影坐标系,如EPSG:2436

2.1     查询

2.1.1 范围查询

假定我们指定的查询范围为bbox,根据上述参数设定,进行范围查询的Url为:“WfsUrl?REQUEST=GetFeature&typeName= WfsNamespace : WfsLayerName &bbox=bbox&outputFormat=json”。bbox是怎么来的呢?bbox实际上描绘的是一个矩形,假定矩形左下角的点是Max(x1,y1),右上角的点是Min(x2,y2),则bbox是形如“x1,y1,x2,y2”的一个字符串。

2.1.2 属性查询

假定我们的查询条件是STATE_NAME为“北京”,则根据上述参数设定,此查询的url为:WfsUrl,同时需要将如下形式的参数信息,提交到服务器。如以post的方式,将参数信息写入HttpWebRequest的RequestStream中。

 

复制代码
 1 <w:GetFeature service="WFS" version="1.1.0" 
 2     xmlns:w="http://www.opengis.net/wfs" 
 3     xmlns:f=" WfsNamespace" 
 4     xmlns:g="http://www.opengis.net/gml" 
 5     xmlns:o="http://www.opengis.net/ogc" 
 6     x:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd WfsUrl/DescribeFeatureType?version=1.1.0&amp;typename= WfsNamespace:WfsLayerName" 
 7     xmlns:x="http://www.w3.org/2001/XMLSchema-instance">
 8     <w:Query typeName="f: WfsLayerName ">
 9         <o:Filter>
10             <o:PropertyIsEqualTo>
11                 <o:PropertyName>f: FeatureIdKey </o:PropertyName>
12                 <o:Literal>北京</o:Literal>
13             </o:PropertyIsEqualTo>
14         </o:Filter>
15     </w:Query>
16 </w:GetFeature>
复制代码

 

由上文可以看出,PropertyIsEqualTo 意味着等于,其它的逻辑关系如大于、小于、不等于等等,可以参考Geoserver的官方网站的例子。

2.2     增加点

假定我们要添加的点信息如下:

1、经纬度为longitude, latitude

2、STATE_NAME为北京

则根据上述参数设定,此查询的url为:WfsUrl,同时需要将如下形式的参数信息,提交到服务器。如以post的方式,将参数信息写入HttpWebRequest的RequestStream中。

 

复制代码
 1 <w:Transaction xmlns:w="http://www.opengis.net/wfs" 
 2         xmlns:g="http://www.opengis.net/gml" 
 3         service="WFS" version="1.1.0" 
 4         x:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd WfsUrl/DescribeFeatureType?version=1.1.0&amp;typename=WfsNamespace: WfsLayerName " xmlns:x="http://www.w3.org/2001/XMLSchema-instance">
 5     <w:Insert>
 6         <f: WfsLayerName xmlns:f=" WfsNamespace ">
 7             <f: FeatureIdKey >北京</f: FeatureIdKey >
 8             <f:the_geom>
 9                 <g:Point srsName="SrsName">
10                     <g:coordinates decimal="." cs="," ts=" ">lonValue,latValue</g:coordinates>
11                 </g:Point>
12             </f:the_geom>
13         </f: WfsLayerName >
14     </w:Insert>
15 </w:Transaction>
复制代码

 

2.3     删除点

假定我们要删除的STATE_NAME为北京的点,则根据上述参数设定,此查询的url为:WfsUrl,同时需要将如下形式的参数信息,提交到服务器。如以post的方式,将参数信息写入HttpWebRequest的RequestStream中。

 

复制代码
 1 <w:Transaction xmlns:w="http://www.opengis.net/wfs" 
 2 xmlns:f="WfsNamespace" xmlns:g="http://www.opengis.net/gml" 
 3 service="WFS" version="1.1.0" xmlns:o="http://www.opengis.net/ogc" 
 4 x:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd WfsUrl /DescribeFeatureType?version=1.1.0&amp;typename=WfsNamespace:WfsLayerName " xmlns:x="http://www.w3.org/2001/XMLSchema-instance">
 5     <w:Delete typeName="f:WfsLayerName ">
 6         <o:Filter>
 7             <o:PropertyIsEqualTo>
 8                 <o:PropertyName>f: FeatureIdKey </o:PropertyName>
 9                 <o:Literal>北京</o:Literal>
10             </o:PropertyIsEqualTo>
11         </o:Filter>
12     </w:Delete>
13 </w:Transaction>
复制代码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
请问在openlayers中如何删除Layer中的marker 3 在层中加了一个标记怎么永久的存到地图上 3 OpenLayers 如何设死地图边界 3 谁写过openlayers解析xml 3 openlayer.popup 3 OpenLayers 怎么做字段标注 4 字段标注不是用OL做的,而是你在SLD中定义用数据表的哪个字段做标签就可以了 4 OpenLayers 中画最短轨迹 4 使用TileCache配合OpenLayers 4 openlayers如何准确测距 9 openlayers简单实用例子 9 关于TileCache函数 13 openlayers 有函数说明的类图 14 go 14 Maker 一多,客户端就死掉 15 OpenLayers 怎么实现 AJAX 16 openlayer 要怎么研究才会应用得比较自如 16 改良OpenLayers的Popup 16 在openlayers的地图中要添加地图搜索功能一般采用什么方法 17 openlayers中如何访问geoserver发布的图片 18 什么是TMS? 18 怎样设置瓦片的大小 18 画一条线,数据量太大,怎么办? 18 怎么在图层上动态画点 20 GeoExt集成google map ,地图偏移 21 用JavaScript为OpenLayers.Marker的加上单击显示详细信息的功能 21 改良OpenLayers的MousePostion 25 使用OpenLayers实现一个在鼠标点击处添加标记的效果 27 openlayers 利用google maps的卫星地图 29 openLayers集成google map ,点标注错位 30 openlayers可以做出谷歌效果的地图吗? 31 用OpenLayers API和类来画点、线、面 32 OGC标准术语介绍WMS、WFS、WCS 35 如何控制地图的放缩 37 openLayers链接WMS的代码探讨 37 openlayers 2.5 矢量层在ie下闪烁的问题 38 openLayers 在地图上添加一个点并保存 39 openLayers 各个参数的意义 42 geoserver能搞出这种风格的图来吗? 43 关于SLD的线切割后的设置 43 GEOSERVE 标注铁路,使用 SLD 44 geoserver 发布.shp 中文乱码问题 怎么解决啊 45 Geoserver怎么连postGreSql 数据库 48 Geoserver连Oracle Spatial 52 GeoServer架构浅谈 53 Geoserver发布地图无法显示问题 57 WebGIS相关的OpenGIS规范 58 geoserver中地图以外的区域以自定义图片填充 62 怎样修改 geoServer 的用户名密码 65 GeoServer中的WMS服务生成的png图片背景色为透明 65 比例尺 65 需不需要一个layer对应一个store 66 如何部署shp 66 用GeoWebCache后Marker错位 66 标签太大导致不能显示? 67 geoserver把两个shapefile格式的图叠 67 GeoServer 能够集成 Google Map? 68 gwc地图切片的缓存路径在web.xml中设置么 68 如何实现地图查询? 68 sld文件怎么用 69 在sld中怎么控制路名的间隔? 69
路径分析是指在地理信息系统中,根据给定的起点和终点,在网络数据中找到最佳或最短的路径。在本例中,我们将使用PostgreSQL数据库、GeoServerOpenLayers来实现路径分析。 首先,我们需要将网络数据导入PostgreSQL数据库。我们可以使用PostGIS插件来处理空间数据,它提供了丰富的空间分析功能。将网络数据导入数据库后,我们可以使用SQL查询进行路径分析。 接下来,我们需要将数据库中的数据发布到GeoServer中。GeoServer是一个开源的地理信息服务器,它可以将数据库中的空间数据发布为Web服务。通过GeoServer,我们可以将网络数据以WMS或WFS的形式发布出去,供OpenLayers进行可视化展示和交互。 最后,我们可以使用OpenLayers来在Web页面中显示地图,并实现路径分析的可视化。OpenLayers是一个开源的JavaScript库,它提供了丰富的地图显示和交互功能。我们可以使用OpenLayers的API来加载GeoServer发布的网络数据,并通过JavaScript代码来实现路径分析的功能。例如,我们可以在地图上绘制起点和终点,并使用OpenLayers的路线计算函数来找到最佳路径,并将其显示在地图上。 在整个过程中,PostgreSQL提供了数据存储和查询的功能,GeoServer提供了数据发布的功能,而OpenLayers提供了地图的可视化和交互功能。通过这些工具的结合,我们可以实现路径分析的功能,从而为用户提供最佳或最短路径的查询和展示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值