List<Position> points = new ArrayList<Position>();
points.add(primitiveFactory.createPoint( new double[]{-123.47009555832284,48.543261561072285} ));
points.add(primitiveFactory.createPoint( new double[]{-123.46972894676578,48.55009592117936} ));
points.add(primitiveFactory.createPoint( new double[]{-123.45463828850829,48.54973520267305} ));
points.add(primitiveFactory.createPoint( new double[]{-123.4550070827961,48.54290089070186} ));
LineString lineString = geometryFactory.createLineString(points);
List curveSegmentList = Collections.singletonList(lineString);
CurveImpl curve1 = (CurveImpl) primitiveFactory.createCurve(curveSegmentList);
CurveImpl curve2 = (CurveImpl) curve1.transform(crs2);