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


Java JGeometry.getElemInfo方法代码示例

本文整理汇总了Java中oracle.spatial.geometry.JGeometry.getElemInfo方法的典型用法代码示例。如果您正苦于以下问题:Java JGeometry.getElemInfo方法的具体用法?Java JGeometry.getElemInfo怎么用?Java JGeometry.getElemInfo使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在oracle.spatial.geometry.JGeometry的用法示例。


在下文中一共展示了JGeometry.getElemInfo方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: getPolygonCoordinates

import oracle.spatial.geometry.JGeometry; //导入方法依赖的package包/类
private double[][] getPolygonCoordinates(JGeometry geometry) {
	int[] elemInfo = geometry.getElemInfo();
	double[] ordinates = geometry.getOrdinatesArray();
	if (elemInfo.length < 3)
		return null;

	int[] ringLimits = new int[elemInfo.length / 3];
	ringLimits[ringLimits.length - 1] = ordinates.length;
	for (int i = 3, j = 0; i < elemInfo.length; i += 3, j++)
		ringLimits[j] = elemInfo[i] - 1;

	double[][] coordinates = new double[ringLimits.length][];			
	for (int i = 0, ordinate = 0; i < ringLimits.length; i++) {
		coordinates[i] = new double[ringLimits[i] - ordinate];
		for (int j = 0; ordinate < ringLimits[i]; ordinate++, j++)
			coordinates[i][j] = ordinates[ordinate];
	}
	
	return coordinates;
}
 
开发者ID:3dcitydb,项目名称:importer-exporter,代码行数:21,代码来源:GeometryConverterAdapter.java

示例2: drawSpatialArea

import oracle.spatial.geometry.JGeometry; //导入方法依赖的package包/类
/**
 * Draw an area from a spatial geometry
 *
 * @param pRenderer Renderer to add object too
 * @param pRenderNode Render node from generated XML with style information
 * @param pGeoID SID.id of the current object
 * @param pParentGeoID parent id of the current object
 * @param pGeometry Java instance of an Oracle spatial object
 * @param pTransformation Transformation for spatial -> pixel conversion
 */
private void drawSpatialArea (Renderer pRenderer, DOM pRenderNode, int pGeoID, int pParentGeoID, JGeometry pGeometry, AffineTransform pTransformation, UConStatementResult pRow) {
  String lSelectedSet = pRenderNode.get1SNoEx("SELECTED_SET");

  Area lPolygon = new Area();
  int[] lInfoArray = pGeometry.getElemInfo();
  Object[] lOrdinateGroups = pGeometry.getOrdinatesOfElements();
  for (int lElementID = 0; lElementID < lOrdinateGroups.length; ++ lElementID) {
    int lCoords = (((double[])lOrdinateGroups[lElementID]).length/2);
    int[] x = new int[lCoords];
    int[] y = new int[lCoords];
    int lCoordID = 0;
    for (int lOrdinateID = 0; lOrdinateID < ((double[])lOrdinateGroups[lElementID]).length; lOrdinateID = lOrdinateID + 2) {
      Point2D lP = transformPoint(new Point2D.Double(((double[])lOrdinateGroups[lElementID])[lOrdinateID], ((double[])lOrdinateGroups[lElementID])[lOrdinateID + 1]), pTransformation);
      x[lCoordID] = new Double(lP.getX()).intValue();
      y[lCoordID] = new Double(lP.getY()).intValue();
      lCoordID++;
    }

    Shape lShape = new Polygon(x, y, lCoords);
    Area lArea = new Area(lShape);
    //Find out polygon type (1003 = area, 2003 = cutout)
    int lPolygonType = lInfoArray[((lElementID*3)+1)];
    if (lPolygonType == 1003) {
      lPolygon.add(lArea);
    }
    else if (lPolygonType == 2003) {
      lPolygon.subtract(lArea);
    }
  }

  pRenderer.addObject(lSelectedSet + Integer.toString(pParentGeoID), new RenderableObject(lSelectedSet + Integer.toString(pGeoID), lPolygon, pRenderNode));

  // Testing annotations on areas...
  if (pRow.columnExists("ANNO_TEXT")) {
    Point2D lPoint = new Point2D.Double(lPolygon.getBounds().getX(), lPolygon.getBounds().getCenterY());
    pRenderNode.addElem("TEXT").addElem("JUSTIFICATION", "centre");
    pRenderer.addObject(lSelectedSet + Integer.toString(pParentGeoID), new RenderableObject(lSelectedSet + Integer.toString(pGeoID)+"marker", new Marker(lPoint, pRow.getString("ANNO_TEXT"), lPolygon.getBounds(), 12, lSelectedSet + Integer.toString(pParentGeoID)), pRenderNode));
  }
}
 
