# jts-learning **Repository Path**: startgis/jts-learning ## Basic Information - **Project Name**: jts-learning - **Description**: JTS源码类库学习,具体结合GIS基础理论与示例代码详细介绍JTS下面核心包下面的geometry、coordinate、wkb、wkt底层代码等操作使用说明,持续更新中...... - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: https://github.com/locationtech/jts - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 40 - **Created**: 2024-07-30 - **Last Updated**: 2024-07-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## JTS简介 JTS提供了一套操作几何向量的java类库
早期版本 com.vividsolutions,已废弃不在维护
现在版本 com.locationtech.jts 由eclipse开源基金会托管
## 使用说明 ### 入门指导 [GIS开发入门指导](gisguider.md)
### jts-core 核心库使用说明 [jts-core核心类库使用说明](docs/jts-core/readme.md)
具体结合示例代码详细介绍JTS下面核心包下面的geometry、coordinate、wkb、wkt等操作使用说明 ### 各包使用说明 #### 1.org.locationtech.jts.geom 基础包 geom几何建模参考OGC SFS标准进行java模型建立;
SFS 中定义的几何对象模型:图中显示的是SFS中几何对象的关系结构,简单要素中的几何对象主要就是定义了点、线、面和多点、多线、多面
![sfs几何建模](docs/statics/geo/sfs-geometry.jpg)
另外,几何对象还涉及一系列的操作:
![sfs几何建模操作](docs/statics/geo/sfs-geometry-method.jpg) ##### 1.1 说明 1.1.1 提供几何接口与几何操作相关类
[Coordinate使用说明](docs/jts-core/geom/coordinate.md)
[CoordinateArrays使用说明](docs/jts-core/geom/coordinate_arrays.md)
[Geometry与其子类等使用说明](docs/jts-core/geom/geometry.md)
[Envelope使用说明](docs/jts-core/geom/envelope.md)
[IntersectionMatrix说明](docs/jts-core/geom/DE-9IM.md)
[PrecisionModel精度说明](docs/jts-core/geom/precisionmodel.md)
[PreparedGeometry使用说明](docs/jts-core/geom/prepare-geometry.md)
1.1.2 操作工厂类
[GeometryFactory使用说明](docs/jts-core/geom/geometry_factory.md)
[Coordinate工厂使用说明](docs/jts-core/geom/coordinate-array-sequence-impl.md)
#### org.locationtech.jts.geom.util 几何相关工具包 [AffineTransformation仿射变换理论基础](docs/jts-core/geom/affineTransformation_desc.md)
[AffineTransformation仿射说明](docs/jts-core/geom/affinetransformation.md)
#### org.locationtech.jts.edgegraph 边与图 [EdgeGraph使用说明](docs/jts-core/edgegraph/edgegraph.md)
#### org.locationtech.jts.index 空间索引算法 [SpatialIndex使用说明](docs/jts-core/index/index.md)
#### org.locationtech.jts.io 格式输入输出工具包 [WKT格式输入输出使用说明](docs/jts-core/io/wkt.md)
[WKB格式输入输出使用说明](docs/jts-core/io/wkb.md)
#### org.locationtech.jts.algorithm 算法包 [Angle角度计算](docs/jts-core/algorithm/angle.md)
[Orientation方向计算](docs/jts-core/algorithm/orientation.md)
[豪斯多夫距离计算](docs/jts-core/algorithm/distance/discreteHausdorffDistance.md)
[点到几何距离,最近形状点计算](docs/jts-core/algorithm/distance/distanceToPoint.md)
[coordinate位于geometry的位置](docs/jts-core/algorithm/locate/indexedPointInAreaLocator.md)
[AreaSimilarityMeasure判断几何相似性](docs/jts-core/algorithm/match/similarityMeasure.md)
[ConvexHull凸包计算](docs/jts-core/algorithm/convexHull.md)
[Length计算长度](docs/jts-core/algorithm/length.md)
[InteriorPoint内部点计算](docs/jts-core/algorithm/interiorPoint.md)
[Intersection判断两条线段的交点](docs/jts-core/algorithm/intersection.md)
[MinimumBoundingCircle计算最小包裹圆](docs/jts-core/algorithm/minimumboundingCircle.md)
[MinimumDiameter最小直径计算](docs/jts-core/algorithm/minimumDiameter.md)
#### org.locationtech.jts.densifier 丰富点包 [Densifier给定距离插点丰富线段](docs/jts-core/densifier/densifier.md)
#### org.locationtech.jts.operation 操作包 [LineMerger合并线段](docs/jts-core/operation/linemerge.md)
#### org.locationtech.jts.dissolver [LineDissolver根据输入的geometry拆分成独立的linestring](docs/jts-core/dissolver/lineDissolver.md)
### jts案例 [计算点到线的垂线](docs/jts-core/demo/foot-point.md)
[延线的画线方向,判断点在线的右侧还是左侧](docs/jts-core/demo/left-right.md)
[线到线投影](docs/jts-core/demo/linetolineshadow.md)
[根据起始点求一个线的子线](docs/jts-core/demo/sublinebypoint.md)
[计算线上面距离点起点一定距离的交点坐标](docs/jts-core/demo/lineatob.md)
[扩buffer,左扩N米右扩N米](docs/jts-core/demo/buffer.md)
[单位换算](docs/jts-core/demo/km-degree.md)
## 代码类库地址 [JTS GitHub](https://github.com/locationtech/jts) ## 代码包结构 核心模块: * `jts-core` - 核心类库:提供geometry model, operations, algorithms, and spatial data structures * `jts-io-common` - I/O classes for open spatial formats The following modules depend on proprietary libraries, and are not built by default: * `jts-io-ora` - Oracle reader and writer * `jts-io-sde` - SDE reader and writer The following modules are applications and data for testing and working with JTS * `jts-tests` - The JTS XML test suite and the Test Runner application * `jts-app` -The TestBuilder GUI, for working with JTS geometry interactively ## Maven坐标 ```xml org.locationtech.jts jts-core 1.16.1 ```