Я понимаю, что это почти 8 лет назад, но, возможно, это может помочь другому бесстрашному путешественнику.
Нам пришлось отойти от GeoTools, потому что это LGPL, что не разрешено нашим законным людям.
Я только что переместил наш код для использования proj4j (https://trac.osgeo.org/proj4j/). Не похоже, что он активно разрабатывается, но он работает для наших простых нужд. Кроме того, лицензия Apache 2.0, которая гораздо более разрешающая .
Он доступен через Maven, что упрощает его: http://search.maven.org/#artifactdetails%7Corg.osgeo%7Cproj4j%7C0.1.0%7Cjar.
Он не поддерживает напрямую EPSG: 900913, поскольку на самом деле это не официальный стандарт. Он поддерживает EPSG: 3857, это то же самое.
Вот фрагмент кода, который делает то, что вы ищете:
public Point2D.Double transform(Point2D.Double point, String sourceCRS, String targetCRS) {
Point2D.Double destPosition = new Point2D.Double();
CRSFactory factory = new CRSFactory();
CoordinateReferenceSystem srcCrs = factory.createFromName(sourceCRS); // Use "EPSG:3857" here instead of 900913.
CoordinateReferenceSystem destCrs = factory.createFromName(targetCRS); // Use "EPSG:4326 here.
CoordinateTransform transform = new CoordinateTransformFactory().createTransform(srcCrs, destCrs);
ProjCoordinate srcCoord = new ProjCoordinate(point.getX(), point.getY());
ProjCoordinate destCoord = new ProjCoordinate();
transform.transform(srcCoord, destCoord);
destPosition.setLocation(destCoord.x, destCoord.y);
return destPosition;
}