本文整理汇总了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;
}
示例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));
}
}
示例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;
}