return new NokiaLandmarkExchangeRoute(name, asDescription(description), positions, lmx);
}
private Lmx createLmx(NokiaLandmarkExchangeRoute route, int startIndex, int endIndex) {
ObjectFactory objectFactory = new ObjectFactory();
Lmx lmx = route.getLmx();
if (lmx != null) {
if (lmx.getLandmark() != null)
lmx.setLandmark(null);
} else
lmx = objectFactory.createLmx();
LandmarkCollectionType landmarkCollectionType = lmx.getLandmarkCollection();
if (landmarkCollectionType == null)
landmarkCollectionType = objectFactory.createLandmarkCollectionType();
landmarkCollectionType.setName(asRouteName(route.getName()));
landmarkCollectionType.setDescription(asDescription(route.getDescription()));
List<LandmarkType> landmarkTypeList = landmarkCollectionType.getLandmark();
landmarkTypeList.clear();
List<Wgs84Position> positions = route.getPositions();
for (int i = startIndex; i < endIndex; i++) {
Wgs84Position position = positions.get(i);
LandmarkType landmarkType = position.getOrigin(LandmarkType.class);
if (landmarkType == null)
landmarkType = objectFactory.createLandmarkType();
landmarkType.setName(position.getDescription());
CoordinatesType coordinatesType = landmarkType.getCoordinates();
if (coordinatesType == null)
coordinatesType = objectFactory.createCoordinatesType();
coordinatesType.setAltitude(formatFloat(position.getElevation()));
coordinatesType.setLatitude(formatDouble(position.getLatitude(), 7));
coordinatesType.setLongitude(formatDouble(position.getLongitude(), 7));
coordinatesType.setTimeStamp(formatTime(position.getTime()));
landmarkType.setCoordinates(coordinatesType);
landmarkTypeList.add(landmarkType);
}
lmx.setLandmarkCollection(landmarkCollectionType);
return lmx;
}