/// <summary>
        /// Initializes a new instance of the <see cref="MultiLineString"/> class.
        /// </summary>
        /// <param name="lineStrings">
        /// List of <see cref="LineStringCoordinates"/> instances representing individual line strings.
        /// </param>
        /// <param name="geometryParams">
        /// Additional geometry parameters.
        /// </param>
        public MultiLineString(IList <LineStringCoordinates> lineStrings, GeometryParams geometryParams)
            : base(GeometryType.MultiLineString, geometryParams)
        {
            if (lineStrings == null)
            {
                throw new ArgumentNullException("lineStrings");
            }

            this.LineStrings = new ReadOnlyCollection <LineStringCoordinates>(lineStrings);
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="MultiPolygon"/> class.
        /// </summary>
        /// <param name="polygons">
        /// List of <see cref="PolygonCoordinates"/> instances. Each <see cref="PolygonCoordinates"/> represents separate polygon.
        /// </param>
        /// <param name="geometryParams">Additional geometry parameters.</param>
        public MultiPolygon(IList <PolygonCoordinates> polygons, GeometryParams geometryParams)
            : base(GeometryType.MultiPolygon, geometryParams)
        {
            if (polygons == null)
            {
                throw new ArgumentNullException("polygons");
            }

            this.Polygons = new ReadOnlyCollection <PolygonCoordinates>(polygons);
        }
Пример #3
0
        /// <summary>
        /// Initializes a new instance of the <see cref="MultiPoint" /> class.
        /// </summary>
        /// <param name="points">
        /// List of <see cref="Position"/> representing individual points.
        /// </param>
        /// <param name="geometryParams">
        /// Additional geometry parameters.
        /// </param>
        public MultiPoint(IList <Position> points, GeometryParams geometryParams)
            : base(GeometryType.MultiPoint, geometryParams)
        {
            if (points == null)
            {
                throw new ArgumentNullException("points");
            }

            this.Points = new ReadOnlyCollection <Position>(points);
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="GeometryCollection"/> class.
        /// </summary>
        /// <param name="geometries">
        /// Child geometries.
        /// </param>
        /// <param name="geometryParams">
        /// Additional geometry parameters.
        /// </param>
        public GeometryCollection(IList <Geometry> geometries, GeometryParams geometryParams)
            : base(GeometryType.GeometryCollection, geometryParams)
        {
            if (geometries == null)
            {
                throw new ArgumentNullException("geometries");
            }

            this.Geometries = new ReadOnlyCollection <Geometry>(geometries);
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="LineString"/> class.
        /// </summary>
        /// <param name="coordinates">
        /// The coordinates.
        /// </param>
        /// <param name="geometryParams">
        /// Additional geometry parameters.
        /// </param>
        public LineString(IList <Position> coordinates, GeometryParams geometryParams)
            : base(GeometryShape.LineString, geometryParams)
        {
            if (coordinates == null)
            {
                throw new ArgumentNullException("coordinates");
            }

            this.Positions = new ReadOnlyCollection <Position>(coordinates);
        }
Пример #6
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Polygon"/> class in the Azure Cosmos DB service.
        /// </summary>
        /// <param name="rings">
        /// Polygon rings.
        /// </param>
        /// <param name="geometryParams">
        /// Additional geometry parameters.
        /// </param>
        public Polygon(IList <LinearRing> rings, GeometryParams geometryParams)
            : base(GeometryType.Polygon, geometryParams)
        {
            if (rings == null)
            {
                throw new ArgumentNullException("rings");
            }

            this.Rings = new ReadOnlyCollection <LinearRing>(rings);
        }
Пример #7
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Point" /> class in the Azure Cosmos DB service.
        /// </summary>
        /// <param name="position">
        /// Point coordinates.
        /// </param>
        /// <param name="geometryParams">
        /// Additional geometry parameters.
        /// </param>
        public Point(Position position, GeometryParams geometryParams)
            : base(GeometryShape.Point, geometryParams)
        {
            if (position == null)
            {
                throw new ArgumentNullException("position");
            }

            this.Position = position;
        }
Пример #8
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Geometry" /> class in the Azure Cosmos DB service.
        /// </summary>
        /// <param name="type">
        /// Geometry type.
        /// </param>
        /// <param name="geometryParams">
        /// Coordinate reference system, additional properties etc.
        /// </param>
        protected Geometry(GeometryType type, GeometryParams geometryParams)
        {
            if (geometryParams == null)
            {
                throw new ArgumentNullException("geometryParams");
            }

            this.Type = type;

            if (geometryParams.Crs == null || geometryParams.Crs.Equals(Crs.Default))
            {
                this.CrsForSerialization = null;
            }
            else
            {
                this.CrsForSerialization = geometryParams.Crs;
            }

            this.BoundingBox          = geometryParams.BoundingBox;
            this.AdditionalProperties = geometryParams.AdditionalProperties ?? new Dictionary <string, object>();
        }