maven依赖
相关maven的jar可以点击下载:repository.zip
<geotools.version>27-RC</geotools.version>
<!--开始:GEOTOOLS-->
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-shapefile</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-geojson</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-cql</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-opengis</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-metadata</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-main</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-api</artifactId>
<version>20.5</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-data</artifactId>
<version>20.5</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-geometry</artifactId>
<version>17.3</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-coverage</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-render</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools.xsd</groupId>
<artifactId>gt-xsd-ows</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools.xsd</groupId>
<artifactId>gt-xsd-filter</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools.xsd</groupId>
<artifactId>gt-xsd-wps</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>
<artifactId>gt-epsg-extension</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-epsg-wkt</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-arcgrid</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools.ogc</groupId>
<artifactId>net.opengis.wfs</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools.ogc</groupId>
<artifactId>net.opengis.wps</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools.xsd</groupId>
<artifactId>gt-xsd-fes</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools.xsd</groupId>
<artifactId>gt-xsd-wfs</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-epsg-wkt</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.locationtech.jts</groupId>
<artifactId>jts-core</artifactId>
<version>1.17.0</version>
</dependency>
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
<classifier>jdk15</classifier>
</dependency>
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>2.5.2</version>
</dependency>
<!--结束:GEOTOOLS-->
案例一:比如4547坐标系转4326
public Point transformCode(String sourceCode, String targetCode, double x, double y) throws FactoryException, TransformException {
//4547 4326
CoordinateReferenceSystem sourceCRS = CRS.decode("EPSG:" + sourceCode);
CoordinateReferenceSystem targetCRS = CRS.decode("EPSG:" + targetCode);
MathTransform transform = CRS.findMathTransform(sourceCRS, targetCRS, true);
GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory();
//30 100
Coordinate coordinate = new Coordinate(x, y);
Point source = geometryFactory.createPoint(coordinate);
Point dist = (Point) JTS.transform(source, transform);
return dist;
}
调用
Point p = transformCode("4547", "4326", Double.valueOf("580726.5420"), Double.valueOf("3377477.5880"));
//p.getY();
//p.getX()
案例二:将geojson文件转shp并输出
private String gdalWriteShp(String path, String shpName) {
DataSource ds = ogr.Open(path, 0);
if (ds == null) {
return "gdal打开文件失败!";
}
String strDriverName = "ESRI Shapefile";
org.gdal.ogr.Driver dv = ogr.GetDriverByName(strDriverName);
if (dv == null) {
return "打开gdal驱动失败!";
}
String shpPath = UPLOAD_BASEDIR + "/" + shpName;
File file = new File(shpPath);
if (file.exists()) {
file.delete();
}
System.out.println("===>" + dv);
System.out.println(ds);
dv.CopyDataSource(ds, shpPath);
ds.delete();
dv.delete();
return "合并转换成功!";
}
调用:参数一geojson文件路径,参数二shp文件名称
String response = gdalWriteShp("E://test.json", "test");