计算几何之Geos
常用的计算几何库有:a) Geos,b) CGAL,c) LEDA,d) Wykobi,它们都是C++的库,各有优缺点,本文主要介绍Geos。
Geos是JTS Topology Suite是空间预测和处理几何的C++接口。 JTS提供了完整的、统一的、鲁棒性的基础算法,用于处理二维笛卡尔坐标系下的线性拓扑等几何分析方法,比如相交计算等,JTS足够快可以满足生产需要,而JTS本身是纯java版的。Geos是开源地球空间基金会Open Source Geospatial Foundation的一个项目。
Geos提供的模型和函数如下:
- Geometries: Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon, GeometryCollection
- Predicates: Intersects, Touches, Disjoint, Crosses, Within, Contains, Overlaps, Equals, Covers
- Operations: Union, Distance, Intersection, Symmetric Difference, Convex Hull, Envelope, Buffer, Simplify, Polygon Assembly, Valid, Area, Length,
- Prepared geometries (pre-spatially indexed)
- STR spatial index
- OGC Well Known Text (WKT) and Well Known Binary (WKB) encoders and decoders.
Geos提供了常见的几何对象和基本操作,但是与Boost.Geometry库一样,仅限于二维平面,无法处理三位几何体。
开源地球空间基金会
c++版本的JTS
java版本的拓扑分析组件
http://www.tsusiatsoftware.net/jts/main.html