本文主要是介绍java读取shp文件_JAVA用geotools读取shape格式文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Shapefile属于一种矢量图形格式,它能够保存几何图形的位置及相关属性。但这种格式没法存储地理数据的拓扑信息。
其中,要组成一个Shapefile,有三个文件是必不可少的,它们分别是".shp", ".shx"与 ".dbf"文件
.shp— 图形格式,用于保存元素的几何实体。
.shx— 图形索引格式。几何体位置索引,记录每一个几何体在shp文件之中的位置,能够加快向前或向后搜索一个几何体的效率。
.dbf— 属性数据格式,以dBase IV的数据表格式存储每个几何形状的属性数据。
下面将介绍如何通过Java读取Shape文件中的内容信息
我们的pom文件
4.0.0
com.herbert.geotool
geo
1.0-SNAPSHOT
org.geotools
gt-shapefile
19.2
system
org.geotools
gt-opengis
19.2
org.geotools
gt-data
19.2
org.geotools
gt-api
19.2
org.geotools
gt-main
19.2
org.geotools
gt-metadata
19.2
org.geotools
gt-referencing
19.2
org.geotools
gt-geojson
19.2
org.json.simple
json-simple
1.1
org.apache.commons
commons-pool
1.5.4
org.apache.commons
commons-lang
2.6
com.vividsolutions
jts
1.13
具体Java代码
packagecom.herbert.geotoool.util;importorg.geotools.data.shapefile.ShapefileDataStore;importorg.geotools.data.simple.SimpleFeatureIterator;importorg.geotools.data.simple.SimpleFeatureSource;importorg.geotools.geojson.feature.FeatureJSON;importorg.opengis.feature.simple.SimpleFeature;importjava.io.File;importjava.io.IOException;importjava.io.StringWriter;importjava.nio.charset.Charset;/***@author:Herbert
* @date :Created in 2019/12/26 17:01
* @description:
* @modified By:
*@version: $*/
public classShapeModel {public static void main(String[] args) throwsIOException {long start =System.currentTimeMillis();
String SHAPE_FILE= "F:\\MapData\\gisMap\\xian\\街道界线.shp"; //ShapeFile全路径//使用GeoTools读取ShapeFile文件
File shapeFile = newFile(SHAPE_FILE);
ShapefileDataStore store= newShapefileDataStore(shapeFile.toURI().toURL());//设置编码
Charset charset = Charset.forName("GBK");
store.setCharset(charset);
SimpleFeatureSource sfSource=store.getFeatureSource();
SimpleFeatureIterator sfIter=sfSource.getFeatures().features();//从ShapeFile文件中遍历每一个Feature,然后将Feature转为GeoJSON字符串
while(sfIter.hasNext()) {
SimpleFeature feature=(SimpleFeature) sfIter.next();//Feature转GeoJSON
FeatureJSON fjson = newFeatureJSON();
StringWriter writer= newStringWriter();
fjson.writeFeature(feature, writer);
String sjson=writer.toString();
System.out.println("sjson===== >>>> " +sjson);
}
System.out.println("数据导入完成,共耗时"+(System.currentTimeMillis() - start)+"ms");
}
}
读取数据显示:
这篇关于java读取shp文件_JAVA用geotools读取shape格式文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!