首先,我是新来利用Geoserver和的OpenLayers。 我一直在试图获得使用图层预览页面,查看使用Openlayer观众我的层利用Geoserver侧这方面的工作。 我将其实现为最终的WFS的OpenLayers GET请求。
我试图做到的是返回不同点的一定距离内的功能。 (即在一所学校5公里)。
我使用的利用Geoserver图层预览页面。 我已经加入 “DWITHIN(GEOM,POINT(-60.2 46.1),0.05,千米)” 的CQL滤波器。 它限制了返回点的量,但我不能确定它是否被正确过滤。
我的问题如下:
- 从我的,因为这种错误的认识http://jira.codehaus.org/browse/GEOS-937我不得不使用度我单位。 我怎样才能在客户端转换使用JavaScript / 3的OpenLayers改变5公里到一定程度的价值?
- 我可以添加多个DWITHIN过滤器说,如果一个点中的一个点5公里和另一个10公里?
- 我可以过滤基于关闭功能类型? 内一所学校的5公里,一医院10公里即折返点
花一些时间在这之后我能回答我的问题。
首先做一些搜索的我确定1度= 111.325公里左右。 https://answers.yahoo.com/question/index?qid=20060905051639AAWGjH9
要添加多个DWITHIN过滤所有你需要做的就是增加一个,每个人之间。 如果是在WFS格式,您可能需要添加%这样的空间包括20于是%20。
做了一定位置的DWITHIN你会添加以下到你的世界粮食首脑会议。 问题的关键是长/ LAT,0.05是从点度,公里是传入的单元。当使用GEOSERVER将默认为度,如在原来的问题状态的链接。
&CQL_FILTER=DWITHIN(GEOM,Point(-60.2 46.1),0.05,kilometers)
这将返回所有的从你的WFS层是度指定点内的功能。
要过滤掉我用从以下网址信息另一层http://docs.geoserver.org/2.6.x/en/user/extensions/querylayer/index.html
杉杉必须正确querylayer模块安装到您的Geoserer的版本作为链路状态。
要做到基于特征的名字我用下面的CQL_filter过滤器:
&CQL_FILTER=DWITHIN(GEOM,collectGeometries(queryCollection('Workspace:AssetLayer','GEOM','AssetTypeID=1')),
.02,kilometers%29
“:AssetLayer工作区”这将从您请求与1从层由assetid特征的规定的程度内的WFS层返回任何功能。
“:AssetLayer工作区”层也就是说,如果学校有1的AssetTypeID,这将也曾经是中0.02度的一所学校在原图层返回的所有功能。
该“GEOM”值应列保存在SQL的几何数据的名称。
另外,我编码在CQL_Filter“%29”的最后一个括号,因为我发现通过的OpenLayers发出请求时,它被剥离其关闭。
正如我说我是新来的OpenLayers / GeoServer的所以这可能不是在任何情况下工作,但是这是我想通了。 我在不同的投影想可能会有一些变化。 希望这可以让你在正确的轨道上。