/// <summary> /// Записать данные геометрического объекта в указанный поток /// </summary> /// <param name="geometry">Геометрический объект для записи</param> /// <param name="file">Поток записи</param> public override void Write(IGeometry geometry, BinaryWriter file) { if (!(geometry is MultiPoint)) { throw new ArgumentException("Geometry Type error: MultiPoint expected, but the type retrieved is " + geometry.GetType().Name); } MultiPoint mpoint = geometry as MultiPoint; file.Write(int.Parse(Enum.Format(typeof(ShapeType), ShapeType, "d"))); BoundingRectangle bounds = geometry.GetBoundingRectangle();//GetEnvelopeExternal(/*geometryFactory.PrecisionModel,*/ box); file.Write(bounds.MinX); file.Write(bounds.MinY); file.Write(bounds.MaxX); file.Write(bounds.MaxY); int numPoints = mpoint.ExtractCoordinates().Length;//.NumPoints; file.Write(numPoints); // write the points for (int i = 0; i < numPoints; i++) { PointD point = new PointD(mpoint.Points[i]);// Geometries[i]; file.Write(point.X); file.Write(point.Y); } }