本文整理了Java中org.geotools.geometry.jts.JTS.createCS()
方法的一些代码示例,展示了JTS.createCS()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。JTS.createCS()
方法的具体详情如下:
包路径:org.geotools.geometry.jts.JTS
类名称:JTS
方法名:createCS
[英]Creates a CoordinateSequence using the provided factory confirming the provided size and dimension are respected.
If the requested dimension is larger than the CoordinateSequence implementation can provide, then a sequence of maximum possible dimension should be created. An error should not be thrown.
This method is functionally identical to calling csFactory.create(size,dim) - it contains additional logic to work around a limitation on the commonly used CoordinateArraySequenceFactory.
[中]使用提供的工厂创建坐标序列,确认所提供的尺寸和尺寸得到遵守。
如果请求的维度大于CoordinateSequence实现可以提供的维度,那么应该创建一个最大可能维度的序列。不应抛出错误。
此方法在功能上与调用csFactory相同。create(size,dim)-它包含额外的逻辑,以绕过常用CoordinaryArraySequenceFactory的限制。
代码示例来源:origin: geotools/geotools
/**
* Creates a {@link CoordinateSequence} using the provided factory confirming the provided size
* and dimension are respected.
*
* <p>If the requested dimension is larger than the CoordinateSequence implementation can
* provide, then a sequence of maximum possible dimension should be created. An error should not
* be thrown.
*
* <p>This method is functionally identical to calling csFactory.create(size,dim) - it contains
* additional logic to work around a limitation on the commonly used
* CoordinateArraySequenceFactory.
*
* @param size the number of coordinates in the sequence
* @param dimension the dimension of the coordinates in the sequence
*/
public static CoordinateSequence createCS(
CoordinateSequenceFactory csFactory, int size, int dimension) {
// the coordinates don't have measures
return createCS(csFactory, size, dimension, 0);
}
代码示例来源:origin: geotools/geotools
@Override
public void newSubPart(final int numPoints) {
this.subPartNo++;
this.currPartNumPoints = numPoints;
this.currPointNo = 0;
final int dimension = 2;
this.currCoordSeq =
JTS.createCS(gf.getCoordinateSequenceFactory(), numPoints, dimension);
}
代码示例来源:origin: geotools/geotools
private CoordinateSequence readCoordinateSequence(int size) throws IOException {
CoordinateSequence seq = JTS.createCS(csFactory, size, inputDimension, inputMeasures);
int targetDim = seq.getDimension();
if (targetDim > inputDimension) targetDim = inputDimension;
for (int i = 0; i < size; i++) {
readCoordinate();
for (int j = 0; j < targetDim; j++) {
seq.setOrdinate(i, j, ordValues[j]);
}
}
return seq;
}
代码示例来源:origin: geotools/geotools
/** Converts the ordinate into a coordinate sequence */
public CoordinateSequence toCoordinateSequence(CoordinateSequenceFactory csfac) {
CoordinateSequence cs = JTS.createCS(csfac, size(), 3);
for (int i = 0; i <= curr; i++) {
cs.setOrdinate(i, 0, ordinates[i * 2]);
cs.setOrdinate(i, 1, ordinates[i * 2 + 1]);
}
return cs;
}
代码示例来源:origin: geotools/geotools
public Object read(ByteBuffer buffer, ShapeType type, boolean flatGeometry) {
if (type == ShapeType.NULL) {
return createNull();
}
int dimension = shapeType == ShapeType.POINTZ && !flatGeometry ? 3 : 2;
CoordinateSequence cs =
JTS.createCS(geometryFactory.getCoordinateSequenceFactory(), 1, dimension);
cs.setOrdinate(0, 0, buffer.getDouble());
cs.setOrdinate(0, 1, buffer.getDouble());
if (shapeType == ShapeType.POINTM) {
buffer.getDouble();
}
if (dimension > 2) {
cs.setOrdinate(0, 2, buffer.getDouble());
}
return geometryFactory.createPoint(cs);
}
代码示例来源:origin: geotools/geotools
cs = JTS.createCS(csFact, n, dim);
代码示例来源:origin: geotools/geotools
public Object read(ByteBuffer buffer, ShapeType type, boolean flatGeometry) {
if (type == ShapeType.NULL) {
return createNull();
}
// read bounding box (not needed)
buffer.position(buffer.position() + 4 * 8);
int numpoints = buffer.getInt();
int dimensions = shapeType == shapeType.MULTIPOINTZ && !flatGeometry ? 3 : 2;
CoordinateSequence cs =
JTS.createCS(geometryFactory.getCoordinateSequenceFactory(), numpoints, dimensions);
DoubleBuffer dbuffer = buffer.asDoubleBuffer();
double[] ordinates = new double[numpoints * 2];
dbuffer.get(ordinates);
for (int t = 0; t < numpoints; t++) {
cs.setOrdinate(t, 0, ordinates[t * 2]);
cs.setOrdinate(t, 1, ordinates[t * 2 + 1]);
}
if (dimensions > 2) {
dbuffer.position(dbuffer.position() + 2);
dbuffer.get(ordinates, 0, numpoints);
for (int t = 0; t < numpoints; t++) {
cs.setOrdinate(t, 2, ordinates[t]); // z
}
}
return geometryFactory.createMultiPoint(cs);
}
代码示例来源:origin: geotools/geotools
private CoordinateSequence readCoordinateSequence(int size) throws IOException {
CoordinateSequence seq =
JTS.createCS(factory.getCoordinateSequenceFactory(), size, inputDimension);
int targetDim = seq.getDimension();
if (targetDim > inputDimension) targetDim = inputDimension;
for (int i = 0; i < size; i++) {
readCoordinate();
for (int j = 0; j < targetDim; j++) {
seq.setOrdinate(i, j, ordValues[j]);
}
}
return seq;
}
代码示例来源:origin: geotools/geotools
/**
* Builds an array of JTS <code>Coordinate</code> instances that's geometrically equals to the
* <code>SeShape</code> single coordinates array passed as argument.
*
* @param coordList array of coordinates of a single shape part to build a <code>Coordinate
* </code> from
* @return a geometrically equal to <code>coordList</code> array of <code>Coordinate</code>
* instances
*/
protected final CoordinateSequence toCoords(
double[] coordList, final CoordinateSequenceFactory csFact) {
final int dimension = 2;
CoordinateSequence cs;
if (csFact instanceof LiteCoordinateSequenceFactory) {
cs = ((LiteCoordinateSequenceFactory) csFact).create(coordList, dimension);
} else {
final int nCoords = coordList.length / dimension;
cs = JTS.createCS(csFact, nCoords, dimension);
for (int coordN = 0; coordN < nCoords; coordN++) {
cs.setOrdinate(coordN, 0, coordList[dimension * coordN]);
cs.setOrdinate(coordN, 1, coordList[dimension * coordN + 1]);
}
}
return cs;
}
代码示例来源:origin: geotools/geotools
/**
* @param buffer
* @param numPoints
*/
private CoordinateSequence readCoordinates(
final ByteBuffer buffer, final int numPoints, final int dimensions) {
CoordinateSequence cs =
JTS.createCS(geometryFactory.getCoordinateSequenceFactory(), numPoints, dimensions);
DoubleBuffer dbuffer = buffer.asDoubleBuffer();
double[] ordinates = new double[numPoints * 2];
dbuffer.get(ordinates);
for (int t = 0; t < numPoints; t++) {
cs.setOrdinate(t, 0, ordinates[t * 2]);
cs.setOrdinate(t, 1, ordinates[t * 2 + 1]);
}
if (dimensions > 2) {
// z
dbuffer.position(dbuffer.position() + 2);
dbuffer.get(ordinates, 0, numPoints);
for (int t = 0; t < numPoints; t++) {
cs.setOrdinate(t, 2, ordinates[t]);
}
}
return cs;
}
代码示例来源:origin: geotools/geotools
seq = JTS.createCS(csFactory, coordinates.size(), dimension);
代码示例来源:origin: geotools/geotools
seq = JTS.createCS(csFactory, coordinates.size(), dimension);
代码示例来源:origin: geotools/geotools
/**
* Turns the array of ordinates into a coordinate sequence
*
* @param gf
* @return
*/
public CoordinateSequence toCoordinateSequence(GeometryFactory gf) {
double[] data = getData();
CoordinateSequence cs = JTS.createCS(gf.getCoordinateSequenceFactory(), data.length / 2, 2);
for (int i = 0; i < cs.size(); i++) {
cs.setOrdinate(i, 0, data[i * 2]);
cs.setOrdinate(i, 1, data[i * 2 + 1]);
}
return cs;
}
代码示例来源:origin: geotools/geotools
List<Polygon> getFaces(GeometryFactory gf, double extrude) {
// sort the segments from bottom to top
Collections.sort(segments);
// extrude each segment
List<Polygon> result = new ArrayList<Polygon>();
for (Segment segment : segments) {
CoordinateSequence cs = JTS.createCS(gf.getCoordinateSequenceFactory(), 5, 2);
cs.setOrdinate(0, 0, segment.x0);
cs.setOrdinate(0, 1, segment.y0);
cs.setOrdinate(3, 0, segment.x0);
cs.setOrdinate(3, 1, segment.y0 + extrude);
cs.setOrdinate(2, 0, segment.x1);
cs.setOrdinate(2, 1, segment.y1 + extrude);
cs.setOrdinate(1, 0, segment.x1);
cs.setOrdinate(1, 1, segment.y1);
cs.setOrdinate(4, 0, segment.x0);
cs.setOrdinate(4, 1, segment.y0);
result.add(gf.createPolygon(gf.createLinearRing(cs), null));
}
return result;
}
}
代码示例来源:origin: geotools/geotools
CoordinateSequenceFactory csf = factory.getCoordinateSequenceFactory();
if (Point.class.equals(type)) {
CoordinateSequence cs = JTS.createCS(csf, 1, 2);
cs.setOrdinate(0, 0, (minX + maxX) / 2);
cs.setOrdinate(0, 1, (minY + maxY) / 2);
return factory.createMultiPoint(new Point[] {p});
} else if (LineString.class.equals(type) || LinearRing.class.equals(type)) {
CoordinateSequence cs = JTS.createCS(csf, 2, 2);
cs.setOrdinate(0, 0, minX);
cs.setOrdinate(0, 1, minY);
return factory.createMultiLineString(new LineString[] {ls});
} else if (Polygon.class.equals(type)) {
CoordinateSequence cs = JTS.createCS(csf, 5, 2);
cs.setOrdinate(0, 0, minX);
cs.setOrdinate(0, 1, minY);
代码示例来源:origin: geotools/geotools
/**
* Does what it says, reverses the order of the Coordinates in the ring.
*
* <p>This is different then lr.reverses() in that a copy is produced using a new coordinate
* sequence.
*
* @param lr The ring to reverse.
* @return A new ring with the reversed Coordinates.
*/
public static final LinearRing reverseRing(LinearRing lr) {
GeometryFactory gf = lr.getFactory();
CoordinateSequenceFactory csf = gf.getCoordinateSequenceFactory();
CoordinateSequence csOrig = lr.getCoordinateSequence();
int numPoints = csOrig.size();
int dimensions = csOrig.getDimension();
CoordinateSequence csNew = JTS.createCS(csf, numPoints, dimensions, csOrig.getMeasures());
for (int i = 0; i < numPoints; i++) {
for (int j = 0; j < dimensions; j++) {
csNew.setOrdinate(numPoints - 1 - i, j, csOrig.getOrdinate(i, j));
}
}
return gf.createLinearRing(csNew);
}
代码示例来源:origin: geotools/geotools
/**
* Builds a linear ring representing the clipping area
*
* @param gf
* @param csf
* @return
*/
LinearRing buildBoundsString(final GeometryFactory gf, final CoordinateSequenceFactory csf) {
CoordinateSequence cs = JTS.createCS(csf, 5, 2);
cs.setOrdinate(0, 0, xmin);
cs.setOrdinate(0, 1, ymin);
cs.setOrdinate(1, 0, xmin);
cs.setOrdinate(1, 1, ymax);
cs.setOrdinate(2, 0, xmax);
cs.setOrdinate(2, 1, ymax);
cs.setOrdinate(3, 0, xmax);
cs.setOrdinate(3, 1, ymin);
cs.setOrdinate(4, 0, xmin);
cs.setOrdinate(4, 1, ymin);
return gf.createLinearRing(cs);
}
代码示例来源:origin: geotools/geotools
public Object getSimplifiedShape() {
CoordinateSequenceFactory csf = geometryFactory.getCoordinateSequenceFactory();
if (type.isPointType()) {
CoordinateSequence cs = JTS.createCS(csf, 1, 2);
cs.setOrdinate(0, 0, (minX + maxX) / 2);
cs.setOrdinate(0, 1, (minY + maxY) / 2);
new Point[] {geometryFactory.createPoint(cs)});
} else if (type.isLineType()) {
CoordinateSequence cs = JTS.createCS(csf, 2, 2);
cs.setOrdinate(0, 0, minX);
cs.setOrdinate(0, 1, minY);
new LineString[] {geometryFactory.createLineString(cs)});
} else if (type.isPolygonType()) {
CoordinateSequence cs = JTS.createCS(csf, 5, 2);
cs.setOrdinate(0, 0, minX);
cs.setOrdinate(0, 1, minY);
代码示例来源:origin: geotools/geotools
/**
* Construct CoordinateSequence with no LRS measures.
*
* <p>To produce two dimension Coordinates pass in <code>null</code> for z
*
* @param f DOCUMENT ME!
* @param x DOCUMENT ME!
* @param y DOCUMENT ME!
* @param z DOCUMENT ME!
* @return DOCUMENT ME!
*/
public static CoordinateSequence coordiantes(
CoordinateSequenceFactory f, OrdinateList x, OrdinateList y, OrdinateList z) {
final int LENGTH = x.size();
// Coordinate[] array = new Coordinate[LENGTH];
CoordinateSequence cs = JTS.createCS(f, LENGTH, z == null ? 2 : 3);
if (z != null) {
for (int i = 0; i < LENGTH; i++) {
cs.setOrdinate(i, 0, x.getDouble(i));
cs.setOrdinate(i, 1, y.getDouble(i));
cs.setOrdinate(i, 2, z.getDouble(i));
}
} else {
for (int i = 0; i < LENGTH; i++) {
cs.setOrdinate(i, 0, x.getDouble(i));
cs.setOrdinate(i, 1, y.getDouble(i));
}
}
return cs;
}
代码示例来源:origin: geotools/geotools
CoordinateSequence cs = JTS.createCS(f, LENGTH, z == null ? 2 : 3);
内容来源于网络,如有侵权,请联系作者删除!