postgis与geotools对应方法总结
工作中发现postgis相关文档比较清晰, 想要找到需要的方法往往比较容易. 而geotools实现某些功能没有postgis直观, 往往需要好多类协同完成. 所以有必要维护一下postgis与geotools实现某些功能时的对应方法.
持续更新. 纯手工维护, 各位大佬有什么更好的方法欢迎指导.
JTS api 地址: http://locationtech.github.io/jts/javadoc/ GITHUB地址:https://github.com/locationtech/jts
postgis方法 | geotools方法 | 功能描述 |
---|---|---|
ST_LineLocatePoint | org.locationtech.jts.linearref.LocationIndexedLine | 计算点在曲线中的位置(百分比) |
ST_SimplifyPreserveTopology | com.vividsolutions.jts.simplify.TopologyPreservingSimplifier | 使用Douglas-Peucker算法,根据给定的几何对象,返回一个简化版的几何对象。避免创建新的派生的无效的几何对象(特别是多边形) |
-
计算点在曲线中的位置(百分比)
Geotools demo:GeometryFactory factory = new GeometryFactory(new PrecisionModel(PrecisionModel.FLOATING)); LocationIndexedLine indexedLine = new LocationIndexedLine(new LineString(new CoordinateArraySequence(new Coordinate[]{new Coordinate(0,0), new Coordinate(2,2)}), factory)); // 根据曲线位置获取响应的点坐标 Coordinate point = indexedLine.extractPoint(new LinearLocation(0,0.7)); System.out.println(point); // 根据给定的点坐标获取其在曲线中的位置 LinearLocation location1 = indexedLine.indexOf(new Coordinate(1.5,1)); System.out.println(location1.getSegmentFraction());
-
几何对象简化
Geotools demo:TopologyPreservingSimplifier.simplify(geometry, 0.001);
转载自:https://blog.csdn.net/lnxyangruosong/article/details/80888808