# 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中几何对象的关系结构,简单要素中的几何对象主要就是定义了点、线、面和多点、多线、多面

另外,几何对象还涉及一系列的操作:

##### 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
```