Building a multipoint using points
The following code shows how to build a multipoint using a collection of points. This approach is preferred when the user has a sequence of vertices as input. See the following:
[Java]
static void createMultipointByPoints()throws Exception{
//Build multipoint from a sequence of points.
//At 9.2, the recommended way to add arrays of points to a geometry is to use
//the IGeometryBridge2 interface on the GeometryEnvironment singleton object.
IGeometryBridge2 geometryBridge = new GeometryEnvironment();
IPointCollection4 pointCollection = new Multipoint();
//TODO: Set the spatial reference of the new multipoint.
int count = ...;
_WKSPoint[] points = new _WKSPoint[count];
//TODO: initialize the points array with proper coordinates
geometryBridge.setWKSPoints(pointCollection, points);
}
Creating a multipoint using existing geometries
A multipoint can be created based on existing geometries. In the following code, a multipoint is generated by buffering an existing polyline and getting the vertices of the result polygon:
[Java]
static void createMultipointFromExistingGeometry(IPolyline pPoly)throws Exception{
//Build a multipoint from a polygon.
//The multipoint contains point elements being the copies of buffered polygon.
ITopologicalOperator2 topoOp = (ITopologicalOperator2)pPoly;
topoOp.setIsKnownSimple(false);
topoOp.simplify();
//Create a buffer polygon of the input geometry.
IPolygon bufferedPoly = (IPolygon)topoOp.buffer(5);
//Get the points of the buffered polygon.
IPointCollection pointColl = (IPointCollection)bufferedPoly;
//Create a multipoint.
IGeometry multipoint = new Multipoint();
multipoint.setSpatialReferenceByRef(pPoly.getSpatialReference());
IPointCollection pointCollMultipoint = (IPointCollection)multipoint;
//Add copies of the polyline vertices to the multipoint.
pointCollMultipoint.addPointCollection(pointColl);
}