diff options
author | Adrian Stabiszewski <github@grundid.de> | 2017-01-30 21:36:31 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-01-30 21:36:31 +0100 |
commit | 6f88c45320c356347fb9d7445a9cd8715ce0d5ef (patch) | |
tree | 62a9f191e7cda5b4e0e258390a3276f921ce6f63 | |
parent | 285dea38f8069278217568b38814d51121755912 (diff) | |
parent | 5e2fef6aea1dedd357151c7994dc702c603be009 (diff) | |
download | geojson-jackson-6f88c45320c356347fb9d7445a9cd8715ce0d5ef.tar.gz |
Merge pull request #37 from Ruckley/LngLatAltSerializer-fix
Fix for LngLatAltSerializer so that it produces an array of doubles rather than strings
-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()); |