本文整理汇总了Java中com.vividsolutions.jts.geom.util.GeometryTransformer.transform方法的典型用法代码示例。如果您正苦于以下问题:Java GeometryTransformer.transform方法的具体用法?Java GeometryTransformer.transform怎么用?Java GeometryTransformer.transform使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.vividsolutions.jts.geom.util.GeometryTransformer
的用法示例。
在下文中一共展示了GeometryTransformer.transform方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: lngLatToMeters
import com.vividsolutions.jts.geom.util.GeometryTransformer; //导入方法依赖的package包/类
/**
* Converts geometry from lat/lon (EPSG:4326)) to Spherical Mercator
* (EPSG:3857)
*
* @param geometry the geometry to convert
* @return the geometry transformed to EPSG:3857
*/
public Geometry lngLatToMeters(Geometry geometry) {
GeometryTransformer transformer = new GeometryTransformer() {
@Override
protected CoordinateSequence transformCoordinates(CoordinateSequence coords, Geometry parent) {
Coordinate[] newCoords = new Coordinate[coords.size()];
for (int i = 0; i < coords.size(); ++i) {
Coordinate coord = coords.getCoordinate(i);
newCoords[i] = lngLatToMeters(coord);
}
return new CoordinateArraySequence(newCoords);
}
};
Geometry result = transformer.transform(geometry);
return result;
}
示例2: metersToLngLat
import com.vividsolutions.jts.geom.util.GeometryTransformer; //导入方法依赖的package包/类
/**
* Converts geometry from Spherical Mercator
* (EPSG:3857) to lat/lon (EPSG:4326))
*
* @param geometry the geometry to convert
* @return the geometry transformed to EPSG:4326
*/
public Geometry metersToLngLat(Geometry geometry) {
GeometryTransformer transformer = new GeometryTransformer() {
@Override
protected CoordinateSequence transformCoordinates(CoordinateSequence coords, Geometry parent) {
Coordinate[] newCoords = new Coordinate[coords.size()];
for (int i = 0; i < coords.size(); ++i) {
Coordinate coord = coords.getCoordinate(i);
newCoords[i] = metersToLngLat(coord);
}
return new CoordinateArraySequence(newCoords);
}
};
Geometry result = transformer.transform(geometry);
return result;
}
示例3: RasterDataset
import com.vividsolutions.jts.geom.util.GeometryTransformer; //导入方法依赖的package包/类
/** */
public RasterDataset (WritableRaster raster,
GridDimensions srcDimensions,
Projection srcProj,
Projection dstProj) {
super("RASTER");
GeometryFactory factory = GISExtension.getState().factory();
GeometryTransformer srcToGeog = srcProj.getInverseTransformer();
GeometryTransformer geogToDst = dstProj.getForwardTransformer();
int minCol = Integer.MAX_VALUE;
int maxCol = -1;
int minRow = Integer.MAX_VALUE;
int maxRow = -1;
Envelope newEnvelope = new Envelope();
for (int col = 0; col <= srcDimensions.getGridWidth(); col += 2) {
for (int row = 0; row <= srcDimensions.getGridHeight(); row += 2) {
Point src = factory.createPoint(new Coordinate(srcDimensions.getColumnLeft(col),
srcDimensions.getRowBottom(row)));
Point dest = (Point)geogToDst.transform(srcToGeog.transform(src));
if (!dest.isEmpty()) {
if (col < minCol) {
minCol = col;
}
if (col > maxCol) {
maxCol = col;
}
if (row < minRow) {
minRow = row;
}
if (row > maxRow) {
maxRow = row;
}
newEnvelope.expandToInclude(dest.getCoordinate());
}
}
}
double scale = StrictMath.min((maxCol - minCol) / newEnvelope.getWidth(),
(maxRow - minRow) / newEnvelope.getHeight());
_dimensions = new GridDimensions(new Dimension((int)(scale * newEnvelope.getWidth()),
(int)(scale * newEnvelope.getHeight())),
newEnvelope);
ColorModel srcCM = new ValueColorModel(raster);
BufferedImage img = new BufferedImage(srcCM, raster, false, null);
RenderedImage dstImage = RasterUtils.reproject(img,
srcDimensions,
srcProj,
_dimensions,
dstProj,
factory,
new double[] { Double.NaN });
_raster = (WritableRaster)dstImage.getData();
_interpolation = Interpolation.getInstance(Interpolation.INTERP_NEAREST);
_interpArray = new double[_interpolation.getHeight()][_interpolation.getWidth()];
GISExtension.getState().datasetLoadNotify();
}