`
jjxliu306
  • 浏览: 157671 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

geotools系列2-读取postgis

    博客分类:
  • GIS
阅读更多

上期我介绍了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());
			
		}

	}

 

 

 

 

结果贴图:



 

 

附件有完整代码。

  • 大小: 70.7 KB
0
0
分享到:
评论

相关推荐

    geotools-26.1-bin.zip

    - **数据支持**:GeoTools支持多种数据格式,如Shapefile、GeoTIFF、GML、KML等,以及多种数据库系统,如PostGIS、Oracle Spatial等。 - **地图渲染**:GeoTools提供了丰富的地图渲染功能,可以将地理数据转化为...

    geotools-23.0-bin.zip

    1. 数据读取与写入:GeoTools支持多种地理空间数据格式,如ESRI Shapefile、GML( Geography Markup Language)、GeoJSON、KML(Keyhole Markup Language)以及各种栅格和矢量数据库格式,如PostGIS、Oracle Spatial...

    geotools-23.0-project

    1. 数据访问:GeoTools支持多种GIS数据格式,如Shapefile、GML、WFS、KML等,允许用户读取、写入和转换这些格式的数据。 2. 地图渲染:它提供了一套完整的绘图工具,可以将地理数据渲染成地图,包括矢量图和栅格图,...

    geotools依赖.rar

    2. **JTS (Java Topology Suite)**:这是GeoTools的基础组件,提供了几何对象的操作和空间算法,如缓冲区创建、拓扑检查等。 3. **Proj4J**:用于坐标转换,支持不同坐标系统的投影变换,这对于处理跨越不同地区的...

    geotools-23.0-userguide

    2. **数据存储**:介绍如何使用 GeoTools 读取和写入各种GIS数据格式,如 shapefile、GML、GeoJSON、PostGIS 数据库等。同时,讲解了数据连接器(DataStore)的概念,它是连接不同数据源的关键。 3. **几何对象与...

    geotools所需jar包合集

    GeoTools是一个开源的Java库,它提供了一系列用于处理地理空间数据的工具和API。这个“geotools所需jar包合集”包含了四个关键的GeoTools库,旨在帮助开发者更方便地集成地理信息系统(GIS)功能到他们的Java应用中...

    geotools相关jar包集合

    通过使用`geotools`,开发者可以读取、写入、显示和分析多种地理空间数据格式,如Shapefile、GeoJSON、GPKG(GeoPackage)以及栅格图像如TIFF和JPEG等。 集成`geotools`到项目中,首先需要将包含在压缩包中的jar...

    geotools相关jar包

    5. 数据库连接:GeoTools支持与多种关系型数据库(如PostGIS)和NoSQL数据库(如MongoDB)的连接,可以直接查询和操作存储在其中的空间数据。 6. 功能强大的API:GeoTools提供了丰富的API,包括几何对象、投影、...

    geotools-2.5.2-guide

    GeoTools还提供了对数据库如PostGIS和Oracle Spatial的支持。 3. **几何对象与坐标系统**: GeoTools使用JTS(Java Topology Suite)来处理几何对象,如点、线、多边形等。同时,它支持坐标参考系统(CRS)转换,...

    geoTools所需jar包

    例如,可以使用GeoTools读取Shapefile数据,然后将这些数据显示在JMapFrame上,实现一个简单的GIS应用。 6. **版本信息**:"geoTools 16.4"表明这是GeoTools的一个特定版本。每个版本可能会包含新的特性,修复的bug...

    geotools-18.1

    GeoTools 18.1提供了丰富的数据处理工具,包括读取和写入多种矢量和栅格数据格式,如Shapefile、GeoTIFF、PostGIS数据库等。它还支持OGC的SFS(Simple Feature Specification),使得处理几何对象(点、线、多边形...

    geoserver源码和geotools

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

    geotools18.1依赖jar包

    1. 数据读取与写入:GeoTools支持多种GIS数据格式,如ESRI Shapefile、GeoTIFF、GML、KML、WFS、PostGIS数据库等,能够方便地进行数据导入导出操作。 2. 地图渲染:GeoTools可以将地理数据渲染成地图,支持多种地图...

    geotools-18.1.zip

    这个名为"geotools-18.1.zip"的压缩包包含了一系列与GeoTools相关的jar包,这些库为开发人员提供了一整套工具,用于读取、操作和展示地理信息系统(GIS)的数据。在Java项目中,你可以通过解压这个zip文件,选择并...

    geotools18.4开发离线jar包

    6. **数据存储**:GeoTools不仅支持内存中的数据管理,还能够连接到各种数据库系统,如PostGIS、Oracle Spatial等,进行数据的存储和查询。 7. **栅格处理**:对于遥感影像和栅格数据,GeoTools提供了读取、裁剪、...

    GeoTools是一个开源的Java库提供地理空间数据工具

    1. 数据读取与写入:GeoTools能够读取多种地理空间数据格式,如Shapefile、GeoJSON、KML、GML、WMS和WFS服务等,并支持将这些数据写入不同的格式。这使得数据交换和集成变得简单。 2. 坐标系统转换:GeoTools包含对...

    geotools学习指南

    GeoTools学习指南 GeoTools是一款功能强大的开源GIS(Geographic Information System)工具包,提供了丰富的API和插件,帮助开发者快速构建GIS应用程序。在本指南中,我们将详细介绍GeoTools的基本概念、库函数、...

    geotools-23.2_en.chm

    geotools-23.2_en.chm geotools是一个 GIS 开源...GeoTools承担了从各种数据源(如PostGIS,GML,Shapefile,WFS)读取数据并将数据标准化的工作,GeoTools还是OpenGIS标准的全面实现,其中包括Filter、坐标转换、GML。

Global site tag (gtag.js) - Google Analytics