本文整理汇总了Java中oracle.spatial.geometry.JGeometry.load方法的典型用法代码示例。如果您正苦于以下问题:Java JGeometry.load方法的具体用法?Java JGeometry.load怎么用?Java JGeometry.load使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类oracle.spatial.geometry.JGeometry
的用法示例。
在下文中一共展示了JGeometry.load方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: convertToObject
import oracle.spatial.geometry.JGeometry; //导入方法依赖的package包/类
public Object convertToObject(ValueMetaInterface vmi, Geometry jtsGeom, Database db) {
WKBWriter wkbWriter = new WKBWriter();
byte[] b = wkbWriter.write(jtsGeom);
WKB wkb = new WKB(ByteOrder.BIG_ENDIAN);
try {
// Map the EPSG- (or custom-) SRID with Oracle's SRID.
// TODO: review this, probably has some of the same issues as when reading the SRID
int oracle_srid = convertToDBMS_SRID(vmi.getGeometrySRS(), db.getConnection());
STRUCT oracleStruct = wkb.toSTRUCT(b, db.getConnection()); // convert: byte[] --> STRUCT (using DB connection)
JGeometry oracleGeom = JGeometry.load(oracleStruct); // convert: STRUCT --> JGeometry
oracleGeom.setSRID(oracle_srid); // set the SRID
oracleStruct = JGeometry.store(db.getConnection(), oracleGeom); // convert: JGeometry --> STRUCT (using DB connection)
return oracleStruct;
} catch (Exception e) {
LOGGER.logError("GeoKettle", "Conversion to Oracle-geometry failed.");
return null;
}
}
示例2: internalRender
import oracle.spatial.geometry.JGeometry; //导入方法依赖的package包/类
private void internalRender(DOM pRequestDOM, UCon pUCon, Renderer pRenderer) {
int lHeight, lWidth;
lHeight = Integer.parseInt(pRequestDOM.get1SNoEx("/INTERNAL_MAP_REQUEST/HEIGHT"));
lWidth = Integer.parseInt(pRequestDOM.get1SNoEx("/INTERNAL_MAP_REQUEST/WIDTH"));
//Transform for pixel output
double lCentreX = Double.parseDouble(pRequestDOM.get1SNoEx("/INTERNAL_MAP_REQUEST/CENTRE/X"));
double lCentreY = Double.parseDouble(pRequestDOM.get1SNoEx("/INTERNAL_MAP_REQUEST/CENTRE/Y"));
double lScaledWidth = Double.parseDouble(pRequestDOM.get1SNoEx("/INTERNAL_MAP_REQUEST/SCALED_WIDTH"));
double lScaledHeight = Double.parseDouble(pRequestDOM.get1SNoEx("/INTERNAL_MAP_REQUEST/SCALED_HEIGHT"));
double lScaleFactorX = (lWidth/lScaledWidth);
double lScaleFactorY = (lHeight/lScaledHeight);
AffineTransform lOrdinateTransform = new AffineTransform();
lOrdinateTransform.scale(1, -1); // Flip the Y about X=0
lOrdinateTransform.translate(0, -lHeight); // Move back onto the visible area
lOrdinateTransform.translate(((lWidth/2)-lCentreX), (((lHeight/2))-lCentreY)); // Initial centering
lOrdinateTransform.scale(lScaleFactorX, lScaleFactorY); // Scale
lOrdinateTransform.translate(-(lCentreX*(lScaleFactorX-1))/lScaleFactorX, -(lCentreY*(lScaleFactorY-1))/lScaleFactorY); // Second pass centering
Track.pushInfo("AddingRenderableObjects", "Internal rendering: Adding renderable objects to renderer");
try {
DOMList lRenderNodes = pRequestDOM.getUL("/INTERNAL_MAP_REQUEST/RENDER_LIST/RENDER");
ParsedStatement lDataQuery;
for (int lNodeID = 0; lNodeID < lRenderNodes.getLength(); ++lNodeID) {
DOM lRenderNode = lRenderNodes.item(lNodeID);
try {
lDataQuery = StatementParser.parse(lRenderNode.get1SNoEx("DATA_QUERY"), "Data Query");
java.util.List<UConStatementResult> lDataRows = pUCon.queryMultipleRows(lDataQuery);
for (UConStatementResult lRow : lDataRows) {
int lGeoID = lRow.getInteger("ID");
int lParentGeoID = lRow.getInteger("PARENT_SID_ID");
STRUCT st = (oracle.sql.STRUCT)lRow.getObject("GEO_DATA");
JGeometry lGeometry = JGeometry.load(st);
//Parse geometry
if (lGeometry.getType() == JGeometry.GTYPE_POINT) {
drawSpatialMarker(pRenderer, lRenderNode, lGeoID, lParentGeoID, lGeometry, lOrdinateTransform, lRow, lScaleFactorX, lScaleFactorY);
}
else if (lGeometry.getType() == JGeometry.GTYPE_MULTIPOINT) {
drawSpatialNodes(pRenderer, lRenderNode, lGeoID, lParentGeoID, lGeometry, lOrdinateTransform);
}
else if (lGeometry.getType() == JGeometry.GTYPE_CURVE) {
drawSpatialLine(pRenderer, lRenderNode, lGeoID, lParentGeoID, lGeometry, lOrdinateTransform, lRow);
}
else if (lGeometry.getType() == JGeometry.GTYPE_POLYGON) {
drawSpatialArea(pRenderer, lRenderNode, lGeoID, lParentGeoID, lGeometry, lOrdinateTransform, lRow);
}
}
}
catch (ExParser | ExDB | SQLException e) {
throw new ExInternal("Fox Internal Spatial Renderer failed when attempting to query the spatial data for rendering", e);
}
}
}
finally {
Track.pop("AddingRenderableObjects");
}
// Get the renderer to generate the image (goes to the output stream given to the pRenderer constructor)
Track.pushInfo("GeneratingImage", "Getting the renderer to generate the image");
try {
pRenderer.generate();
}
finally {
Track.pop("GeneratingImage");
}
}
示例3: read
import oracle.spatial.geometry.JGeometry; //导入方法依赖的package包/类
public DBSurfaceGeometryResult read(long rootId) throws SQLException {
ResultSet rs = null;
try {
if (!useTransformation || !applyTransformation) {
psSurfaceGeometry.setLong(1, rootId);
rs = psSurfaceGeometry.executeQuery();
} else {
psTransformSurfaceGeometry.setLong(1, rootId);
rs = psTransformSurfaceGeometry.executeQuery();
}
GeometryTree geomTree = new GeometryTree();
// firstly, read the geometry entries into a
// flat geometry tree structure
while (rs.next()) {
long id = rs.getLong("ID");
String gmlId = rs.getString("GMLID");
long parentId = rs.getLong("PARENT_ID");
int isSolid = rs.getInt("IS_SOLID");
int isComposite = rs.getInt("IS_COMPOSITE");
int isTriangulated = rs.getInt("IS_TRIANGULATED");
int isXlink = rs.getInt("IS_XLINK");
int isReverse = rs.getInt("IS_REVERSE");
JGeometry geometry = null;
STRUCT struct = (STRUCT)rs.getObject("GEOMETRY");
if (!rs.wasNull() && struct != null)
geometry = JGeometry.load(struct);
// constructing a geometry node
GeometryNode geomNode = new GeometryNode();
geomNode.id = id;
geomNode.gmlId = gmlId;
geomNode.parentId = parentId;
geomNode.isSolid = isSolid == 1;
geomNode.isComposite = isComposite == 1;
geomNode.isTriangulated = isTriangulated == 1;
geomNode.isXlink = isXlink == 1;
geomNode.isReverse = isReverse == 1;
geomNode.geometry = geometry;
// put it into our geometry tree
geomTree.insertNode(geomNode, parentId);
}
// interpret geometry tree as a single abstractGeometry
if (geomTree.root != 0)
return rebuildGeometry(geomTree.getNode(geomTree.root), false, false);
else {
LOG.error("Failed to interpret geometry object.");
return null;
}
} finally {
if (rs != null)
rs.close();
}
}
示例4: read
import oracle.spatial.geometry.JGeometry; //导入方法依赖的package包/类
private GeometryNode read(long rootId, boolean reverse) throws SQLException {
ResultSet rs = null;
try {
psSelectSurfGeom.setLong(1, rootId);
rs = psSelectSurfGeom.executeQuery();
GeometryNode root = null;
HashMap<Integer, GeometryNode> parentMap = new HashMap<Integer, GeometryNode>();
// rebuild geometry hierarchy
while (rs.next()) {
long id = rs.getLong("ID");
String gmlId = rs.getString("GMLID");
int isSolid = rs.getInt("IS_SOLID");
int isComposite = rs.getInt("IS_COMPOSITE");
int isTriangulated = rs.getInt("IS_TRIANGULATED");
int isReverse = rs.getInt("IS_REVERSE");
int level = rs.getInt("LEVEL");
JGeometry geometry = null;
STRUCT struct = (STRUCT)rs.getObject("GEOMETRY");
if (!rs.wasNull() && struct != null)
geometry = JGeometry.load(struct);
// constructing a geometry node
GeometryNode geomNode = new GeometryNode();
geomNode.id = id;
geomNode.gmlId = gmlId;
geomNode.type = GMLClass.UNDEFINED;
geomNode.isSolid = isSolid == 1;
geomNode.isComposite = isComposite == 1;
geomNode.isTriangulated = isTriangulated == 1;
geomNode.isReverse = (isReverse == 1) ^ reverse;
geomNode.geometry = geometry;
if (root != null)
parentMap.get(level).childNodes.add(geomNode);
else
root = geomNode;
// make this node the parent for the next hierarchy level
parentMap.put(level + 1, geomNode);
}
// interpret geometry tree
if (root != null) {
rebuildGeometry(root, reverse);
return root;
} else {
return null;
}
} finally {
if (rs != null) {
try {
rs.close();
} catch (SQLException sqlEx) {
//
}
rs = null;
}
}
}