`
lozpeng
  • 浏览: 39417 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

GeoTools&ArcSDE JDK

阅读更多
使用GeoTools查询ArcSDE数据.
 public List<Map<String,Object>> queryByWhere(final String where,SeLayer sdeLyr,ISession sdeSession)
    {
        try
        {
            final String lyrName = sdeLyr.getName();
            final String geoColName = sdeLyr.getSpatialColumn();
            
            SeTable table = sdeSession.getTable(lyrName);
            SeColumnDefinition[] tableDef = sdeSession.describe(table);
            final String[] cols1 = new String[tableDef.length];
            for (int i = 0; i < tableDef.length; i++)
            {
                cols[i] = tableDef[i].getName();
            }
            final String[] cols =cols1;
            final Command<List<Map<String,Object>>> queryCmd = new Command<List<Map<String,Object>>>() {
                @Override
                public List<Map<String,Object>> execute(ISession session, SeConnection connection) throws SeException,IOException {
                   ArrayList<Map<String, Object>> results = new java.util.ArrayList<Map<String,Object>>();
                   SeSqlConstruct sqlCons = new SeSqlConstruct(lyrName);//构建空间查询表达式
                   final SeQuery query = new SeQuery(connection, cols, sqlCons);
                   query.prepareQuery();
                   query.execute();
                   SeRow row = query.fetch();//使用Session对象根据查询的结果获取查询的每一条记录
                   while(row!=null)//循环处理每一行查询出来的数据
                   {
                       Map<String,Object> result = new java.util.HashMap<String,Object>();
                       for(int i=0;i<cols.length;i++)
                       {
                           if(geoColName.compareToIgnoreCase(cols[i])==0)
                           {
                               try {
                                   SeShape seShape = (SeShape)row.getShape(i).clone();
                                   result.put(geoColName, seShape);
                               } catch (CloneNotSupportedException e) {
                                   e.printStackTrace();
                               }
                           }
                           else
                           {
                               Object obj = row.getObject(i);
                               result.put(cols[i], obj);
                           }
                       }
                       results.add(result);
                       row = query.fetch();
                   }
                   return results;
                }
            };
            return sdeSession.issue(queryCmd);
        }
        catch(Exception ex)
        {
            ex.printStackTrace();
            logger.log(Level.ERROR, ex);
        }
        return new java.util.ArrayList<Map<String,Object>>();
    }
分享到:
评论

相关推荐

    GeoTools API

    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.raster.gce org.geo...

    Geotools Java API 开发gis的参考资料

    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.arcsde.gce.band ...

    Java1.8使用GeoTools28.x实现shapefile转图片实战源码

    这是一份使用Java开发的,jdk的版本是1.8,GeoTools28版本的Shapefile文件向图片文件生成的源代码,在源码中包含了全球的矢量数据。文件是在geotools-fx的一个项目上进行二次扩展的,保留了原始的矢量数据。代码保留...

    geotools汉语版资料

    《GeoTools汉语版资料》是一份详实的资源集合,主要针对使用GeoTools进行地理信息系统(GIS)开发的用户。GeoTools是一个开放源代码的Java库,它实现了OGC(Open Geospatial Consortium)标准,提供了对地理空间数据...

    geotools所需jar包合集

    《GeoTools库详解及其在Java开发中的应用》 GeoTools是一个开源的Java库,它提供了对地理信息系统(GIS)数据的访问和操作能力。这个库主要用于处理地理空间数据,包括地图、矢量数据和栅格数据。在Java开发中,Geo...

    geotools对wms的实现支持

    GeoTools 对 WMS 的实现支持 GeoTools 是一个遵循 OGC 规范的开源 GIS 工具包,提供了地理信息数据读写、处理、坐标转换、查询分析、格式化输出等多个方面的功能。在 GeoTools 的基础上,我们可以实现一个简单的 ...

    geotools稳定版本geotools-19.4-bin.zip

    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...

    geotools18.1依赖jar包

    GeoTools是开源GIS(地理信息系统)领域的一个重要项目,它为Java开发者提供了处理地理空间数据的强大工具。这个“geotools18.1依赖jar包”是GeoTools库的第18.1版本,经过验证,它在使用时是稳定且无错误的。 Geo...

    geotools中文资料,我学习时候,整理的资料,

    - **MyGeoTools.doc**:这可能是一份个人整理的GeoTools学习笔记,包含了使用GeoTools开发GIS应用的关键概念和代码示例。 - **MyGeoTools.mht**:可能是另一种格式的学习资料,MHT是单个文件的Web档案,可能包含...

    geoTools所需jar包

    GeoTools是一个开源的Java库,专门用于处理地理空间数据和执行与GIS(地理信息系统)相关的操作。这个"geoTools所需jar包"包含了经过编译和打包的GeoTools库,使得开发者可以直接在他们的项目中使用,而无需经历繁琐...

    geotools依赖包

    GeoTools是一个开源的Java库,专门用于处理地理空间数据。这个“geotools依赖包”包含了一组模块,用于支持各种地理信息系统(GIS)的功能,如读取、写入和操作地理空间数据。GeoTools库遵循Java Community Process ...

    Geotools API 手册

    **Geotools API 手册**是一份详细的技术文档,主要针对使用Geotools库进行地理信息系统(GIS)开发的程序员。Geotools是开源Java库,它提供了一系列的工具和接口,使得开发者能够轻松地在Java应用程序中处理、分析和...

    geotools学习(一)IntelliJ IDEA搭建快速入门示例.pdf

    ### GeoTools 学习系列(一):IntelliJ IDEA 搭建快速入门示例 #### 一、概述 GeoTools 是一个开源 Java 库,用于地理空间数据的处理和展示,支持多种地理空间数据格式。对于初学者来说,熟悉如何在开发环境中...

    geotools依赖.rar

    《GeoTools源码构建的关键依赖解析》 GeoTools是一个开源的Java库,专门用于地理信息系统(GIS)开发,它提供了一系列API和工具,使得开发者能够处理地理数据、地图以及空间操作。在构建GeoTools源码时,由于网络...

    geotools相关jar包

    GeoTools是一个开源的Java库,专门用于处理地理空间数据,它是基于Open Geospatial Consortium (OGC)标准的实现。这个压缩包包含了GeoTools库的版本18.4,是开发地理信息系统(GIS)应用的重要工具。在GIS领域,开发者...

    geoserver源码和geotools

    【标题】:深入理解Geoserver源码与Geotools 在GIS(地理信息系统)领域,Geoserver和Geotools是两个非常重要的开源组件。本文将深入探讨这两个组件,特别是如何利用Eclipse IDE和Maven构建Geoserver项目,并理解其...

    geotools18.4开发离线jar包

    《GeoTools 18.4 开发离线JAR包详解》 GeoTools是一个开源的Java库,专门用于处理地理信息系统(GIS)的数据和任务。它提供了大量的API和工具,使得开发者能够轻松地在应用程序中集成地理空间数据处理功能。本次...

    geotools-18.4-userguide.zip_Geotools_mile8ai

    《GeoTools 18.4 用户指南:Java地理信息系统开发的宝典》 GeoTools是开源社区中的一个强大工具,专为Java开发者提供地理信息系统(GIS)的功能支持。这个18.4版本的用户指南是Java Geotools进行可视化开发的重要...

Global site tag (gtag.js) - Google Analytics