GeoTools 是一个开源Java库,为地理空间数据的操作提供了方法,其数据结构基于开放地理空间联盟(OGC)规范。
- OpenGIS:地理空间支持
- JTS(Java Topology Suite):空间几何支持
相关解释
数据格式
- WKT(Well-known Text):OGC制定的文本标记语言,用于表示适量几何对象、空间参考系统以及空间参照系统之间的转换。如
"POINT(2 2)"
表示位于坐标(2,2)
的点 - WKB(Well-known binary):WKT的二进制表示形式,便于传输和数据库存储
- GeoJSON:JSON格式的Feature表达格式。
数据模型
Coordinate
:坐标,使用长度为N的数字序列表示N维空间的某个位置,其表达的是空间中的哪个位置Geometry
:空间几何,一般有点Point
、线LineString
、面Polygon
、点集MultiPoint
、线集MultiLineString
、面集MultiPolygon
,其表达的是在空间中哪里绘制什么样的图形FeatureType
:要素类型,是对空间要素的定义,其表达的是这一类的要素包含哪些空间信息和非空间信息。Feature
:空间要素,包含空间信息与非空间信息,其表达的是在地图上绘制的东西以及含义FeatureCollection
:要素集合,包含一系列的空间要素,同时还包括CRS等信息,其表达的是一组具体的空间要素。
使用
Maven引入
<!-- 1. 引入仓库 -->
<repositories>
<repository>
<id>osgeo</id>
<name>OSGeo Release Repository</name>
<url>https://repo.osgeo.org/repository/release/</url>
<snapshots><enabled>false</enabled></snapshots>
<releases><enabled>true</enabled></releases>
</repository>
</repositories>
<!-- 2. 导入依赖 -->
<dependencies>
<!-- https://mvnrepository.com/artifact/org.geotools/gt-geojson -->
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-geojson</artifactId>
<version>${geotools.version}</version>
</dependency>
</dependencies>
gt-geojson已包含gt-main等包
自定义简单工具类
简单数据类型或格式间的转换,如点、线、GeoJson、WKT等
@Slf4j
public class GeoUtils {
/**
* 地理数据类型
* 点、线、面、几何集合
*/
private static final String[] GEO_TYPE = new String[]{
"Geometry", "Point", "LineString", "Polygon"