2016-04-25 16 views
1

JAVAでESRIジオメトリ圧縮アルゴリズムを書いていますが、これはlinkです。JAVAのESRIジオメトリ圧縮アルゴリズム

提供されたリンクに記載された指示を使用して、これは私の現在のコードです:

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"

私は何が欠けていますか?どんな助けも高く評価されます。 おかげで、持つInteger.toStringによる

答えて

1

は()

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

そこで私は、あなたが "+" を追加する必要があると思います。

(私はf-gに誤字があると思います)

+0

ありがとうございます、私の問題は今解決されました。 –

関連する問題