- 浏览: 7338777 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1546)
- 企业中间件 (236)
- 企业应用面临的问题 (236)
- 小布Oracle学习笔记汇总 (36)
- Spring 开发应用 (54)
- IBatis开发应用 (16)
- Oracle基础学习 (23)
- struts2.0 (41)
- JVM&ClassLoader&GC (16)
- JQuery的开发应用 (17)
- WebService的开发应用 (21)
- Java&Socket (44)
- 开源组件的应用 (254)
- 常用Javascript的开发应用 (28)
- J2EE开发技术指南 (163)
- EJB3开发应用 (11)
- GIS&Mobile&MAP (36)
- SWT-GEF-RCP (52)
- 算法&数据结构 (6)
- Apache开源组件研究 (62)
- Hibernate 学习应用 (57)
- java并发编程 (59)
- MySQL&Mongodb&MS/SQL (15)
- Oracle数据库实验室 (55)
- 搜索引擎的开发应用 (34)
- 软件工程师笔试经典 (14)
- 其他杂项 (10)
- AndroidPn& MQTT&C2DM&推技术 (29)
- ActiveMQ学习和研究 (38)
- Google技术应用开发和API分析 (11)
- flex的学习总结 (59)
- 项目中一点总结 (20)
- java疑惑 java面向对象编程 (28)
- Android 开发学习 (133)
- linux和UNIX的总结 (37)
- Titanium学习总结 (20)
- JQueryMobile学习总结 (34)
- Phonegap学习总结 (32)
- HTML5学习总结 (41)
- JeeCMS研究和理解分析 (9)
最新评论
-
lgh1992314:
[u][i][b][flash=200,200][url][i ...
看看mybatis 源代码 -
尼古拉斯.fwp:
图片根本就不出来好吧。。。。。。
Android文件图片上传的详细讲解(一)HTTP multipart/form-data 上传报文格式实现手机端上传 -
ln94223:
第一个应该用排它网关吧 怎么是并行网关, 并行网关是所有exe ...
工作流Activiti的学习总结(八)Activiti自动执行的应用 -
ZY199266:
获取不到任何消息信息,请问这是什么原因呢?
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息 -
xiaoyao霄:
DestinationSourceMonitor 报错 应该导 ...
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息
GIS的学习(二十三)geoserver中CQL和ECQL的使用
以下引用自官方文档:
CQL and ECQL¶
CQL (Common Query Language) is a query language created by the OGC for the Catalogue Web Services specification. Unlike the XML-based Filter Encoding language, CQL is written using a familiar text-based syntax. It is thus more readable and better-suited for manual authoring.
However, CQL has some limitations. For example it cannot encode id filters, and it requires an attribute to be on the left side of any comparison operator. For this reason, GeoServer provides an extended version of CQL called ECQL. ECQL removes the limitations of CQL, providing a more flexible language with stronger similarities with SQL.
GeoServer supports the use of both CQL and ECQL in WMS and WFS requests, as well as in GeoServer’s SLD dynamic symbolizers. Whenever the documentation refers to CQL, ECQL syntax can be used as well (and if not, please report that as a bug!).
This tutorial introduces the CQL/ECQL language by example. For a full reference, refer to the ECQL Reference.
实例如下:
package com.geoserver; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import org.geotools.data.DataStore; import org.geotools.data.DataStoreFinder; import org.geotools.data.simple.SimpleFeatureCollection; import org.geotools.data.simple.SimpleFeatureSource; import org.geotools.feature.FeatureIterator; import org.geotools.filter.text.cql2.CQL; import org.geotools.filter.text.cql2.CQLException; import org.geotools.geometry.jts.ReferencedEnvelope; import org.opengis.feature.simple.SimpleFeature; import org.opengis.filter.Filter; /** * 采用geotools中公共查询语言 * 过滤条件如下 * * 例如: * PERSONS > 15000000 * PERSONS BETWEEN 1000000 AND 3000000 * STATE_NAME LIKE 'N%' * STATE_NAME = 'California' * MALE > FEMALE * UNEMPLOY / (EMPLOYED + UNEMPLOY) > 0.07 * IN ('states.1', 'states.12'): * STATE_NAME IN ('New York', 'California', 'Montana', 'Texas'): * 带函数的使用: * strToLowerCase(STATE_NAME) like ‘%m%’ * * * * @Title: * @Description: 实现TODO * @Copyright:Copyright (c) 2011 * @Company: * @Date:2012-9-10 * @author longgangbai * @version 1.0 */ public class GeoServerCQLECQL { /** * * @param filterStr * @param layerName * @return * @throws IOException */ public static ArrayList<SimpleFeature> queryMethod(String filterStr,String layerName) throws IOException { String getCapabilities = "http://localhost:8080/geoserver/wfs?REQUEST=GetCapabilities"; Map<String,String> connectionParameters = new HashMap<String,String>(); connectionParameters.put("WFSDataStoreFactory:GET_CAPABILITIES_URL", getCapabilities ); // Step 2 - connection DataStore data = DataStoreFinder.getDataStore( connectionParameters ); SimpleFeatureSource featureSource =data.getFeatureSource(layerName); ArrayList<SimpleFeature> featureList = new ArrayList<SimpleFeature>(); if(featureSource==null) return featureList; try { Filter filter = CQL.toFilter(filterStr); // filterStr形式 如 name='武汉大学' or code like 'tt123%' SimpleFeatureCollection result = featureSource.getFeatures(filter); ReferencedEnvelope bounds = new ReferencedEnvelope(); FeatureIterator<SimpleFeature> itertor = result.features(); while (itertor.hasNext()) { SimpleFeature feature = itertor.next(); bounds.include( feature.getBounds() ); featureList.add(feature); } System.out.println( "Calculated Bounds:"+ bounds ); itertor.close(); result.close( itertor ); return featureList; } catch (CQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { } return null; } public static void main(String[] args) throws IOException { ArrayList<SimpleFeature> list=queryMethod("STATE_NAME='Arizona'","topp:states"); System.out.println("list="+list.toString()); } }
发表评论
-
【转】Django resources
2014-01-23 14:35 10827Django resources This page li ... -
使用国内镜像源来加速python pypi包的安装
2014-01-16 11:16 197842pipy国内镜像目前有: http://pypi.d ... -
[转 ]vagrant使用简介
2014-01-10 13:53 257501> 简介: vagrant提供了易于配置,重复性 ... -
[转]在Java中调用Python
2014-01-07 13:08 9218在执行之前都需要把jython对应的包加载进去,这个是必须的 ... -
[转]Eclipse配置PyDev插件
2014-01-02 14:25 2839安装python解释器 安装PyDev: 首 ... -
RestFuse的研究(五) Http请求的封装
2014-06-14 15:50 3647在RestFuse中封装了Http请 ... -
RestFuse的研究(四) Junit的Statement的分析
2013-12-06 11:46 1673在RestFuse提供了多种单 ... -
RestFuse的研究(三) Junit的Rule的使用和分析
2013-12-06 11:01 2238在junit中定义一些可以公用的规则(R ... -
RestFuse的研究(二) Junit的Runner的分类和模式
2013-12-06 10:40 1604在Junit4中的调用JunitCore可以采 ... -
RestFuse的研究(一) HttpJunitRunner的实现
2013-12-06 10:11 1747在RestFuse是一种针对Rest We ... -
[转]An open-source JUnit extension to test HTTP/REST APIs
2013-12-06 09:57 1100http://developer.eclipsesource ... -
TestNG简单的学习(十三)TestNG中Junit的实现
2013-12-04 09:00 3355TestNG和junit的整合 ... -
TestNG简单的学习(十二)TestNG运行
2013-12-03 09:08 51587文档来自官方地址: ... -
TestNG简单的学习(十一)TestNG学习总结
2013-12-03 09:08 14198最近一直在学习关于TestNG方面的知识,根 ... -
TestNG简单的学习(十)TestNG @Listeners 的使用
2013-12-03 09:07 8694TestNG官方网站: http://testng.or ... -
TestNG简单的学习(九)TestNG Method Interceptors 的使用
2013-12-03 09:07 2714TestNG官方网站: http://testng ... -
TestNG简单的学习(八)TestNG Annotation Transformers 的使用
2013-12-03 09:07 2810TestNG官方网站: http://testng.or ... -
TestNG简单的学习(七)TestNG编程方式运行
2013-12-02 09:22 2454TestNG官方网站: http://testng.or ... -
TestNG简单的学习(六)测试工厂注释的使用
2013-12-02 09:22 2784TestNG官方网站: http://testng.or ... -
TestNG简单的学习(五)参数化测试数据的定制
2013-12-02 09:22 2702TestNG官方网站: http://testng.or ...
相关推荐
本教程将深入讲解如何利用Leaflet结合CQL(Common Query Language)来过滤GeoServer发布的图层,使得地图展示更加精细化和定制化。 首先,了解CQL是关键。CQL是一种标准的查询语言,常用于地理信息系统中,允许用户...
GeoServer是一款广泛使用的开源GIS(地理信息系统)服务平台,它的最新版本是2.23.3。这个版本提供了许多先进的GIS功能,包括地图发布、数据共享、WMS(Web Map Service)、WFS(Web Feature Service)等,使得地理...
geoserver中文教程geoserver中文教程geoserver中文教程geoserver中文教程geoserver中文教程geoserver中文教程geoserver中文教程geoserver中文教程geoserver中文教程geoserver中文教程geoserver中文教程geoserver中文...
作为GIS领域的重要工具,GeoServer提供了丰富的功能,用于发布、管理和共享地理空间数据。这款服务器是GeoTools项目的一部分,GeoTools是一个Java库,专为处理地理空间信息而设计。 GeoServer的核心功能包括: 1. ...
GeoServer是一个开源的用于共享地理空间数据的服务器,它支持使用开放标准对多数主要空间数据源进行发布。GeoServer实现了行业标准的OGC协议,如Web Feature Service(WFS)、Web Map Service(WMS)和Web Coverage ...
【GIS地图服务】geoserver-2.24.1-war.zip是一个专注于地理信息系统(GIS)的开源项目,它基于Java技术实现,并符合开放地理空间联盟(OGC)的标准。这个压缩包包含了geoserver的2.24.1版本,以war(Web ARchive)...
同时,书中也会涉及如何通过GeoServer与其他GIS工具(如QGIS、ArcGIS)和大数据平台(如Hadoop、Spark)集成,实现更广泛的数据管理和分析功能。总的来说,GeoServer的学习不仅提升了你的GIS技能,还能增强你在地理...
本手册尤其强调了Maven和Eclipse的集成使用,同时介绍了如何操作OWS服务与REST服务,以及如何在GeoServer中进行Wicket开发和Web用户界面扩展。 ### GeoServer开发环境搭建 GeoServer的开发环境搭建需要先安装JDK...
【标题】"Geoserver学习测试代码"是一个关于使用Geoserver进行GIS(地理信息系统)开发的实践项目,主要基于Geoserver 2.1.2版本。该项目旨在解决网络上关于Geoserver实际操作代码的稀缺问题,通过参照最新的...
GeoServer 是 OpenGIS Web 服务器规范的 J2EE 实现,利用 GeoServer 可以方便的发布地图数据,允许用户对特征数据进行更新、删除、插入操作,通过 GeoServer 可以比较容易的在用户之间迅速共享空间地理信息。
在GIS(地理信息系统)领域,GeoServer是一款开源的、基于Java的服务器软件,它能够发布和操作地理空间数据。WFS(Web Feature Service)是OGC(Open Geospatial Consortium)制定的一种标准接口,用于在网络上交换...
GeoServer是一款开源的GIS(地理信息系统)服务器,它支持OGC(开放地理空间联盟)标准,包括WMS、WFS等服务,使得地理空间数据能够通过网络进行发布和共享。本开发手册系列主要针对中文用户,旨在帮助开发者深入...
由于Geoserver和Udig都是基于Java语言开发的应用程序,因此需要先安装JDK以确保后续步骤顺利进行。 #### 安装步骤如下: 1. 打开浏览器访问Oracle官方网站提供的JDK下载页面,地址通常为:*** ** 在JDK下载页面找到...
GeoServer是一款开源的GIS服务器,它能够发布地理空间数据,并提供了丰富的WMS(Web Map Service)和WFS(Web Feature Service)功能。瓦片机制在现代GIS应用中扮演着重要角色,通过预先生成的地理信息小块(即瓦片...
GeoServer 是一个开源的基于 Web 的 GIS 服务器,它提供了强大的空间数据管理和发布功能。下面是 GeoServer 中文开发手册的摘要信息: 目录 * 介绍 * 工具 * 源代码 * 快速入门 * Maven 指南 * Eclipse 指南 * ...
GeoServer 作为一个基于 Java 的开源 GIS 服务器,具有成本低廉、良好的扩展性和部署的灵活性等特点。但是,在面对庞大地图数据、庞大的用户交互时,如果仅仅采用 GeoServer 作为 GIS 服务器,势必导致地图数据传输...
在本项目中,我们主要涉及三个关键的地理信息系统(GIS)工具:uDig、Geoserver和OpenLayers,以及3D地球渲染库Cesium。这些技术的集成使用可以帮助用户创建、发布和展示自定义的地图样式。 uDig(User-friendly ...
### GeoServer 学习笔记 #### 一、GeoServer简介 GeoServer是一个开源地理信息系统(GIS)服务器,基于Java开发,遵循Open Geospatial Consortium (OGC) 的一系列Web服务规范,如WMS (Web Map Service), WFS (Web ...
在GIS(地理信息系统)领域,Geoserver和Geotools是两个非常重要的开源组件。本文将深入探讨这两个组件,特别是如何利用Eclipse IDE和Maven构建Geoserver项目,并理解其源码。 **Geoserver简介** Geoserver是一款...
在GIS(地理信息系统)领域,GeoServer是一款开源的、基于Java的Web服务,它能够发布地理数据并提供WMS(Web Map Service)和WFS(Web Feature Service)等OGC(Open Geospatial Consortium)标准服务。SLD(Styled ...