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算法,根据给定的几何对象,返回一个简化版的几何对象。避免创建新的派生的无效的几何对象(特别是多边形)
  1. 计算点在曲线中的位置(百分比)
    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());  
  2. 几何对象简化
    Geotools demo:

        TopologyPreservingSimplifier.simplify(geometry, 0.001);

转载自:https://blog.csdn.net/lnxyangruosong/article/details/80888808

You may also like...