本文整理汇总了Java中mil.nga.geopackage.projection.ProjectionTransform.transform方法的典型用法代码示例。如果您正苦于以下问题:Java ProjectionTransform.transform方法的具体用法?Java ProjectionTransform.transform怎么用?Java ProjectionTransform.transform使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类mil.nga.geopackage.projection.ProjectionTransform
的用法示例。
在下文中一共展示了ProjectionTransform.transform方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getBoundingBox
import mil.nga.geopackage.projection.ProjectionTransform; //导入方法依赖的package包/类
/**
* {@inheritDoc}
*/
@Override
public BoundingBox getBoundingBox() {
Contents contents = geometryColumns.getContents();
BoundingBox boundingBox = contents.getBoundingBox();
if (boundingBox != null) {
Projection contentsProjection = ProjectionFactory
.getProjection(contents.getSrs());
if (!projection.equals(contentsProjection)) {
ProjectionTransform transform = contentsProjection
.getTransformation(projection);
boundingBox = transform.transform(boundingBox);
}
}
return boundingBox;
}
示例2: getBoundingBox
import mil.nga.geopackage.projection.ProjectionTransform; //导入方法依赖的package包/类
/**
* {@inheritDoc}
*/
@Override
public BoundingBox getBoundingBox() {
Contents contents = geometryColumns.getContents();
Projection contentsProjection = ProjectionFactory
.getProjection(contents.getSrs());
BoundingBox boundingBox = contents.getBoundingBox();
if (!projection.equals(contentsProjection)) {
ProjectionTransform transform = contentsProjection
.getTransformation(projection);
boundingBox = transform.transform(boundingBox);
}
return boundingBox;
}
示例3: getZoomLevel
import mil.nga.geopackage.projection.ProjectionTransform; //导入方法依赖的package包/类
/**
* Get the approximate zoom level of where the bounding box of the user data
* fits into the world
*
* @return zoom level
* @since 1.1.0
*/
public int getZoomLevel() {
Projection projection = getProjection();
if (projection == null) {
throw new GeoPackageException(
"No projection was set which is required to determine the zoom level");
}
int zoomLevel = 0;
BoundingBox boundingBox = getBoundingBox();
if (boundingBox != null) {
if (projection.getUnit() instanceof DegreeUnit) {
boundingBox = TileBoundingBoxUtils
.boundDegreesBoundingBoxWithWebMercatorLimits(boundingBox);
}
ProjectionTransform webMercatorTransform = projection
.getTransformation(ProjectionConstants.EPSG_WEB_MERCATOR);
BoundingBox webMercatorBoundingBox = webMercatorTransform
.transform(boundingBox);
zoomLevel = TileBoundingBoxUtils
.getZoomLevel(webMercatorBoundingBox);
}
return zoomLevel;
}
示例4: getTileSources
import mil.nga.geopackage.projection.ProjectionTransform; //导入方法依赖的package包/类
/**
* returns ALL available raster tile sources for all "imported" geopackage databases
*
* @return
*/
public List<GeopackageRasterTileSource> getTileSources() {
List<GeopackageRasterTileSource> srcs = new ArrayList<>();
List<String> databases = manager.databases();
for (int i = 0; i < databases.size(); i++) {
GeoPackage open = manager.open(databases.get(i));
List<String> tileTables = open.getTileTables();
for (int k = 0; k < tileTables.size(); k++) {
TileDao tileDao = open.getTileDao(tileTables.get(k));
mil.nga.geopackage.BoundingBox boundingBox = tileDao.getBoundingBox();
ProjectionTransform transformation = tileDao.getProjection().getTransformation(tileDao.getProjection());
boundingBox = transformation.transform(boundingBox);
BoundingBox bounds = new BoundingBox(boundingBox.getMaxLatitude(), boundingBox.getMaxLongitude(), boundingBox.getMinLatitude(), boundingBox.getMinLongitude());
srcs.add(new GeopackageRasterTileSource(databases.get(i), tileTables.get(k), (int)tileDao.getMinZoom(), (int)tileDao.getMaxZoom(), bounds));
}
open.close();
}
return srcs;
}
示例5: getTileSource
import mil.nga.geopackage.projection.ProjectionTransform; //导入方法依赖的package包/类
public GeopackageRasterTileSource getTileSource(String database, String table) {
Iterator<GeoPackage> iterator = geopackage.tileSources.iterator();
while (iterator.hasNext()){
GeoPackage next = iterator.next();
if (next.getName().equalsIgnoreCase(database)) {
//found the database
if (next.getTileTables().contains(table)) {
//find the tile table
TileDao tileDao = next.getTileDao(table);
mil.nga.geopackage.BoundingBox boundingBox = tileDao.getBoundingBox();
ProjectionTransform transformation = tileDao.getProjection().getTransformation(tileDao.getProjection());
boundingBox=transformation.transform(boundingBox);
BoundingBox bounds =new BoundingBox(boundingBox.getMaxLatitude(),boundingBox.getMaxLongitude(),boundingBox.getMinLatitude(),boundingBox.getMinLongitude());
return new GeopackageRasterTileSource(database,table, (int)tileDao.getMinZoom(),(int)tileDao.getMaxZoom(), bounds);
}
}
}
return null;
}
示例6: projectGeometry
import mil.nga.geopackage.projection.ProjectionTransform; //导入方法依赖的package包/类
/**
* Project the geometry into the provided projection
*
* @param geometryData geometry data
* @param projection projection
*/
public void projectGeometry(GeoPackageGeometryData geometryData, Projection projection) {
if (geometryData.getGeometry() != null) {
try {
SpatialReferenceSystemDao srsDao = DaoManager.createDao(featureDao.getDb().getConnectionSource(), SpatialReferenceSystem.class);
int srsId = geometryData.getSrsId();
SpatialReferenceSystem srs = srsDao.queryForId((long) srsId);
if (!projection.equals(srs.getOrganization(), srs.getOrganizationCoordsysId())) {
Projection geomProjection = ProjectionFactory.getProjection(srs);
ProjectionTransform transform = geomProjection.getTransformation(projection);
Geometry projectedGeometry = transform.transform(geometryData.getGeometry());
geometryData.setGeometry(projectedGeometry);
SpatialReferenceSystem projectionSrs = srsDao.getOrCreateCode(projection.getAuthority(), Long.parseLong(projection.getCode()));
geometryData.setSrsId((int) projectionSrs.getSrsId());
}
} catch (SQLException e) {
throw new GeoPackageException("Failed to project geometry to projection with Authority: "
+ projection.getAuthority() + ", Code: " + projection.getCode(), e);
}
}
}
示例7: setBoundingBox
import mil.nga.geopackage.projection.ProjectionTransform; //导入方法依赖的package包/类
/**
* Set the bounding box, provided as the indicated projection
*
* @param boundingBox
* @param projection
*/
public void setBoundingBox(BoundingBox boundingBox, Projection projection) {
ProjectionTransform projectionToWebMercator = projection
.getTransformation(ProjectionConstants.EPSG_WEB_MERCATOR);
webMercatorBoundingBox = projectionToWebMercator
.transform(boundingBox);
}
示例8: getBoundingBox
import mil.nga.geopackage.projection.ProjectionTransform; //导入方法依赖的package包/类
/**
* Get the bounding box as the provided projection
*
* @param projection
*/
public BoundingBox getBoundingBox(Projection projection) {
ProjectionTransform webMercatorToProjection = ProjectionFactory
.getProjection(ProjectionConstants.EPSG_WEB_MERCATOR)
.getTransformation(projection);
return webMercatorToProjection
.transform(webMercatorBoundingBox);
}
示例9: getFeatureBoundingBox
import mil.nga.geopackage.projection.ProjectionTransform; //导入方法依赖的package包/类
/**
* Get the bounding box in the feature projection from the bounding box in
* the provided projection
*
* @param boundingBox
* @param projection
* @return feature projected bounding box
*/
private BoundingBox getFeatureBoundingBox(BoundingBox boundingBox,
Projection projection) {
ProjectionTransform projectionTransform = projection
.getTransformation(featureDao.getProjection());
BoundingBox featureBoundingBox = projectionTransform
.transform(boundingBox);
return featureBoundingBox;
}
示例10: getTileCount
import mil.nga.geopackage.projection.ProjectionTransform; //导入方法依赖的package包/类
/**
* Get the tile count of tiles to be generated
*
* @return tile count
*/
public int getTileCount() {
if (tileCount == null) {
long count = 0;
BoundingBox requestBoundingBox = null;
if (projection.getUnit() instanceof DegreeUnit) {
requestBoundingBox = boundingBox;
} else {
ProjectionTransform transform = projection.getTransformation(ProjectionConstants.EPSG_WEB_MERCATOR);
requestBoundingBox = transform.transform(boundingBox);
}
for (int zoom = minZoom; zoom <= maxZoom; zoom++) {
// Get the tile grid that includes the entire bounding box
TileGrid tileGrid = null;
if (projection.getUnit() instanceof DegreeUnit) {
tileGrid = TileBoundingBoxUtils.getTileGridWGS84(requestBoundingBox, zoom);
} else {
tileGrid = TileBoundingBoxUtils.getTileGrid(requestBoundingBox, zoom);
}
count += tileGrid.count();
tileGrids.put(zoom, tileGrid);
}
tileCount = (int) Math.min(count, Integer.MAX_VALUE);
}
return tileCount;
}
示例11: getPath
import mil.nga.geopackage.projection.ProjectionTransform; //导入方法依赖的package包/类
/**
* Get the path of the line string
*
* @param simplifyTolerance
* simplify tolerance in meters
* @param boundingBox
* @param transform
* @param lineString
*/
private Path2D getPath(double simplifyTolerance, BoundingBox boundingBox,
ProjectionTransform transform, LineString lineString) {
Path2D path = null;
// Try to simplify the number of points in the LineString
List<Point> lineStringPoints = simplifyPoints(simplifyTolerance,
lineString.getPoints());
for (Point point : lineStringPoints) {
Point projectedPoint = transform.transform(point);
float x = TileBoundingBoxUtils.getXPixel(tileWidth, boundingBox,
projectedPoint.getX());
float y = TileBoundingBoxUtils.getYPixel(tileHeight, boundingBox,
projectedPoint.getY());
if (path == null) {
path = new Path2D.Double();
path.moveTo(x, y);
} else {
path.lineTo(x, y);
}
}
return path;
}
示例12: simplifyPoints
import mil.nga.geopackage.projection.ProjectionTransform; //导入方法依赖的package包/类
/**
* When the simplify tolerance is set, simplify the points to a similar
* curve with fewer points.
*
* @param simplifyTolerance simplify tolerance in meters
* @param points ordered points
* @return simplified points
* @since 2.0.0
*/
protected List<Point> simplifyPoints(double simplifyTolerance,
List<Point> points) {
List<Point> simplifiedPoints = null;
if (simplifyGeometries) {
// Reproject to web mercator if not in meters
if (projection != null && projection.getUnit() != Units.METRES) {
ProjectionTransform toWebMercator = projection
.getTransformation(WEB_MERCATOR_PROJECTION);
points = toWebMercator.transform(points);
}
// Simplify the points
simplifiedPoints = GeometryUtils.simplifyPoints(points,
simplifyTolerance);
// Reproject back to the original projection
if (projection != null && projection.getUnit() != Units.METRES) {
ProjectionTransform fromWebMercator = WEB_MERCATOR_PROJECTION
.getTransformation(projection);
simplifiedPoints = fromWebMercator.transform(simplifiedPoints);
}
} else {
simplifiedPoints = points;
}
return simplifiedPoints;
}
示例13: adjustGoogleBounds
import mil.nga.geopackage.projection.ProjectionTransform; //导入方法依赖的package包/类
/**
* Adjust the tile matrix set and web mercator bounds for Google tile format
*/
private void adjustGoogleBounds() {
// Set the tile matrix set bounding box to be the world
BoundingBox standardWgs84Box = new BoundingBox(
-ProjectionConstants.WGS84_HALF_WORLD_LON_WIDTH,
ProjectionConstants.WEB_MERCATOR_MIN_LAT_RANGE,
ProjectionConstants.WGS84_HALF_WORLD_LON_WIDTH,
ProjectionConstants.WEB_MERCATOR_MAX_LAT_RANGE);
ProjectionTransform wgs84ToWebMercatorTransform = ProjectionFactory
.getProjection(ProjectionConstants.EPSG_WORLD_GEODETIC_SYSTEM)
.getTransformation(ProjectionConstants.EPSG_WEB_MERCATOR);
tileGridBoundingBox = wgs84ToWebMercatorTransform
.transform(standardWgs84Box);
}
示例14: getElevationsUnbounded
import mil.nga.geopackage.projection.ProjectionTransform; //导入方法依赖的package包/类
/**
* {@inheritDoc}
*/
@Override
public ElevationTileResults getElevationsUnbounded(ElevationRequest request) {
ElevationTileResults elevationResults = null;
// Transform to the projection of the elevation tiles
ProjectionTransform transformRequestToElevation = null;
BoundingBox requestProjectedBoundingBox = request.getBoundingBox();
if (!sameProjection) {
transformRequestToElevation = requestProjection
.getTransformation(elevationProjection);
requestProjectedBoundingBox = transformRequestToElevation
.transform(requestProjectedBoundingBox);
}
request.setProjectedBoundingBox(requestProjectedBoundingBox);
// Find the tile matrix and results
ElevationTileMatrixResults results = getResults(request,
requestProjectedBoundingBox);
if (results != null) {
TileMatrix tileMatrix = results.getTileMatrix();
TileCursor tileResults = results.getTileResults();
try {
// Retrieve the elevations from the results
Double[][] elevations = getElevationsUnbounded(tileMatrix,
tileResults, request);
// Project the elevations if needed
if (elevations != null && !sameProjection && !request.isPoint()) {
elevations = reprojectElevations(elevations,
elevations[0].length, elevations.length,
request.getBoundingBox(),
transformRequestToElevation,
requestProjectedBoundingBox);
}
// Create the results
if (elevations != null) {
elevationResults = new ElevationTileResults(elevations,
tileMatrix);
}
} finally {
tileResults.close();
}
}
return elevationResults;
}
示例15: testRandomLocations
import mil.nga.geopackage.projection.ProjectionTransform; //导入方法依赖的package包/类
/**
* Test 10 random locations and optionally print
*
* @throws Exception
*/
@Test
public void testRandomLocations() throws Exception {
BoundingBox projectedBoundingBox = null;
List<String> elevationTables = ElevationTilesTiff.getTables(geoPackage);
TileMatrixSetDao dao = geoPackage.getTileMatrixSetDao();
for (String elevationTable : elevationTables) {
TileMatrixSet tileMatrixSet = dao.queryForId(elevationTable);
BoundingBox boundingBox = tileMatrixSet.getBoundingBox();
if (PRINT) {
System.out.println("Min Latitude: "
+ boundingBox.getMinLatitude());
System.out.println("Max Latitude: "
+ boundingBox.getMaxLatitude());
System.out.println("Min Longitude: "
+ boundingBox.getMinLongitude());
System.out.println("Max Longitude: "
+ boundingBox.getMaxLongitude());
System.out.println();
}
SpatialReferenceSystemDao srsDao = geoPackage
.getSpatialReferenceSystemDao();
long srsId = tileMatrixSet.getSrsId();
SpatialReferenceSystem srs = srsDao.queryForId(srsId);
Projection projection = ProjectionFactory.getProjection(srs);
Projection requestProjection = ProjectionFactory
.getProjection(ProjectionConstants.EPSG_WORLD_GEODETIC_SYSTEM);
ProjectionTransform elevationToRequest = projection
.getTransformation(requestProjection);
projectedBoundingBox = elevationToRequest.transform(boundingBox);
}
if (PRINT) {
System.out.println("Min Latitude: "
+ projectedBoundingBox.getMinLatitude());
System.out.println("Max Latitude: "
+ projectedBoundingBox.getMaxLatitude());
System.out.println("Min Longitude: "
+ projectedBoundingBox.getMinLongitude());
System.out.println("Max Longitude: "
+ projectedBoundingBox.getMaxLongitude());
System.out.println();
}
double latDistance = projectedBoundingBox.getMaxLatitude()
- projectedBoundingBox.getMinLatitude();
double lonDistance = projectedBoundingBox.getMaxLongitude()
- projectedBoundingBox.getMinLongitude();
for (int i = 0; i < 10; i++) {
// Get a random coordinate
double latitude = latDistance * .9 * Math.random()
+ projectedBoundingBox.getMinLatitude()
+ (.05 * latDistance);
double longitude = lonDistance * .9 * Math.random()
+ projectedBoundingBox.getMinLongitude()
+ (.05 * lonDistance);
testLocation(latitude, longitude);
if (PRINT) {
System.out.println();
}
}
}