Beispiel #1
0
 /// <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());
 }
Beispiel #2
0
        /// <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());
        }
Beispiel #3
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="geometry"></param>
 /// <param name="beWriter"></param>
 protected void WriteFeatureHeader(Geometry geometry, BigEndianBinaryWriter beWriter)
 {
     // Write record number (big endian)
     beWriter.WriteIntBE((int)++recordCounter);
     // Write content length (big endian)
     int contentLength = shapeWriter.GetBytesLength(geometry);
     beWriter.WriteIntBE((int)(contentLength / 2));  // Write length in 16 bit words!
 }
 /// <summary>
 /// Returns a list containing a Coordinate from each Polygon, LineString, and Point
 /// found inside the specified point. Thus, if the specified point is
 /// not a GeometryCollection, an empty list will be returned.
 /// </summary>
 public static IList GetCoordinates(Geometry geom)
 {
     IList pts = new ArrayList();
     geom.Apply(new ConnectedElementPointFilter(pts));
     return pts;
 }