Я понимаю, что это почти 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;
}
Какой документ? Можете ли вы предоставить прямую ссылку? –