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

geotools系列1-读取shp文件

    博客分类:
  • GIS
阅读更多

.shp文件是目前大家使用频率较高而且通用的一种格式。此篇主要说明geotools对shp文件的读取说明。

 

1、maven依赖,包含了postgis支持、epsg、和swing的支持,后续的文章基本都基于此

 

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.jjxliu.geotools</groupId>
  <artifactId>geotools_t1</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>geotools_t1</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <geotools.version>20-SNAPSHOT</geotools.version>
  </properties>
<dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.geotools</groupId>
            <artifactId>gt-shapefile</artifactId>
            <version>${geotools.version}</version>
        </dependency>
        <dependency>
            <groupId>org.geotools</groupId>
            <artifactId>gt-swing</artifactId>
            <version>${geotools.version}</version>
        </dependency>
        <dependency>
  			<groupId>org.geotools</groupId>
  			<artifactId>gt-jdbc</artifactId>
  			<version>${geotools.version}</version>
		</dependency>
        <dependency>
   			<groupId>org.geotools.jdbc</groupId>
   			<artifactId>gt-jdbc-postgis</artifactId>
   			<version>${geotools.version}</version>
 		</dependency>
 	
 		<dependency>
   			<groupId>org.geotools</groupId>
   			<artifactId>gt-epsg-hsql</artifactId>
   			<version>${geotools.version}</version>
 		</dependency>
 		
    </dependencies>
     <repositories>
        <repository>
            <id>maven2-repository.dev.java.net</id>
            <name>Java.net repository</name>
            <url>http://download.java.net/maven/2</url>
        </repository>
        <repository>
            <id>osgeo</id>
            <name>Open Source Geospatial Foundation Repository</name>
            <url>http://download.osgeo.org/webdav/geotools/</url>
        </repository>
        <repository>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
          <id>boundless</id>
          <name>Boundless Maven Repository</name>
          <url>http://repo.boundlessgeo.com/main</url>
        </repository>
    </repositories>
     <build>
        <plugins>
            <plugin>
                <inherited>true</inherited>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

 

 

2、直接上java代码说明shp文件读取

