/** * Calcuates the record length of this object. * * @return int The length of the record that this shapepoint will take up in a shapefile */ public int getLength(Object geometry) { MultiPoint mp = (MultiPoint) geometry; int length; if (shapeType == ShapeType.MULTIPOINT) { // two doubles per coord (16 * numgeoms) + 40 for header length = (mp.getNumGeometries() * 16) + 40; } else if (shapeType == ShapeType.MULTIPOINTM) { // add the additional MMin, MMax for 16, then 8 per measure length = (mp.getNumGeometries() * 16) + 40 + 16 + (8 * mp.getNumGeometries()); } else if (shapeType == ShapeType.MULTIPOINTZ) { // add the additional ZMin,ZMax, plus 8 per Z length = (mp.getNumGeometries() * 16) + 40 + 16 + (8 * mp.getNumGeometries()) + 16 + (8 * mp.getNumGeometries()); } else { throw new IllegalStateException("Expected ShapeType of Arc, got " + shapeType); } return length; }
public Object getProperty(Object object, QName name) throws Exception { if ("pointMember".equals(name.getLocalPart())) { MultiPoint multiPoint = (MultiPoint) object; Point[] members = new Point[multiPoint.getNumGeometries()]; for (int i = 0; i < members.length; i++) { members[i] = (Point) multiPoint.getGeometryN(i); } GML3EncodingUtils.setChildIDs(multiPoint); return members; } return null; } }
private static void addCoordinates(List list, MultiPoint points) { for (int i = 0; i < points.getNumGeometries(); i++) { Geometry geometryN = points.getGeometryN(i); if (geometryN != null && !geometryN.isEmpty()) addCoordinates(list, (Point) geometryN); } }
/** * Converts a <code>MultiPoint</code> to <MultiPoint Text> format, then appends it to the * writer. * * @param multiPoint the <code>MultiPoint</code> to process * @param writer the output writer to append to */ private void appendMultiPointText(MultiPoint multiPoint, int level, Writer writer) throws IOException { if (multiPoint.isEmpty()) { writer.write("EMPTY"); } else { writer.write("("); for (int i = 0; i < multiPoint.getNumGeometries(); i++) { if (i > 0) { writer.write(", "); indentCoords(i, level + 1, writer); } writer.write("("); appendCoordinate(((Point) multiPoint.getGeometryN(i)).getCoordinate(), writer); writer.write(")"); } writer.write(")"); } }
buffer.putDouble(box.getMaxY()); buffer.putInt(mp.getNumGeometries()); for (int t = 0, tt = mp.getNumGeometries(); t < tt; t++) { Coordinate c = (mp.getGeometryN(t)).getCoordinate(); buffer.putDouble(c.x); for (int t = 0; t < mp.getNumGeometries(); t++) { Coordinate c = (mp.getGeometryN(t)).getCoordinate(); double z = c.z; for (int t = 0, tt = mp.getNumGeometries(); t < tt; t++) { Point point = (Point) mp.getGeometryN(t); mvalues.add(point.getCoordinateSequence().getM(0));
return ((MultiPoint) geom).getNumGeometries();
@Override public void encode(MultiPoint geometry, AttributesImpl atts, GMLWriter handler) throws Exception { handler.startElement(multiPoint, atts); for (int i = 0; i < geometry.getNumGeometries(); i++) { handler.startElement(pointMember, null); pe.encode((Point) geometry.getGeometryN(i), null, handler); handler.endElement(pointMember); } handler.endElement(multiPoint); } }
static void encode(Element e, MultiPoint g, PrintHandler output) throws IOException { if ((g == null) || (g.getNumGeometries() <= 0)) { throw new IOException("Bad MultiPoint Data"); } AttributesImpl ai = getSrsNameAttribute(g); if (e == null) { output.startElement(GMLSchema.NAMESPACE, "MultiPoint", ai); } else { output.startElement(e.getNamespace(), e.getName(), ai); } for (int i = 0; i < g.getNumGeometries(); i++) { output.startElement(GMLSchema.NAMESPACE, "pointMember", null); encode(null, (Point) g.getGeometryN(i), output); output.endElement(GMLSchema.NAMESPACE, "pointMember"); } if (e == null) { output.endElement(GMLSchema.NAMESPACE, "MultiPoint"); } else { output.endElement(e.getNamespace(), e.getName()); } }
@Override public void encode(MultiPoint geometry, AttributesImpl atts, GMLWriter handler, String gmlId) throws Exception { atts = cloneWithGmlId(atts, gmlId); handler.startElement(multiPoint, atts); for (int i = 0; i < geometry.getNumGeometries(); i++) { handler.startElement(pointMember, null); pe.encode((Point) geometry.getGeometryN(i), null, handler, gmlId + "." + (i + 1)); handler.endElement(pointMember); } handler.endElement(multiPoint); } }
public DBObject toObject(MultiPoint mp) { if (opportunisticMultiGeometryCoversion && mp.getNumGeometries() == 1) { return toObject((Point) mp.getGeometryN(0)); } return BasicDBObjectBuilder.start() .add("type", "MultiPoint") .add("coordinates", toList(mp.getCoordinates())) .get(); }
/** * Calcuates the record length of this object. * @return int The length of the record that this shapepoint will take up in a shapefile **/ public int getLength(Geometry geometry){ MultiPoint mp = (MultiPoint) geometry; if (myShapeType == 8) return mp.getNumGeometries() * 8 + 20; if (myShapeType == 28) return mp.getNumGeometries() * 8 + 20 +8 +4*mp.getNumGeometries(); return mp.getNumGeometries() * 8 + 20 +8 +4*mp.getNumGeometries() + 8 +4*mp.getNumGeometries() ; } }
@Test public void multiPoint() throws Exception { double[] ords = {1, 2, 3, 4}; MultiPoint mp = builder.multiPoint(ords[0], ords[1], ords[2], ords[3]); assertEquals(2, mp.getNumGeometries()); Point p = (Point) mp.getGeometryN(0); assertEquals(2, p.getCoordinateSequence().getDimension()); }
@Test public void multiPointZ() throws Exception { double[] ords = {1, 2, 3, 4, 5, 6}; MultiPoint mp = builder.multiPointZ(ords[0], ords[1], ords[2], ords[3], ords[4], ords[5]); assertEquals(2, mp.getNumGeometries()); Point p = (Point) mp.getGeometryN(0); assertEquals(3, p.getCoordinateSequence().getDimension()); }
private int estimateMultiPoint(MultiPoint geom) { int result = 4; if (geom.getNumGeometries() > 0) { result += geom.getNumGeometries() * this.estimateBytes(geom.getGeometryN(0)); } return result; }
} else if (g instanceof MultiPoint) { MultiPoint mp = (MultiPoint) g; Point[] points = new Point[mp.getNumGeometries()];
private TopoGeom.MultiPoint createMultiPoint(MultiPoint geom) { List<TopoGeom.Point> points = new ArrayList<>(geom.getNumGeometries()); for (int n = 0; n < geom.getNumGeometries(); n++) { points.add(createPoint((Point) geom.getGeometryN(n))); } return new TopoGeom.MultiPoint(points); }
@Test public void multiPoint() throws Exception { String WKT = "MULTIPOINT (111 -47, 110 -46.5)"; WKTReader reader = new WKTReader2(); Geometry geometry = reader.read(WKT); assertNotNull(geometry); assertTrue(geometry instanceof MultiPoint); MultiPoint mp = (MultiPoint) geometry; assertEquals(2, mp.getNumGeometries()); assertEquals(new Coordinate(111, -47), mp.getGeometryN(0).getCoordinate()); assertEquals(new Coordinate(110, -46.5), mp.getGeometryN(1).getCoordinate()); }
@Test public void multiPointWithInnerParens() throws Exception { String WKT = "MULTIPOINT ((111 -47), (110 -46.5))"; WKTReader reader = new WKTReader2(); Geometry geometry = reader.read(WKT); assertNotNull(geometry); assertTrue(geometry instanceof MultiPoint); MultiPoint mp = (MultiPoint) geometry; assertEquals(2, mp.getNumGeometries()); assertEquals(new Coordinate(111, -47), mp.getGeometryN(0).getCoordinate()); assertEquals(new Coordinate(110, -46.5), mp.getGeometryN(1).getCoordinate()); }
protected Geometry transformMultiPoint(MultiPoint geom, Geometry parent) { List transGeomList = new ArrayList(); for (int i = 0; i < geom.getNumGeometries(); i++) { Geometry transformGeom = transformPoint((Point) geom.getGeometryN(i), geom); if (transformGeom == null) continue; if (transformGeom.isEmpty()) continue; transGeomList.add(transformGeom); } return factory.buildGeometry(transGeomList); }
protected void writeGeometry(Geometry geom) throws IOException { MultiPoint mp = (MultiPoint) geom; for (int i = 0; i < mp.getNumGeometries(); i++) { super.startElement(null); super.writeGeometry(mp.getGeometryN(i)); super.endGeometry(mp.getGeometryN(i)); super.endElement(null); } }