diff options
author | unknown <jones_s-r@ESDR-LTH4X5R72.scisys-r.local> | 2017-01-25 15:20:15 +0000 |
---|---|---|
committer | unknown <jones_s-r@ESDR-LTH4X5R72.scisys-r.local> | 2017-01-25 15:20:15 +0000 |
commit | 5e2fef6aea1dedd357151c7994dc702c603be009 (patch) | |
tree | 62a9f191e7cda5b4e0e258390a3276f921ce6f63 | |
parent | 285dea38f8069278217568b38814d51121755912 (diff) | |
download | geojson-jackson-5e2fef6aea1dedd357151c7994dc702c603be009.tar.gz |
Double to String conversion removed from LngLatAltSerializer so that generated Json will adhere to geoJson specification.
-rw-r--r-- | src/main/java/org/geojson/jackson/LngLatAltSerializer.java | 35 |
1 files changed, 2 insertions, 33 deletions
diff --git a/src/main/java/org/geojson/jackson/LngLatAltSerializer.java b/src/main/java/org/geojson/jackson/LngLatAltSerializer.java index bdcb8fe..e731eb8 100644 --- a/src/main/java/org/geojson/jackson/LngLatAltSerializer.java +++ b/src/main/java/org/geojson/jackson/LngLatAltSerializer.java @@ -12,43 +12,12 @@ public class LngLatAltSerializer extends JsonSerializer<LngLatAlt> { public static final long POW10[] = {1, 10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000, 1000000000}; - /** - * The following must convert double to String in a much more efficient way then Double.toString() - * - * @See http://stackoverflow.com/questions/10553710/fast-double-to-string-conversion-with-given-precision - * @param val - * @param precision - * @return - */ - protected static String fastDoubleToString(double val, int precision) { - StringBuilder sb = new StringBuilder(); - if (val < 0) { - sb.append('-'); - val = -val; - } - long exp = POW10[precision]; - long lval = (long)(val * exp + 0.5); - sb.append(lval / exp).append('.'); - long fval = lval % exp; - for (int p = precision - 1; p > 0 && fval < POW10[p] && fval>0; p--) { - sb.append('0'); - } - sb.append(fval); - int i = sb.length()-1; - while(sb.charAt(i)=='0' && sb.charAt(i-1)!='.') - { - sb.deleteCharAt(i); - i--; - } - return sb.toString(); - } - @Override public void serialize(LngLatAlt value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException { jgen.writeStartArray(); - jgen.writeNumber(fastDoubleToString(value.getLongitude(), 9)); - jgen.writeNumber(fastDoubleToString(value.getLatitude(), 9)); + jgen.writeNumber(value.getLongitude()); + jgen.writeNumber(value.getLatitude()); if (value.hasAltitude()) { jgen.writeNumber(value.getAltitude()); |