开发者ID:Fivium,项目名称:FOXopen,代码行数:50,代码来源:FoxInternalSpatialRenderer.java

示例3: createPlacemarksForFootprint

import oracle.spatial.geometry.JGeometry; //导入方法依赖的package包/类
protected List<PlacemarkType> createPlacemarksForFootprint(OracleResultSet rs, KmlSplittingResult work) throws SQLException {

		List<PlacemarkType> placemarkList = new ArrayList<PlacemarkType>();
		PlacemarkType placemark = kmlFactory.createPlacemarkType();
		placemark.setName(work.getGmlId());
		placemark.setId(DisplayForm.FOOTPRINT_PLACEMARK_ID + placemark.getName());

		if (work.getDisplayForm().isHighlightingEnabled()) {
			placemark.setStyleUrl("#" + getStyleBasisName() + DisplayForm.FOOTPRINT_STR + "Style");
		}
		else {
			placemark.setStyleUrl("#" + getStyleBasisName() + DisplayForm.FOOTPRINT_STR + "Normal");
		}

		if (getBalloonSettings().isIncludeDescription()) {
			addBalloonContents(placemark, work.getId());
		}
		MultiGeometryType multiGeometry = kmlFactory.createMultiGeometryType();
		placemark.setAbstractGeometryGroup(kmlFactory.createMultiGeometry(multiGeometry));

		PolygonType polygon = null; 
		while (rs.next()) {
			STRUCT buildingGeometryObj = (STRUCT)rs.getObject(1); 

			if (!rs.wasNull() && buildingGeometryObj != null) {
				eventDispatcher.triggerEvent(new GeometryCounterEvent(null, this));

				polygon = kmlFactory.createPolygonType();
				polygon.setTessellate(true);
				polygon.setExtrude(false);
				polygon.setAltitudeModeGroup(kmlFactory.createAltitudeMode(AltitudeModeEnumType.CLAMP_TO_GROUND));

				JGeometry groundSurface = convertToWGS84(JGeometry.load(buildingGeometryObj));
				int dim = groundSurface.getDimensions();
				for (int i = 0; i < groundSurface.getElemInfo().length; i = i+3) {
					LinearRingType linearRing = kmlFactory.createLinearRingType();
					BoundaryType boundary = kmlFactory.createBoundaryType();
					boundary.setLinearRing(linearRing);
					switch (groundSurface.getElemInfo()[i+1]) {
					case EXTERIOR_POLYGON_RING:
						polygon.setOuterBoundaryIs(boundary);
						break;
					case INTERIOR_POLYGON_RING:
						polygon.getInnerBoundaryIs().add(boundary);
						break;
					case POINT:
					case LINE_STRING:
						continue;
					default:
						Logger.getInstance().warn("Unknown geometry for " + work.getGmlId());
						continue;
					}

					double[] ordinatesArray = groundSurface.getOrdinatesArray();
					int startNextGeometry = ((i+3) < groundSurface.getElemInfo().length) ? 
							groundSurface.getElemInfo()[i+3] - 1: // still more geometries
								ordinatesArray.length; // default
							// order points counter-clockwise
							for (int j = startNextGeometry - dim; j >= groundSurface.getElemInfo()[i] - 1; j = j-dim) {
								linearRing.getCoordinates().add(String.valueOf(ordinatesArray[j] + "," + ordinatesArray[j+1] + ",0"));
							}
				}
				multiGeometry.getAbstractGeometryGroup().add(kmlFactory.createPolygon(polygon));
			}
		}
		if (polygon != null) { // if there is at least some content
			placemarkList.add(placemark);
		}
		return placemarkList;
	}
 
开发者ID:3dcitydb,项目名称:importer-exporter-oracle,代码行数:71,代码来源:KmlGenericObject.java


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