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


Java JGeometry.getOrdinatesArray方法代码示例

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


在下文中一共展示了JGeometry.getOrdinatesArray方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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: getLineString

import oracle.spatial.geometry.JGeometry; //导入方法依赖的package包/类
public LineString getLineString(JGeometry geom, boolean setSrsName) {
	LineString lineString = null;

	if (geom != null && geom.getType() == JGeometry.GTYPE_CURVE) {
		int dimensions = geom.getDimensions();
		double[] ordinatesArray = geom.getOrdinatesArray();

		List<Double> value = new ArrayList<Double>();
		for (int i = 0; i < ordinatesArray.length; i++)
			value.add(ordinatesArray[i]);

		lineString = new LineStringImpl();
		DirectPositionList directPositionList = new DirectPositionListImpl();

		directPositionList.setValue(value);
		directPositionList.setSrsDimension(dimensions);
		if (setSrsName)
			directPositionList.setSrsName(gmlSrsName);
		lineString.setPosList(directPositionList);			
	}

	return lineString;
}
 
开发者ID:3dcitydb,项目名称:importer-exporter-oracle,代码行数:24,代码来源:DBSdoGeometry.java

示例3: applyTransformationMatrix

import oracle.spatial.geometry.JGeometry; //导入方法依赖的package包/类
protected JGeometry applyTransformationMatrix(JGeometry jGeometry) throws SQLException {
	if (transformation != null) {
		double[] originalCoords = jGeometry.getOrdinatesArray();
		for (int i = 0; i < originalCoords.length; i += 3) {
			double[] vals = new double[]{originalCoords[i], originalCoords[i+1], originalCoords[i+2], 1};
			Matrix v = new Matrix(vals, 4);

			v = transformation.times(v);
			originalCoords[i] = v.get(0, 0) + refPointX;
			originalCoords[i+1] = v.get(1, 0) + refPointY;
			originalCoords[i+2] = v.get(2, 0) + refPointZ;
		}
	}
	return jGeometry;
}
 
开发者ID:3dcitydb,项目名称:importer-exporter-oracle,代码行数:16,代码来源:GenericCityObject.java

示例4: parseSdoGeometry

import oracle.spatial.geometry.JGeometry; //导入方法依赖的package包/类
public static String parseSdoGeometry(Connection oraConn, JGeometry jGeometry) {
			if(jGeometry == null) return "";
			
			OracleGeometry oGeometry = new OracleGeometry();
			oGeometry.gtype = jGeometry.getType();
			oGeometry.dim = jGeometry.getDimensions();
			oGeometry.lrs = jGeometry.getLRMDimension();
			if(oGeometry.dim<2) {
				logger.error("ERROR: Dimension "+oGeometry.dim+" is not valid. Either specify a dimension or use Oracle Locator Version 9i or later.");
				return "";
			}
			
			
			if(oGeometry.dim ==3) {
				oGeometry.suffix="Z";
			} else if(oGeometry.dim ==4) {
				oGeometry.suffix="ZM";
			} else {
				oGeometry.suffix="";
			}
//			try {
				oGeometry.srid = 4326;
//				oGeometry.srid = pridOraToPg(oraConn,jGeometry.getSRID());
//			} catch(SQLException sqle) {
//				logger.error("ERROR: Fail get srid");
//				return "";
//			}
			oGeometry.point = jGeometry.getPoint();
			oGeometry.sdoElemInfoList = parseSdoElemInfo(jGeometry.getElemInfo());
			oGeometry.ordinates = jGeometry.getOrdinatesArray();
			String value = extractGeometry(oraConn,oGeometry);
			if(value != null) return String.format("SRID=%d;%s",oGeometry.srid,value);
			return "";
		}
 
开发者ID:experdb,项目名称:eXperDB-DB2PG,代码行数:35,代码来源:Process.java

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