当前位置: 首页>>代码示例>>Java>>正文


Java JGeometry.load方法代码示例

本文整理汇总了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;
	}
}
 
开发者ID:icholy,项目名称:geokettle-2.0,代码行数:20,代码来源:OracleDatabaseMeta.java

示例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");
  }

}
 
开发者ID:Fivium,项目名称:FOXopen,代码行数:72,代码来源:FoxInternalSpatialRenderer.java

示例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();
	}
}
 
开发者ID:3dcitydb,项目名称:importer-exporter-oracle,代码行数:61,代码来源:DBSurfaceGeometry.java

示例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;
		}
	}
}
 
开发者ID:3dcitydb,项目名称:importer-exporter-oracle,代码行数:65,代码来源:XlinkSurfaceGeometry.java


注:本文中的oracle.spatial.geometry.JGeometry.load方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。