use of org.openforis.idm.model.Coordinate in project collect by openforis.
the class SamplingPointDataKmlGenerator method generate.
public void generate() {
Kml kml = KmlFactory.createKml();
Document doc = kml.createAndSetDocument();
List<SamplingDesignItem> samplingDesignItems = loadSamplingDesignItems();
for (SamplingDesignItem item : samplingDesignItems) {
Coordinate coordinate = new Coordinate(item.getX(), item.getY(), item.getSrsId());
LngLat lngLatAlt = createLngLat(coordinate);
doc.createAndAddPlacemark().withName(Strings.joinNotBlank(item.getLevelCodes(), "|")).withOpen(true).createAndSetPoint().addToCoordinates(lngLatAlt.getLongitude(), lngLatAlt.getLatitude());
}
this.kml = kml;
}
use of org.openforis.idm.model.Coordinate in project collect by openforis.
the class SamplingPointDataKmlGenerator method createLngLat.
private LngLat createLngLat(Coordinate coord) {
try {
CollectSurveyContext surveyContext = survey.getContext();
CoordinateOperations coordOpts = surveyContext.getCoordinateOperations();
Coordinate wgs84Coord = coordOpts.convertToWgs84(coord);
return new LngLat(wgs84Coord.getX(), wgs84Coord.getY());
} catch (Exception e) {
return null;
}
}
use of org.openforis.idm.model.Coordinate in project collect by openforis.
the class CSVValueFormatter method format.
public String format(AttributeDefinition defn, Value value) {
if (value == null) {
return "";
} else if (value instanceof BooleanValue) {
return ((BooleanValue) value).getValue().toString();
} else if (value instanceof Code) {
CodeListService codeListService = defn.getSurvey().getContext().getCodeListService();
CodeList list = ((CodeAttributeDefinition) defn).getList();
if (codeListService.hasQualifiableItems(list)) {
return String.format("%s: %s", ((Code) value).getCode(), ((Code) value).getQualifier());
} else {
return ((Code) value).getCode();
}
} else if (value instanceof Coordinate) {
return value.toString();
} else if (value instanceof Date) {
Date date = (Date) value;
return String.format("%d/%d/%d", ((Date) value).getDay(), ((Date) value).getMonth(), date.getYear());
} else if (value instanceof File) {
return ((File) value).getFilename();
} else if (value instanceof NumberValue) {
Number val = ((NumberValue<?>) value).getValue();
NumberFormat numberFormat = NumberFormat.getInstance(Locale.ENGLISH);
String formattedVal = numberFormat.format(val);
return formattedVal;
} else if (value instanceof NumericRange) {
Number from = ((NumericRange<?>) value).getFrom();
Number to = ((NumericRange<?>) value).getFrom();
String format;
if (value instanceof IntegerRange) {
format = "%d-%d";
} else {
format = "%f-%f";
}
String formattedValue = String.format(Locale.ENGLISH, format, from, to);
return formattedValue;
} else if (value instanceof TextValue) {
return ((TextValue) value).getValue();
} else if (value instanceof Time) {
Time time = (Time) value;
return String.format("%d:%d", time.getHour(), time.getMinute());
} else
throw new IllegalArgumentException("Unsupported attribute value type: " + value.getClass().getName());
}
use of org.openforis.idm.model.Coordinate in project collect by openforis.
the class DatabaseLookupProvider method lookupSamplingPointCoordinate.
@Override
public Coordinate lookupSamplingPointCoordinate(Survey survey, String... keys) {
String valueColumnName = OfcSamplingDesign.OFC_SAMPLING_DESIGN.LOCATION.getName();
Object value = lookupSamplingPointColumnValue(survey, valueColumnName, keys);
Coordinate coordinate = Coordinate.parseCoordinate(value);
return coordinate;
}
use of org.openforis.idm.model.Coordinate in project collect by openforis.
the class RecordCoordinatesKmlGeneratorJob method processAttribute.
private void processAttribute(CoordinateAttribute coordAttr) {
if (coordAttr.isFilled()) {
Coordinate coordinate = coordAttr.getValue();
Coordinate wgs84Coordinate = coordinateOperations.convertTo(coordinate, SpatialReferenceSystem.WGS84_SRS_ID);
kmlDoc.createAndAddPlacemark().withName(((CollectRecord) coordAttr.getRecord()).getRootEntityKeyValues().toString()).withOpen(Boolean.TRUE).createAndSetPoint().addToCoordinates(wgs84Coordinate.getY(), wgs84Coordinate.getX());
}
}
Aggregations