2016-04-25 3 views
1

Ich schreibe ESRI-Geometrie-Komprimierungsalgorithmus in JAVA, ich verwende diese link.ESRI-Geometrie-Komprimierungsalgorithmus in JAVA

Anweisungen Verwendung in angegebenem Link erwähnt, das ist mein aktueller Code:

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); 
} 

Erwartete Ausgabe: "+ 1lmo-66l1f + 1p8af + c-f + 1-5-4-q"

Aber ich bekomme das: "1lmo-66l1g1p8afc-f1-5-4-q"

Was fehlt mir? Jede Hilfe wird sehr geschätzt. Danke,

Antwort

1

Nach Integer.toString()

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

Deshalb denke ich, Sie die "+" hinzufügen müssen.

(Und ich denke, die f-g gibt es ihren Tippfehler).

+0

Danke, mein Problem ist jetzt gelöst. –