过滤器

虽然不是特定于GoogleEarth,但geoserver能够过滤从 Web地图服务(WMS) .KML反射器将通过任何WMS filtercql_filter 参数来约束响应。

备注

过滤器基本上是将SQL“where”语句转换为Web表单。虽然只限于一个表,但这允许用户执行逻辑筛选,如“and”和“and”或“to make very complex queries”,利用数字和字符串比较、几何运算(“bbox”、“touches”、“intersects”、“disjoint”)、like“语句、nulls等等。

滤波器

最简单的过滤器很容易包括。它被称为 featureid 筛选,它允许您按ID筛选到单个功能。语法为:

featureid=<feature>

其中<feature>是功能及其ID。示例如下:

http://localhost:8080/geoserver/wms/kml?layers=topp:states&featureid=states.5

此请求将只输出马里兰州。通过执行WFS或KML请求并检查结果输出,最容易找到数据的功能ID。

CQL过滤器

在URL中使用过滤器可能非常不方便,因为需要包含URL编码的XML::

http:/localhost:8080/geoserver/wms/kml?layers=topp:states&FILTER=%3CFilter%3E%3CPropertyIsBetween%3E%3CPropertyName%3Etopp:LAND_KM%3C/PropertyName%3E%3CLowerBoundary%3E%3CLiteral%3E100000%3C/Literal%3E%3C/LowerBoundary%3E%3CUpperBoundary%3E%3CLiteral%3E150000%3C/Literal%3E%3C/UpperBoundary%3E%3C/PropertyIsBetween%3E%3C/Filter%3E

相反,您可以使用公共查询语言(cql),它允许您更简洁地指定同一条语句:

http://localhost:8080/geoserver/wms/kml?layers=topp:states&CQL_FILTER=LAND_KM+BETWEEN+100000+AND+150000

此查询将返回美国境内所有面积在100000至150000平方公里之间的州。

Previous: KML传奇