2020-05-09

PolyLine修复以及测试

PolyLine的问题主要在于有可能在PolyLine生成的时候给重复点进去,从而导致一系列几何有关segment的计算问题:

  1. 向量计算,两个重复点计算出零向量
  2. 长度计算,segment长度为0,很容易出Nan问题

于是在构造PolyLine时,对PolyLine中的点进行检查,如果有发现重复点,就抛出异常

检查出下列问题:

  • Jts中getEnd出现问题

  • Jts LinearLocation会存在normalize的问题

    val loc1 = new LinearLocation(0, 1, 1.0)
    val loc2 = new LinearLocation(0, 2, 0.0)
    
    loc1 compareTo loc2
    // the output is -1
    
  • Interpolate的时候有可能会取到两个过于近的点