private static int calculateBufferSize(MultiPoint multiPoint) { return 1 + 4 * DOUBLE_LENGTH + INT_LENGTH + multiPoint.getNumPoints() * 2 * DOUBLE_LENGTH; }
private static int calculateBufferSize(MultiPoint multiPoint) { return 1 + 4 * DOUBLE_LENGTH + INT_LENGTH + multiPoint.getNumPoints() * 2 * DOUBLE_LENGTH; }
private static byte[] serialize(MultiPoint multiPoint) { int numPoints = multiPoint.getNumPoints(); ByteBuffer buffer = newBuffer(calculateBufferSize(multiPoint)); putType(buffer, ShapeType.MULTIPOINT); buffer.position(buffer.position() + 4 * DOUBLE_LENGTH); buffer.putInt(numPoints); for (int i = 0; i < numPoints; i++) { Point point = (Point) multiPoint.getGeometryN(i); buffer.putDouble(point.getX()); buffer.putDouble(point.getY()); } return buffer.array(); }
private static byte[] serialize(MultiPoint multiPoint) { int numPoints = multiPoint.getNumPoints(); ByteBuffer buffer = newBuffer(calculateBufferSize(multiPoint)); putType(buffer, ShapeType.MULTIPOINT); buffer.position(buffer.position() + 4 * DOUBLE_LENGTH); buffer.putInt(numPoints); for (int i = 0; i < numPoints; i++) { Point point = (Point) multiPoint.getGeometryN(i); buffer.putDouble(point.getX()); buffer.putDouble(point.getY()); } return buffer.array(); }
private Point getCentralPoint(MultiPoint multiPoint) { int numPoints = multiPoint.getNumPoints(); if (numPoints == 1) { return (Point) multiPoint.getGeometryN(0); } double minDistance = Double.MAX_VALUE; Point centralPoint = null; for (int i = 0; i < numPoints; i++) { Point ce = (Point) multiPoint.getGeometryN(i); double curDistance = 0d; for (int j = 0; j < numPoints; j++) { Point de = (Point) multiPoint.getGeometryN(j); if (i != j) { curDistance += ce.distance(de); } } if (minDistance > curDistance) { minDistance = curDistance; centralPoint = ce; } } return centralPoint; }
private SDOGeometry convertJTSMultiPoint(MultiPoint multiPoint) { int dim = getCoordDimension(multiPoint); int lrsDim = getCoordinateLrsPosition(multiPoint); boolean isLrs = (lrsDim != 0); SDOGeometry geom = new SDOGeometry(); geom.setGType(new SDOGType(dim, lrsDim, TypeGeometry.MULTIPOINT)); geom.setSRID(multiPoint.getSRID()); ElemInfo info = new ElemInfo(multiPoint.getNumPoints()); int oordinatesOffset = 1; Double[] ordinates = new Double[]{}; for (int i = 0; i < multiPoint.getNumPoints(); i++) { info.setElement(i, oordinatesOffset, ElementType.POINT, 0); ordinates = convertAddCoordinates(ordinates, multiPoint .getGeometryN(i).getCoordinates(), dim, isLrs); oordinatesOffset = ordinates.length + 1; } geom.setInfo(info); geom.setOrdinates(new Ordinates(ordinates)); return geom; }
&& ((MultiPoint) geometry).getNumPoints() == 1) {
private de.micromata.opengis.kml.v_2_2_0.Geometry encodeGeometry(Geometry geometry, KmlEncodingContext context, double height) { if (geometry instanceof Point || (geometry instanceof MultiPoint) && ((MultiPoint) geometry).getNumPoints() == 1) { Coordinate c = geometry.getCoordinate(); return toKmlPoint(c); } else { de.micromata.opengis.kml.v_2_2_0.Geometry kmlGeometry = toKmlGeometry(geometry); if(context.isDescriptionEnabled()) { MultiGeometry mg = new MultiGeometry(); // centroid + full geometry Coordinate c = CENTROIDS.geometryCentroid(geometry); if(!Double.isNaN(height)) { c.setOrdinate(2, height); } de.micromata.opengis.kml.v_2_2_0.Point kmlPoint = toKmlPoint(c); if(hasHeightTemplate) { applyExtrusion(kmlGeometry); } mg.addToGeometry(kmlPoint); // encode the full geometry mg.addToGeometry(kmlGeometry); kmlGeometry = mg; } if(hasHeightTemplate) { applyExtrusion(kmlGeometry); } return kmlGeometry; } }