public void sdeTest(String cqlPredicate,String refGeo){
Map map = new HashMap();
map.put( "dbtype", "arcsde" );
map.put( "server", "127.0.0.1" );
map.put( "port", "5151" );
map.put( "instance", "sde" );
map.put( "user", "test" );
map.put( "password", "test" );
DataStore dataStore = null;
try {
dataStore = DataStoreFinder.getDataStore(map);
String typeName = "TEST_PG";
SimpleFeatureType schema = dataStore.getSchema(typeName);
String geometryAttributeName = schema.getGeometryDescriptor()
.getLocalName();
FilterFactory2 ff = CommonFactoryFinder.getFilterFactory2(GeoTools.getDefaultHints());
List<Filter> match = new ArrayList<Filter>();
if(cqlPredicate!=null){//属性查询条件 like a='1' and b='2'
Filter filter1 = CQL.toFilter(cqlPredicate);
match.add(filter1);
}
if(refGeo!=null){//空间查询条件 refGeo 是标准的WKT字符串
Filter filter2 = ff.contains(ff.property(geometryAttributeName), ff
.literal(refGeo));
match.add(filter2);
}
Transaction transaction = new DefaultTransaction();
Filter filter = ff.and(match);//属性空间联合查询
Query query = new Query(typeName, filter);
// query.setStartIndex(new Integer(4));
// query.setMaxFeatures(2);
SortBy[] sortBy = new SortBy[1];
//sortBy[0] = ff.sort("NAME", SortOrder.DESCENDING );
sortBy[0] = ff.sort("ZZJGDM", SortOrder.ASCENDING );
query.setSortBy(sortBy);
FeatureReader reader = dataStore.getFeatureReader(query,
transaction);
while (reader.hasNext()) {
Feature feature = reader.next();
Iterator iterator = feature.getProperties().iterator();
while (iterator.hasNext()) {
Property property = (Property) iterator.next();
// if(!property.getName().getLocalPart().equalsIgnoreCase(geometryAttributeName))
System.out.print(property.getName() + "="
+ property.getValue()+"\t");
String colName = property.getName().getLocalPart();
}
System.out.println();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (CQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(dataStore!=null)
dataStore.dispose();
}
}
分享到:
相关推荐
GeoTools 是一个遵循 OGC 规范的开源 GIS 工具包,提供了地理信息数据读写、处理、坐标转换、查询分析、格式化输出等多个方面的功能。在 GeoTools 的基础上,我们可以实现一个简单的 WMS(Web Map Service),本文将...
例如,可以利用GeoTools从WMS服务获取地图图片,结合WFS服务获取空间数据,然后进行数据分析和可视化,最后将结果呈现给用户。在使用过程中,遇到问题可以参考GeoTools的官方文档、社区论坛和示例代码,获取帮助和...
在IT行业中,GeoTools是一个重要的开源Java库,用于处理地理空间数据。本篇文章将深入探讨“geotools系列2-读取postgis”的主题,旨在帮助开发者了解如何使用GeoTools库来有效地操作和读取存储在PostGIS数据库中的...
org.geotools org.geotools.arcsde org.geotools.arcsde.data org.geotools.arcsde.data.versioning org.geotools.arcsde.data.view org.geotools.arcsde.filter org.geotools.arcsde.gce org.geotools....
org.geotools org.geotools.arcsde org.geotools.arcsde.data org.geotools.arcsde.data.view org.geotools.arcsde.filter org.geotools.arcsde.jndi org.geotools.arcsde.logging org.geotools.arcsde....
描述中提到的"内含4个geotools的jar包",意味着这个压缩包提供了四个核心的GeoTools组件,这些组件通常包括了基本的数据读取、处理和展示功能。 标签"java geotools sha转geojson api org.geotools"揭示了几个关键...
GeoTools是一个开放源代码的Java库,它实现了OGC(Open Geospatial Consortium)标准,提供了对地理空间数据的操作和可视化功能。这份资料集为中文用户提供了方便的学习和参考资料,有助于理解和应用GeoTools。 1. ...
5. 数据库连接:GeoTools支持与多种关系型数据库(如PostGIS)和NoSQL数据库(如MongoDB)的连接,可以直接查询和操作存储在其中的空间数据。 6. 功能强大的API:GeoTools提供了丰富的API,包括几何对象、投影、...
GeoTools是开源GIS(地理信息系统)领域的一个重要项目,它为Java开发者提供了处理地理空间数据的强大工具。这个“geotools18.1依赖jar包”是GeoTools库的第18.1版本,经过验证,它在使用时是稳定且无错误的。 Geo...
总之,GeoTools项目的源码构建离不开一系列关键的第三方库,这些库提供了处理地理数据、空间计算、数据库连接等核心功能。理解并掌握这些依赖的作用,对于成功构建和使用GeoTools源码至关重要。通过分享这些依赖包,...
Geotools是开源Java库,它提供了一系列的工具和接口,使得开发者能够轻松地在Java应用程序中处理、分析和展示地理空间数据。这个API手册是英文版,为那些寻求在GIS项目中使用Geotools API的开发者提供了丰富的参考...
GeoTools是一个开源的Java库,专门用于处理地理空间数据。这个“geotools依赖包”包含了一组模块,用于支持各种地理信息系统(GIS)的功能,如读取、写入和操作地理空间数据。GeoTools库遵循Java Community Process ...
6. **数据存储**:GeoTools不仅支持内存中的数据管理,还能够连接到各种数据库系统,如PostGIS、Oracle Spatial等,进行数据的存储和查询。 7. **栅格处理**:对于遥感影像和栅格数据,GeoTools提供了读取、裁剪、...
2. **Maven编译问题**:通常情况下,从GeoTools官方获取的源码需要通过Maven构建工具来编译,因为GeoTools有复杂的依赖关系,需要解决这些依赖才能正确运行。然而,这个过程可能对新手或者不熟悉Maven的开发者来说...
- **数据读取与写入**:GeoTools支持多种GIS数据格式,如Shapefile、GML、KML、GeoJSON等,可以方便地进行数据的读取和写入。 - **空间运算**:GeoTools提供了丰富的几何对象操作,包括几何对象的创建、查询、修改...
此外,Geotools还提供了丰富的数据访问功能,如读取和写入多种GIS数据格式(如Shapefile、GeoTIFF、GML等),以及通过OGC服务(如WMS、WFS)获取远程数据。在处理这些数据时,可以利用`DataStore`和`FeatureSource`...
import org.geotools.data.FileDataStore; import org.geotools.data.FileDataStoreFinder; import org.geotools.data.simple.SimpleFeatureSource; import org.geotools.map.FeatureLayer; import org.geotools.map...
GeoTools能与WMS(Web Map Service)和WFS(Web Feature Service)等OGC服务进行交互,获取和操作远程地图和地理数据。用户指南将教你如何订阅和操作这些服务,实现动态地图叠加和数据交换。 7. **性能优化** ...