上期我介绍了geotools读取shp文件的事例 (geotools系列1-读取shp文件),本次说明读取读取postgis里表数据的代码,依旧是读取数据打印出来展示。
1、环境,maven依赖等,参见上次 geotools系列1-读取shp文件 。
2、直接上java代码
package com.jjxliu.geotools.geotools_t1; import java.io.IOException; import java.util.HashMap; import java.util.Map; import org.geotools.data.DataStoreFinder; import org.geotools.data.simple.SimpleFeatureCollection; import org.geotools.data.simple.SimpleFeatureIterator; import org.geotools.data.simple.SimpleFeatureSource; import org.geotools.jdbc.JDBCDataStore; import org.opengis.feature.simple.SimpleFeature; import org.opengis.filter.Filter; public class TestPostgis { public static SimpleFeatureCollection readPostgisTable(String host , int port , String user , String pass , String dbname, String schema , String tablename ){ return readPostgisTable(host, port, user, pass, dbname, schema, tablename , null); } public static SimpleFeatureCollection readPostgisTable(String host , int port , String user , String pass , String dbname, String schema , String tablename , Filter filter){ Map<String, Object> params = new HashMap<>(); params.put("dbtype", "postgis"); params.put("host", host); params.put("port", port); params.put("schema", schema); params.put("database", dbname); params.put("user", user); params.put("passwd", pass); try { JDBCDataStore dataStore = (JDBCDataStore) DataStoreFinder.getDataStore(params); return readDatastore(dataStore, tablename, filter); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } public static SimpleFeatureCollection readDatastore(JDBCDataStore store ,String typeName , Filter filter){ try { SimpleFeatureSource featureSource = store.getFeatureSource(typeName); return filter != null ? featureSource.getFeatures(filter) : featureSource.getFeatures(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } }
3、测试
public static void main(String[] args) { String host = "127.0.0.1"; String schema = "public" ; String database = "lyf" ; String user = "lyf" ; String pass = "lyf123" ; String tablename = "cell" ; int port = 6666; //读取 SimpleFeatureCollection colls1 = readPostgisTable(host, port, user, pass, database, schema, tablename); if(colls1 == null){ System.out.println("请检查参数,确保jdbc连接正常以及表存在."); return; } //拿到所有features SimpleFeatureIterator iters = colls1.features(); //遍历打印 while(iters.hasNext()){ SimpleFeature sf = iters.next(); System.out.println(sf.getID() + " , " + sf.getAttributes()); } }
结果贴图:
附件有完整代码。
相关推荐
- **数据支持**:GeoTools支持多种数据格式,如Shapefile、GeoTIFF、GML、KML等,以及多种数据库系统,如PostGIS、Oracle Spatial等。 - **地图渲染**:GeoTools提供了丰富的地图渲染功能,可以将地理数据转化为...
1. 数据读取与写入:GeoTools支持多种地理空间数据格式,如ESRI Shapefile、GML( Geography Markup Language)、GeoJSON、KML(Keyhole Markup Language)以及各种栅格和矢量数据库格式,如PostGIS、Oracle Spatial...
1. 数据访问:GeoTools支持多种GIS数据格式,如Shapefile、GML、WFS、KML等,允许用户读取、写入和转换这些格式的数据。 2. 地图渲染:它提供了一套完整的绘图工具,可以将地理数据渲染成地图,包括矢量图和栅格图,...
2. **JTS (Java Topology Suite)**:这是GeoTools的基础组件,提供了几何对象的操作和空间算法,如缓冲区创建、拓扑检查等。 3. **Proj4J**:用于坐标转换,支持不同坐标系统的投影变换,这对于处理跨越不同地区的...
2. **数据存储**:介绍如何使用 GeoTools 读取和写入各种GIS数据格式,如 shapefile、GML、GeoJSON、PostGIS 数据库等。同时,讲解了数据连接器(DataStore)的概念,它是连接不同数据源的关键。 3. **几何对象与...
GeoTools是一个开源的Java库,它提供了一系列用于处理地理空间数据的工具和API。这个“geotools所需jar包合集”包含了四个关键的GeoTools库,旨在帮助开发者更方便地集成地理信息系统(GIS)功能到他们的Java应用中...
通过使用`geotools`,开发者可以读取、写入、显示和分析多种地理空间数据格式,如Shapefile、GeoJSON、GPKG(GeoPackage)以及栅格图像如TIFF和JPEG等。 集成`geotools`到项目中,首先需要将包含在压缩包中的jar...
5. 数据库连接:GeoTools支持与多种关系型数据库(如PostGIS)和NoSQL数据库(如MongoDB)的连接,可以直接查询和操作存储在其中的空间数据。 6. 功能强大的API:GeoTools提供了丰富的API,包括几何对象、投影、...
GeoTools还提供了对数据库如PostGIS和Oracle Spatial的支持。 3. **几何对象与坐标系统**: GeoTools使用JTS(Java Topology Suite)来处理几何对象,如点、线、多边形等。同时,它支持坐标参考系统(CRS)转换,...
例如,可以使用GeoTools读取Shapefile数据,然后将这些数据显示在JMapFrame上,实现一个简单的GIS应用。 6. **版本信息**:"geoTools 16.4"表明这是GeoTools的一个特定版本。每个版本可能会包含新的特性,修复的bug...
GeoTools 18.1提供了丰富的数据处理工具,包括读取和写入多种矢量和栅格数据格式,如Shapefile、GeoTIFF、PostGIS数据库等。它还支持OGC的SFS(Simple Feature Specification),使得处理几何对象(点、线、多边形...
【标题】:深入理解Geoserver源码与Geotools 在GIS(地理信息系统)领域,Geoserver和Geotools是两个非常重要的开源组件。本文将深入探讨这两个组件,特别是如何利用Eclipse IDE和Maven构建Geoserver项目,并理解其...
1. 数据读取与写入:GeoTools支持多种GIS数据格式,如ESRI Shapefile、GeoTIFF、GML、KML、WFS、PostGIS数据库等,能够方便地进行数据导入导出操作。 2. 地图渲染:GeoTools可以将地理数据渲染成地图,支持多种地图...
这个名为"geotools-18.1.zip"的压缩包包含了一系列与GeoTools相关的jar包,这些库为开发人员提供了一整套工具,用于读取、操作和展示地理信息系统(GIS)的数据。在Java项目中,你可以通过解压这个zip文件,选择并...
6. **数据存储**:GeoTools不仅支持内存中的数据管理,还能够连接到各种数据库系统,如PostGIS、Oracle Spatial等,进行数据的存储和查询。 7. **栅格处理**:对于遥感影像和栅格数据,GeoTools提供了读取、裁剪、...
1. 数据读取与写入:GeoTools能够读取多种地理空间数据格式,如Shapefile、GeoJSON、KML、GML、WMS和WFS服务等,并支持将这些数据写入不同的格式。这使得数据交换和集成变得简单。 2. 坐标系统转换:GeoTools包含对...
GeoTools学习指南 GeoTools是一款功能强大的开源GIS(Geographic Information System)工具包,提供了丰富的API和插件,帮助开发者快速构建GIS应用程序。在本指南中,我们将详细介绍GeoTools的基本概念、库函数、...
geotools-23.2_en.chm geotools是一个 GIS 开源...GeoTools承担了从各种数据源(如PostGIS,GML,Shapefile,WFS)读取数据并将数据标准化的工作,GeoTools还是OpenGIS标准的全面实现,其中包括Filter、坐标转换、GML。