public static SimpleFeatureCollection  readShp(String path ){
		return readShp(path, null);
		
	}

	public static SimpleFeatureCollection  readShp(String path , Filter filter){
	  
		SimpleFeatureSource  featureSource = readStoreByShp(path);
		   
		if(featureSource == null) return null;
          
		try {
			return filter != null ? featureSource.getFeatures(filter) : featureSource.getFeatures() ;
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} 
         
         return null ;
	}
	
	public static  SimpleFeatureSource readStoreByShp(String path ){
		 
		File file = new File(path);
    	 
		FileDataStore store;
		SimpleFeatureSource featureSource = null;
		try {
			store = FileDataStoreFinder.getDataStore(file);
			 ((ShapefileDataStore) store).setCharset(Charset.forName("UTF-8"));
			featureSource = store.getFeatureSource();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
         
         return featureSource ;
	}

 

3、测试一段读取的代码,打印所有读取到的simplefeature

String path1 = "G:/work/china_map/shp/BOUNT_poly.shp" ;
		
		//读取shp
		SimpleFeatureCollection  colls1 = readShp(path1);
		//拿到所有features
		SimpleFeatureIterator iters = colls1.features();
		//遍历打印
		while(iters.hasNext()){
			SimpleFeature sf = iters.next();
			
			System.out.println(sf.getID() + " , " + sf.getAttributes());
			
		}

 

打印贴图



 

 

实例的.java在附件。

 

 

 

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

相关推荐

    geotools读取shp文件及shp文件操作工具类代码.pdf

    GeoTools 读取 SHP 文件及 SHP 文件操作工具类代码解析 GeoTools 是一个开放源代码的 Java 库,用于处理地理信息系统(GIS)数据。SHp 文件是 GIS 中的一种常见文件格式,用于存储地理空间数据。本文将对 GeoTools ...

    geotools读取*dbf/*shp文件

    标题 "geotools读取*.dbf/*.shp文件" 涉及的是使用开源Java库GeoTools处理地理空间数据的技巧。GeoTools是一个用于处理地理信息系统(GIS)数据的库,它支持多种地理空间数据格式,包括Shapefile(*.shp)和DBF(*....

    geotools-23.3

    这个名为"geotools-23.3"的压缩包包含的是GeoTools库的版本23.3,它是一个强大的工具集,用于处理与地理空间数据相关的一系列任务。在GIS领域,GeoTools允许开发人员读取、写入和操作多种地理空间数据格式,其中包括...

    geotools-2.7.2-bin.zip

    这通常意味着将GeoTools的库文件添加到构建路径或依赖管理中,例如在Maven或Gradle项目中配置相应的依赖。一旦完成引入,开发者便可以利用GeoTools提供的类和方法,进行地图数据的读取、转换、分析以及展示等操作。 ...

    geoTools工具包

    GeoTools工具包是一款开源的Java库,专门设计用于地理信息系统(GIS)开发,它提供了对各种地理空间数据格式的支持,包括但不限于Shapefile(shp文件)。这个强大的工具包允许开发者在Java环境中对地理数据进行读取...

    Java解析shpfile所需要的geotools包

    Java解析SHP文件是地理信息系统(GIS)领域中的常见任务,而Geotools是一个开源的Java库,专门用于处理各种地理空间数据,包括ESRI的Shapefile格式。在这个场景下,"Java解析shpfile所需要的geotools包"指的是利用...

    geotools对wms的实现支持

    2. 数据读取模块:使用 GeoTools 读取地图数据文件。 3. 样式设置模块:使用 GeoTools 获取图层的渲染样式。 4. 图层加载模块:使用 GeoTools 将各个数据集和样式对应并按顺序排列,生成地图对象。 5. 地图绘制模块...

    shp文件解析java实现

    本篇文章将详细讲解如何使用`meteoInfo`和`geotools`这两个Java库来解析`shp`文件,提取其中的数据,并获取边界线数据、中心点坐标以及最大和最小经纬度值。 `meteoInfo`是一个专门处理气象数据的Java库,虽然它的...

    geotools-15.0

    1. **GeoTools库概述** GeoTools遵循Java Community Process (JCP)的JSR 191和JSR 173标准,为开发者提供了一套完整的API,用于处理地理空间数据。它支持多种数据格式,包括ESRI Shapefile、GeoTIFF、WMS、WFS等,...

    GeoTools Demo的shape格式文件,50m_cultural.zip

    要实现使用GeoTools读取shape文件,首先需要导入GeoTools库到项目中。然后,可以创建一个`ShapefileDataStore`对象,通过它来加载shapefile文件。这个对象会处理所有与数据读取相关的工作,包括解析.shp文件和其他...

    lzugis.zip_DEMO_Geotools_com.lzugis_lzudb.com_坐标转换 shp

    GeoTools是一个遵循Apache 2.0许可证的项目,它提供了一系列API,使得开发者能够轻松地读取、写入和操作多种GIS数据格式。该库支持OGC(开放地理空间联盟)标准,如WMS、WFS和SOS,使得开发者可以构建与各种GIS服务...

    android应用源码--shp文件的可视化与编辑.rar

    - 在Android中处理Shapefile,通常需要借助第三方GIS库,如OSM(OpenStreetMap)Droid、GeoTools for Android、JTS Topology Suite或者Android GIS Library。 - 这个应用可能使用了其中某一个或几个库来解析...

    java基于geotools实现shapefile几何数据批量读取通用工具类,实现shp数据通用批量读取,shapefile读取

    1.java实现shapefile几何数据批量读取,并封装为通用的工具类,实现shp数据的通用批量读取 2.读取后的成果数据封装成hashMap的列表,每一个Map对象存储一条shp要素的字段属性及几何图形,通过shp字段名从Map中获取...

    java解析上传的shp文件,包含jar,方法,shp文件

    GeoTools是Java平台上的一个开源GIS框架,它提供了一系列API和模块来处理地理空间数据。为了使用GeoTools,我们需要引入相关的jar包,通常包括以下核心模块: 1. `gt-api.jar`:包含GeoTools的主要接口和抽象类。 2...

    用Java读取.shp文件的工程文件

    这个Java工程文件旨在提供一个解决方案,帮助开发者读取`.shp`文件,获取其中的几何对象坐标,并将这些坐标写入新的文件中。下面我们将深入探讨如何用Java处理`.shp`文件以及相关的技术要点。 首先,要读取`.shp`...

    use-geotools.zip

    在本项目中,我们利用 Gradle 这个现代的构建工具来管理依赖并集成 GeoTools,以便于生成 Shapefile 文件。 首先,我们需要在项目的 `build.gradle` 文件中引入 GeoTools 的依赖。Gradle 允许我们通过指定库的坐标...

    geojson-geometry-shp格式相互转化总结

    在Java中,我们通常使用GeoTools库来处理SHF文件。以下是一个创建SHP文件的基本步骤: ```java import java.io.File; import java.io.IOException; import java.nio.charset.Charset; import java.sql.Connection; ...

Global site tag (gtag.js) - Google Analytics