/** * @see org.locationtech.jts.geom.CoordinateSequence#getX(int) */ public void getCoordinate(int index, Coordinate coord) { coord.x = coordinates[index].x; coord.y = coordinates[index].y; coord.setZ( coordinates[index].getZ()); coord.setM( coordinates[index].getM()); }
@Override public Coordinate readPoint(DataInput input) throws IOException { Coordinate coordinate = super.readPoint(input); if (hasZ) { coordinate.setZ(Varint.readSignedVarLong(input) / zPrecisionMultiplier); } if (hasM) { coordinate.setM(Varint.readSignedVarLong(input) / mPrecisionMultiplier); } return coordinate; }
/** * Confirm the z field is not supported by getZ and setZ. */ private void checkMUnsupported(Coordinate coord ) { try { coord.setM(0.0); fail(coord.getClass().getSimpleName() + " does not support M"); } catch(IllegalArgumentException expected) { } assertTrue( Double.isNaN(coord.getM())); }
/** * @see org.locationtech.jts.geom.CoordinateSequence#getCoordinate(int) */ public void getCoordinate(int i, Coordinate coord) { coord.x = getOrdinate(i, 0); coord.y = getOrdinate(i, 1); if (hasZ()) { coord.setZ(getZ(i)); } if (hasM()) { coord.setM(getM(i)); } }
@Override public Coordinate[] readPointArray(DataInput input) throws IOException { int numCoordinates = Varint.readUnsignedVarInt(input); Coordinate[] coordinates = new Coordinate[numCoordinates]; long lastX = 0; long lastY = 0; long lastZ = 0; long lastM = 0; for (int i = 0; i < numCoordinates; i++) { lastX = Varint.readSignedVarLong(input) + lastX; lastY = Varint.readSignedVarLong(input) + lastY; coordinates[i] = new Coordinate( ((double) lastX) / precisionMultiplier, ((double) lastY) / precisionMultiplier); if (hasZ) { lastZ = Varint.readSignedVarLong(input) + lastZ; coordinates[i].setZ(((double) lastZ) / zPrecisionMultiplier); } if (hasM) { lastM = Varint.readSignedVarLong(input) + lastM; coordinates[i].setM(((double) lastM) / mPrecisionMultiplier); } } return coordinates; } }
public void testCoordinateXYZM() { Coordinate xyzm = new CoordinateXYZM(); xyzm.setZ(1.0); assertEquals( 1.0, xyzm.getZ()); xyzm.setM(1.0); assertEquals( 1.0, xyzm.getM()); Coordinate coord = new Coordinate(xyzm); // copy assertEquals( xyzm, coord ); assertTrue( xyzm.equalInZ(coord,0.000001) ); assertTrue( Double.isNaN(coord.getM())); coord = new Coordinate(1.0,1.0,1.0); // 2.5d xyzm = new CoordinateXYZM( coord ); // copy assertEquals( xyzm, coord ); assertTrue( xyzm.equalInZ(coord,0.000001) ); }
public void testCoordinateXYM() { Coordinate xym = new CoordinateXYM(); checkZUnsupported(xym); xym.setM(1.0); assertEquals( 1.0, xym.getM()); Coordinate coord = new Coordinate(xym); // copy assertEquals( xym, coord ); assertTrue( !xym.equalInZ(coord,0.000001) ); coord = new Coordinate(1.0,1.0,1.0); // 2.5d xym = new CoordinateXYM( coord ); // copy assertEquals( xym, coord ); assertTrue( !xym.equalInZ(coord,0.000001) ); } public void testCoordinateXYZM() {