use of com.revolsys.io.channels.ChannelReader in project com.revolsys.open by revolsys.
the class EpsgCoordinateSystems method loadCoordOperationMethod.
private static IntHashMap<CoordinateOperationMethod> loadCoordOperationMethod(final IntHashMap<List<ParameterName>> paramOrderByMethodId, final IntHashMap<List<Byte>> paramReversalByMethodId) {
final IntHashMap<CoordinateOperationMethod> methodById = new IntHashMap<>();
try (ChannelReader reader = newChannelReader("coordOperationMethod")) {
while (true) {
final int id = reader.getInt();
final String name = reader.getStringUtf8ByteCount();
final boolean reverse = readBoolean(reader);
final boolean deprecated = readBoolean(reader);
final List<ParameterName> parameterNames = paramOrderByMethodId.getOrDefault(id, Collections.emptyList());
final List<Byte> reversal = paramReversalByMethodId.getOrDefault(id, Collections.emptyList());
final CoordinateOperationMethod method = new CoordinateOperationMethod(id, name, reverse, deprecated, parameterNames);
methodById.put(id, method);
}
} catch (final NoSuchResourceException e) {
} catch (final WrappedException e) {
if (Exceptions.isException(e, EOFException.class)) {
} else {
throw e;
}
}
return methodById;
}
use of com.revolsys.io.channels.ChannelReader in project com.revolsys.open by revolsys.
the class EpsgCoordinateSystems method loadDatum.
private static void loadDatum() {
final IntHashMap<Ellipsoid> ellipsoids = loadEllipsoid();
try (ChannelReader reader = newChannelReader("datum")) {
while (true) {
final int id = reader.getInt();
final String name = reader.getStringUtf8ByteCount();
final int datumType = reader.getByte();
final Ellipsoid ellipsoid = readCode(reader, ellipsoids);
final PrimeMeridian primeMeridian = readCode(reader, PRIME_MERIDIAN_BY_ID);
final Area area = readCode(reader, AREA_BY_ID);
final boolean deprecated = readBoolean(reader);
final EpsgAuthority authority = new EpsgAuthority(id);
Datum datum;
if (datumType == 0) {
datum = new GeodeticDatum(authority, name, area, deprecated, ellipsoid, primeMeridian);
} else if (datumType == 1) {
datum = new VerticalDatum(authority, name, area, deprecated);
} else if (datumType == 2) {
datum = new EngineeringDatum(authority, name, area, deprecated);
} else {
throw new IllegalArgumentException("Unknown datumType=" + datumType);
}
DATUM_BY_ID.put(id, datum);
}
} catch (final NoSuchResourceException e) {
} catch (final WrappedException e) {
if (Exceptions.isException(e, EOFException.class)) {
} else {
throw e;
}
}
}
use of com.revolsys.io.channels.ChannelReader in project com.revolsys.open by revolsys.
the class EpsgCoordinateSystems method loadPrimeMeridians.
private static void loadPrimeMeridians() {
try (ChannelReader reader = newChannelReader("primeMeridian")) {
while (true) {
final int id = reader.getInt();
final String name = reader.getStringUtf8ByteCount();
final AngularUnit unit = (AngularUnit) readCode(reader, UNIT_BY_ID);
final double longitude = reader.getDouble();
final double longitudeDegrees = unit.toDegrees(longitude);
final EpsgAuthority authority = new EpsgAuthority(id);
final PrimeMeridian primeMeridian = new PrimeMeridian(name, longitudeDegrees, authority, false);
PRIME_MERIDIAN_BY_ID.put(id, primeMeridian);
}
} catch (final NoSuchResourceException e) {
} catch (final WrappedException e) {
if (Exceptions.isException(e, EOFException.class)) {
} else {
throw e;
}
}
}
use of com.revolsys.io.channels.ChannelReader in project com.revolsys.open by revolsys.
the class EpsgCoordinateSystems method loadArea.
private static void loadArea() {
try (ChannelReader reader = newChannelReader("area")) {
while (true) {
final int code = reader.getInt();
final String name = reader.getStringUtf8ByteCount();
final double minX = reader.getDouble();
final double minY = reader.getDouble();
final double maxX = reader.getDouble();
final double maxY = reader.getDouble();
final boolean deprecated = readBoolean(reader);
final Authority authority = new EpsgAuthority(code);
BoundingBox boundingBox;
if (Double.isFinite(minX) || Double.isFinite(minX) || Double.isFinite(minX) || Double.isFinite(minX)) {
boundingBox = new BoundingBoxDoubleXY(minX, minY, maxX, maxY);
} else {
boundingBox = BoundingBox.empty();
}
final Area area = new Area(name, boundingBox, authority, deprecated);
AREA_BY_ID.put(code, area);
}
} catch (final NoSuchResourceException e) {
} catch (final WrappedException e) {
if (Exceptions.isException(e, EOFException.class)) {
} else {
throw e;
}
}
}
use of com.revolsys.io.channels.ChannelReader in project com.revolsys.open by revolsys.
the class EpsgCoordinateSystems method loadCoordOperation.
private static void loadCoordOperation(final IntHashMap<CoordinateOperationMethod> methodById, final IntHashMap<Map<ParameterName, ParameterValue>> operationParameters, final IntHashMap<List<Byte>> paramReversal) {
try (ChannelReader reader = newChannelReader("coordOperation")) {
while (true) {
final int id = reader.getInt();
final CoordinateOperationMethod method = readCode(reader, methodById);
final String name = reader.getStringUtf8ByteCount();
final byte type = reader.getByte();
final int sourceCrsCode = reader.getInt();
final int targetCrsCode = reader.getInt();
final String transformationVersion = reader.getStringUtf8ByteCount();
final int variant = reader.getInt();
final Area area = readCode(reader, AREA_BY_ID);
final double accuracy = reader.getDouble();
final boolean deprecated = readBoolean(reader);
final Map<ParameterName, ParameterValue> parameters = operationParameters.getOrDefault(id, Collections.emptyMap());
final CoordinateOperation coordinateOperation = new CoordinateOperation(id, method, name, type, sourceCrsCode, targetCrsCode, transformationVersion, variant, area, accuracy, parameters, deprecated);
OPERATION_BY_ID.put(id, coordinateOperation);
}
} catch (final NoSuchResourceException e) {
} catch (final WrappedException e) {
if (Exceptions.isException(e, EOFException.class)) {
} else {
Logs.error(EpsgCoordinateSystems.class, "Error loading coordOperation", e);
}
}
}
Aggregations