mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-11-14 06:18:12 +00:00
Merge remote-tracking branch 'origin/master' into windestimation
This commit is contained in:
commit
c2bb35126d
3 files changed
+51
-2
No files matched your search
+22
@@ -0,0 +1,22 @@
|
||||
package com.sap.sailing.server.gateway.deserialization.impl;
|
||||
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.common.Position;
|
||||
import com.sap.sailing.domain.common.impl.DegreePosition;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
|
||||
import com.sap.sailing.server.gateway.serialization.impl.MongoDbFriendlyPositionJsonSerializer;
|
||||
|
||||
public class MongoDbFriendlyPositionJsonDeserializer implements JsonDeserializer<Position> {
|
||||
|
||||
@Override
|
||||
public Position deserialize(JSONObject object) throws JsonDeserializationException {
|
||||
JSONArray coordinatesJson = (JSONArray) object.get(MongoDbFriendlyPositionJsonSerializer.FIELD_COORDINATES);
|
||||
Number longitudeDeg = (Number) coordinatesJson.get(0);
|
||||
Number latitudeDeg = (Number) coordinatesJson.get(1);
|
||||
return new DegreePosition(latitudeDeg.doubleValue(), longitudeDeg.doubleValue());
|
||||
}
|
||||
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
package com.sap.sailing.server.gateway.serialization.impl;
|
||||
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.common.Position;
|
||||
import com.sap.sailing.server.gateway.serialization.JsonSerializer;
|
||||
|
||||
public class MongoDbFriendlyPositionJsonSerializer implements JsonSerializer<Position> {
|
||||
|
||||
public static final String FIELD_TYPE = "type";
|
||||
public static final String FIELD_TYPE_VALUE = "Point";
|
||||
public static final String FIELD_COORDINATES = "coordinates";
|
||||
|
||||
@Override
|
||||
public JSONObject serialize(Position position) {
|
||||
JSONObject result = new JSONObject();
|
||||
JSONArray coordinates = new JSONArray();
|
||||
coordinates.add(position.getLngDeg());
|
||||
coordinates.add(position.getLatDeg());
|
||||
result.put(FIELD_TYPE, FIELD_TYPE_VALUE);
|
||||
result.put(FIELD_COORDINATES, coordinates);
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
+3
-2
@@ -31,7 +31,7 @@ public class RaceWindJsonSerializer extends AbstractTrackedRaceDataJsonSerialize
|
||||
public static final String SAMPLING_RATE = "samplingRate";
|
||||
public static final String FIXES = "fixes";
|
||||
|
||||
private final PositionJsonSerializer positionSerializer = new PositionJsonSerializer();
|
||||
private final MongoDbFriendlyPositionJsonSerializer positionSerializer = new MongoDbFriendlyPositionJsonSerializer();
|
||||
private final WindJsonSerializer windSerializer = new WindJsonSerializer(positionSerializer);
|
||||
|
||||
@Override
|
||||
@@ -85,7 +85,8 @@ public class RaceWindJsonSerializer extends AbstractTrackedRaceDataJsonSerialize
|
||||
windSourceJson.put(FIRST_POSITION, positionSerializer.serialize(firstWindSourcePosition));
|
||||
windSourceJson.put(START_TIME_POINT, firstWindSourceTimePoint.asMillis());
|
||||
windSourceJson.put(END_TIME_POINT, lastWindSourceTimePoint.asMillis());
|
||||
double samplingRate = duration.asSeconds() > 0 ? windFixesJson.size() / duration.asSeconds() : 0;
|
||||
double samplingRate = duration.asSeconds() > 0 ? windFixesJson.size() / duration.asSeconds()
|
||||
: 0;
|
||||
windSourceJson.put(SAMPLING_RATE, samplingRate);
|
||||
windSourceJson.put(FIXES, windFixesJson);
|
||||
windSourcesJson.add(windSourceJson);
|
||||
|
||||
Reference in new issue
Block a user