aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <jones_s-r@ESDR-LTH4X5R72.scisys-r.local>2017-01-25 15:20:15 +0000
committerunknown <jones_s-r@ESDR-LTH4X5R72.scisys-r.local>2017-01-25 15:20:15 +0000
commit5e2fef6aea1dedd357151c7994dc702c603be009 (patch)
tree62a9f191e7cda5b4e0e258390a3276f921ce6f63
parent285dea38f8069278217568b38814d51121755912 (diff)
downloadgeojson-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.java35
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());