/// <summary> /// Writes MultiPoint to the output using specified writer. /// </summary> /// <param name="multipoint">The MultiPoint to write.</param> /// <param name="writer">The BinaryWriter used to write geometry to the output.</param> private static void WriteMultiPoint(IMultiPoint multipoint, BinaryWriter writer) { writer.Write((uint)WkbWriter.AdjustGeometryType(multipoint, WkbGeometryType.MultiPoint)); writer.Write((uint)multipoint.Geometries.Count()); foreach (var point in multipoint.Geometries) { WkbWriter.WriteCoordinate(point.Position, writer); } }
/// <summary> /// Writes list of Coordinates to the output using specified writer. /// </summary> /// <param name="coordinates">The list od Coordinates to write.</param> /// <param name="writer">The BinaryWriter used to write geometry to the output.</param> private static void WriteCoordinates(ICoordinateList coordinates, BinaryWriter writer) { writer.Write((uint)coordinates.Count); for (int i = 0; i < coordinates.Count; i++) { WkbWriter.WriteCoordinate(coordinates[i], writer); } }
/// <summary> /// Writes Point to the output using specified writer. /// </summary> /// <param name="point">The Point to write.</param> /// <param name="writer">The BinaryWriter used to write geometry to the output.</param> private static void WritePoint(IPoint point, BinaryWriter writer) { if (point.Position.Equals(Coordinate.Empty)) { writer.Write((uint)WkbGeometryType.GeometryCollection); writer.Write(0u); } else { writer.Write((uint)WkbWriter.AdjustGeometryType(point, WkbGeometryType.Point)); WkbWriter.WriteCoordinate(point.Position, writer); } }