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