由于项目中需要把大量的shp文件的数据转换成json格式存储到数据库。简单记录一下,以备以后的遗忘之需。
首先引入所需的依赖:由于项目依赖过多和保密,这里只写了所需的geotools依赖:
<properties>
<java-version>1.7</java-version>
<geotools.version>15.1</geotools.version>
<log4j-version>2.7</log4j-version>
<jdk.version>1.7</jdk.version>
<tomcat.version>2.2</tomcat.version>
<jetty.version>7.6.14.v20131031</jetty.version>
</properties>
<!-- geotools -->
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-geojson</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-geometry</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-epsg-hsql</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
由于项目中需要把大量的shp文件的数据转换成json格式存储到数据库。简单记录一下,以备以后的遗忘之需。首先引入所需的依赖:由于项目依赖过多和保密,这里只写了所需的geotools依赖: <properties> <java-version>1.7</java-version> <geotools.ver...
一. 前言
大二开始正式学编程,这条路走得磕磕绊绊,基本上想写点东西时,都会先在Github上看有没有现成的......
在一开始还不会配环境的时候,最痛苦的就是Github上拉下来能直接就用的代码寥寥无几。
后面又渐渐尝试,接触了maven,pip以及npm,开始在Github上搬运代码了。
又因为专业和GIS相关,GIS又是个冷门的方向,往往搜索结果惨淡。
有时候想做个功能...
import java.io.IOException;
import org.geotools.data.DataStore;
import org.geotools.data.DataStoreFinder;
import org.geotools.data.simple.SimpleFeatureCollection;
import org.geotools.data.simple.SimpleFeatureIterator;
import org.opengis.feature.simple.SimpleFeature;
import org.opengis.feature.simple.SimpleFeatureType;
public class ShpFileReader {
public static void main(String[] args) throws IOException {
// 读取shp文件
File file = new File("path/to/shapefile.shp");
DataStore dataStore = DataStoreFinder.getDataStore(file);
String typeName = dataStore.getTypeNames()[0];
SimpleFeatureType schema = dataStore.getSchema(typeName);
// 获取属性表信息
System.out.println("Feature Type: " + typeName);
System.out.println("Number of attributes: " + schema.getAttributeCount());
System.out.println("Attributes: ");
for (int i = 0; i < schema.getAttributeCount(); i++) {
System.out.println(schema.getAttributeDescriptors().get(i).getName());
// 获取要素信息
SimpleFeatureCollection collection = dataStore.getFeatureSource(typeName).getFeatures();
try (SimpleFeatureIterator features = collection.features()) {
while (features.hasNext()) {
SimpleFeature feature = features.next();
System.out.println(feature.getID() + ": " + feature.getDefaultGeometryProperty().getValue());
dataStore.dispose();
需要注意的是,需要在pom.xml中添加geotools依赖:
```xml
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-shapefile</artifactId>
<version>24.0</version>
</dependency>
王子的AD钙奶:
通过GeoTools把shp文件数据转换成json格式
花花牛。:
关于读取shape类型数据并存入oracle时使用SDO_GEOMETRY类型是遇到的坑。