/// <summary> /// /// </summary> /// <param name="geometry"></param> /// <returns></returns> protected ShapeGeometryTypes GetShapeType(Geometry geometry) { if (geometry is Point) return ShapeGeometryTypes.Point; else if (geometry is LinearRing) return ShapeGeometryTypes.LineString; else if (geometry is LineString) return ShapeGeometryTypes.LineString; else if (geometry is Polygon) return ShapeGeometryTypes.Polygon; else if (geometry is MultiPoint) return ShapeGeometryTypes.MultiPoint; else if (geometry is MultiLineString) return ShapeGeometryTypes.LineString; else if (geometry is MultiPolygon) return ShapeGeometryTypes.Polygon; else throw new NotSupportedException("Unsupported Geometry implementation:" + geometry.GetType()); }
/// <summary> /// /// </summary> /// <param name="geometry"></param> /// <param name="leWriter"></param> /// <param name="beWriter"></param> protected void Write(Geometry geometry, BinaryWriter leWriter, BigEndianBinaryWriter beWriter) { WriteFeatureHeader(geometry, beWriter); if (geometry is Point) shapeWriter.Write(geometry as Point, leWriter); else if (geometry is LineString) shapeWriter.Write(geometry as LineString, leWriter); else if (geometry is Polygon) shapeWriter.Write(geometry as Polygon, leWriter); else if (geometry is MultiPoint) shapeWriter.Write(geometry as MultiPoint, leWriter); else if (geometry is MultiLineString) shapeWriter.Write(geometry as MultiLineString, leWriter); else if (geometry is MultiPolygon) shapeWriter.Write(geometry as MultiPolygon, leWriter); else throw new NotSupportedException("Unsupported Geometry implementation:" + geometry.GetType()); }