The course points can now be rotated,
- Created markToGPSCoordinate Class - Added Rotation to marks #story[1092]
This commit is contained in:
@@ -7,6 +7,7 @@ import shared.exceptions.XMLReaderException;
|
||||
import shared.model.CompoundMark;
|
||||
import shared.model.Corner;
|
||||
import shared.model.GPSCoordinate;
|
||||
import shared.model.Mark;
|
||||
|
||||
import javax.xml.bind.JAXBContext;
|
||||
import javax.xml.bind.JAXBException;
|
||||
@@ -56,21 +57,9 @@ public class RaceXMLCreator {
|
||||
Race.Course.CompoundMark cm = raceFactory.createRaceCourseCompoundMark();
|
||||
cm.setName(mark.getName());
|
||||
cm.setCompoundMarkID(String.valueOf(mark.getId()));
|
||||
if (mark.getMark1() != null){
|
||||
Race.Course.CompoundMark.Mark m1 = raceFactory.createRaceCourseCompoundMarkMark();
|
||||
m1.setName(mark.getMark1().getName());
|
||||
m1.setTargetLat(String.valueOf(mark.getMark1().getPosition().getLatitude()));
|
||||
m1.setTargetLng(String.valueOf(mark.getMark1().getPosition().getLongitude()));
|
||||
m1.setSourceID(String.valueOf(mark.getMark1().getSourceID()));
|
||||
cm.getMark().add(m1);
|
||||
}
|
||||
//make this not copy paste later but just need the concept working right now
|
||||
if (mark.getMark2() != null){
|
||||
Race.Course.CompoundMark.Mark m2 = raceFactory.createRaceCourseCompoundMarkMark();
|
||||
m2.setName(mark.getMark1().getName());
|
||||
m2.setTargetLat(String.valueOf(mark.getMark1().getPosition().getLatitude()));
|
||||
m2.setTargetLng(String.valueOf(mark.getMark1().getPosition().getLongitude()));
|
||||
m2.setSourceID(String.valueOf(mark.getMark1().getSourceID()));
|
||||
cm.getMark().add(setMarkFromMark(raceFactory, mark.getMark1()));
|
||||
Race.Course.CompoundMark.Mark m2 = setMarkFromMark(raceFactory, mark.getMark2());
|
||||
if (m2 != null) {
|
||||
cm.getMark().add(m2);
|
||||
}
|
||||
course.getCompoundMark().add(cm);
|
||||
@@ -91,6 +80,18 @@ public class RaceXMLCreator {
|
||||
return race;
|
||||
}
|
||||
|
||||
public static Race.Course.CompoundMark.Mark setMarkFromMark(RaceFactory raceFactory, Mark mark){
|
||||
if (mark != null) {
|
||||
Race.Course.CompoundMark.Mark m = raceFactory.createRaceCourseCompoundMarkMark();
|
||||
m.setName(mark.getName());
|
||||
m.setTargetLat(String.valueOf(mark.getPosition().getLatitude()));
|
||||
m.setTargetLng(String.valueOf(mark.getPosition().getLongitude()));
|
||||
m.setSourceID(String.valueOf(mark.getSourceID()));
|
||||
return m;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static String alterRaceToWind(String s, double degrees) throws XMLReaderException, InvalidRaceDataException, JAXBException {
|
||||
RaceXMLReader reader = new RaceXMLReader(s, XMLFileType.ResourcePath);
|
||||
|
||||
@@ -103,6 +104,15 @@ public class RaceXMLCreator {
|
||||
limit.setLon(String.valueOf(rotatedLim.getLongitude()));
|
||||
}
|
||||
|
||||
for(Race.Course.CompoundMark compoundMark: race.getCourse().getCompoundMark()){
|
||||
for (Race.Course.CompoundMark.Mark mark: compoundMark.getMark()){
|
||||
System.out.println(mark);
|
||||
GPSCoordinate rotatedMark = rotate(center, markToGPSCoordinate(mark), degrees);
|
||||
mark.setTargetLat(String.valueOf(rotatedMark.getLatitude()));
|
||||
mark.setTargetLng(String.valueOf(rotatedMark.getLongitude()));
|
||||
}
|
||||
}
|
||||
|
||||
JAXBContext context = JAXBContext.newInstance(Race.class);
|
||||
Marshaller jaxbMarshaller = context.createMarshaller();
|
||||
jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
|
||||
@@ -127,6 +137,10 @@ public class RaceXMLCreator {
|
||||
return new GPSCoordinate(resLat, resLon);
|
||||
}
|
||||
|
||||
public static GPSCoordinate markToGPSCoordinate(Race.Course.CompoundMark.Mark mark){
|
||||
return new GPSCoordinate(Double.parseDouble(mark.getTargetLat()), Double.parseDouble(mark.getTargetLng()));
|
||||
}
|
||||
|
||||
public static GPSCoordinate getCenter(Race race){
|
||||
double avgLat = 0;
|
||||
double avgLng = 0;
|
||||
|
||||
Reference in New Issue
Block a user