【问题标题】:ESRI geometry compression algorithm in JAVAJAVA中的ESRI几何压缩算法
【发布时间】:2016-08-18 23:23:42
【问题描述】:

我正在用 JAVA 编写 ESRI 几何压缩算法,我正在使用这个link

使用提供的链接中提到的说明,这是我当前的代码:

public static void main(String[] args) {
    String dirPoints = "-118.356654545455,34.1146;-118.356436363636,34.1143272727273;-118.356418181818,34.1142363636364;-118.356490909091,34.1137636363636";
    String compressedGeometry = "";
    double xPointPrev = 0.0;
    double yPointPrev = 0.0;
    int coefficient = 55000;
    String coefficient_32 = Integer.toString(coefficient, 32);
    compressedGeometry = coefficient_32 + compressedGeometry;

    String[] path_XY = dirPoints.split(";");
    for (int i = 0, leni = path_XY.length; i < leni; i++) {

        String[] xy = path_XY[i].split(",");
        double pointX = Double.parseDouble(xy[0].trim());
        double pointY = Double.parseDouble(xy[1].trim());

        int xDifference = (int) Math.round(coefficient * (pointX - xPointPrev));
        int yDifference = (int) Math.round(coefficient * (pointY - yPointPrev));

        String xDifference_32 = Integer.toString(xDifference, 32);
        compressedGeometry += xDifference_32;

        String yDifference_32 = Integer.toString(yDifference, 32);
        compressedGeometry += yDifference_32;

        xPointPrev = pointX;
        yPointPrev = pointY;
    }
    System.out.println(compressedGeometry);
}

预期输出:“+1lmo-66l1f+1p8af+c-f+1-5-4-q”

但我得到了这个:“1lmo-66l1g1p8afc-f1-5-4-q”

我错过了什么?非常感谢任何帮助。 谢谢,

【问题讨论】:

    标签: java algorithm compression esri


    【解决方案1】:

    根据 Integer.toString()

    "If the first argument is not negative, no sign character appears in the result."
    

    因此我认为您需要添加“+”。

    (我认为 f-g 是他们的错字)。

    【讨论】:

      猜你喜欢
      • 2013-11-09
      • 2021-02-05
      • 2019-11-11
      • 1970-01-01
      • 1970-01-01
      • 2011-07-07
      • 1970-01-01
      • 1970-01-01
      • 2022-06-15
      相关资源
      最近更新 更多