示例代码库
Spatial4j是一个通用的空间/地理空间(spatial/geospatial) ASL 授权的开源Java库。它的核心能力有三个方面:提供常见的形状,可以在欧几里得和测地线(球体)表面世界模型,提供距离计算和其他数学、读和写等格式的形状 WKT 和GeoJSON 。Spatial4j是Eclipse基金会 LocationTech 行业工作组的一个项目。
shape几何结构说明
shape几何创建
平面坐标系与空间坐标系下面的几何关系
Spatial距离计算
Spatial WKT格式解析
Spatial GeoJSON格式解析
具有地理空间感知的形状类(*)
距离计算支持三个公式(球面计算公式):
Shapes支持的输入/输出格式:
其它格式支持,请参考FORMATS.md
<dependencies>
<dependency>
<groupId>org.locationtech.spatial4j</groupId>
<artifactId>spatial4j</artifactId>
<version>0.8</version>
</dependency>
<dependency>
<groupId>org.noggit</groupId>
<artifactId>noggit</artifactId>
<version>0.8</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.10.8</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.locationtech.jts</groupId>
<artifactId>jts-core</artifactId>
<version>1.18.1</version>
<optional>true</optional>
</dependency>
</dependencies>
public class Demo {
public static void main(String[] args) {
SpatialContext ctx = SpatialContext.GEO;
ShapeFactory shapeFactory = ctx.getShapeFactory();
Circle circle = shapeFactory.circle(new PointImpl(0.0,0.0,ctx),1);
JtsSpatialContextFactory jtsCtxFactory = new JtsSpatialContextFactory();
JtsSpatialContext jtsCtx = jtsCtxFactory.newSpatialContext();
GeometryFactory geometryFactory = jtsCtxFactory.getGeometryFactory();
Point point = geometryFactory.createPoint();//empty
Shape shape = jtsCtx.getShapeFactory().makeShapeFromGeometry(point);
}
}