/// <summary> /// Creates a GeoJson Polygon object. /// </summary> /// <typeparam name="TCoordinates">The type of the coordinates.</typeparam> /// <param name="args">The additional args.</param> /// <param name="positions">The positions.</param> /// <returns>A GeoJson Polygon object.</returns> public static GeoJsonPolygon <TCoordinates> Polygon <TCoordinates>(GeoJsonObjectArgs <TCoordinates> args, params TCoordinates[] positions) where TCoordinates : GeoJsonCoordinates { var exterior = new GeoJsonLinearRingCoordinates <TCoordinates>(positions); var coordinates = new GeoJsonPolygonCoordinates <TCoordinates>(exterior); return(new GeoJsonPolygon <TCoordinates>(args, coordinates)); }
// constructor /// <summary> /// Initializes a new instance of the <see cref="GeoJsonObject{TCoordinates}"/> class. /// </summary> /// <param name="args">The additional args.</param> protected GeoJsonObject(GeoJsonObjectArgs <TCoordinates> args) { if (args != null) { _boundingBox = args.BoundingBox; _coordinateReferenceSystem = args.CoordinateReferenceSystem; _extraMembers = args.ExtraMembers; } }
/// <summary> /// Initializes a new instance of the <see cref="GeoJsonLineString{TCoordinates}"/> class. /// </summary> /// <param name="args">The additional args.</param> /// <param name="coordinates">The coordinates.</param> /// <exception cref="System.ArgumentNullException">coordinates</exception> public GeoJsonLineString(GeoJsonObjectArgs <TCoordinates> args, GeoJsonLineStringCoordinates <TCoordinates> coordinates) : base(args) { if (coordinates == null) { throw new ArgumentNullException("coordinates"); } _coordinates = coordinates; }
/// <summary> /// Initializes a new instance of the <see cref="GeoJsonMultiPolygon{TCoordinates}"/> class. /// </summary> /// <param name="args">The additional args.</param> /// <param name="coordinates">The coordinates.</param> public GeoJsonMultiPolygon(GeoJsonObjectArgs <TCoordinates> args, GeoJsonMultiPolygonCoordinates <TCoordinates> coordinates) : base(args) { if (coordinates == null) { throw new ArgumentNullException("coordinates"); } _coordinates = coordinates; }
/// <summary> /// Initializes a new instance of the <see cref="GeoJsonPoint{TCoordinates}"/> class. /// </summary> /// <param name="args">The additional args.</param> /// <param name="coordinates">The coordinates.</param> public GeoJsonPoint(GeoJsonObjectArgs <TCoordinates> args, TCoordinates coordinates) : base(args) { if (coordinates == null) { throw new ArgumentNullException("coordinates"); } _coordinates = coordinates; }
/// <summary> /// Initializes a new instance of the <see cref="GeoJsonGeometryCollection{TCoordinates}"/> class. /// </summary> /// <param name="args">The additional args.</param> /// <param name="geometries">The geometries.</param> public GeoJsonGeometryCollection(GeoJsonObjectArgs <TCoordinates> args, IEnumerable <GeoJsonGeometry <TCoordinates> > geometries) : base(args) { if (geometries == null) { throw new ArgumentNullException("geometries"); } var geometriesArray = geometries.ToArray(); if (geometriesArray.Contains(null)) { throw new ArgumentException("One of the geometries is null.", "geometries"); } _geometries = new ReadOnlyCollection <GeoJsonGeometry <TCoordinates> >(geometriesArray); }
/// <summary> /// Initializes a new instance of the <see cref="GeoJsonFeatureCollection{TCoordinates}"/> class. /// </summary> /// <param name="args">The additional args.</param> /// <param name="features">The features.</param> public GeoJsonFeatureCollection(GeoJsonObjectArgs <TCoordinates> args, IEnumerable <GeoJsonFeature <TCoordinates> > features) : base(args) { if (features == null) { throw new ArgumentNullException("features"); } var featuresArray = features.ToArray(); if (featuresArray.Contains(null)) { throw new ArgumentException("One of the features is null.", "features"); } _features = new ReadOnlyCollection <GeoJsonFeature <TCoordinates> >(featuresArray); }
// constructors /// <summary> /// Initializes a new instance of the <see cref="GeoJsonGeometry{TCoordinates}"/> class. /// </summary> /// <param name="args">The additional args.</param> protected GeoJsonGeometry(GeoJsonObjectArgs <TCoordinates> args) : base(args) { }
/// <summary> /// Creates a GeoJson FeatureCollection object. /// </summary> /// <typeparam name="TCoordinates">The type of the coordinates.</typeparam> /// <param name="args">The additional args.</param> /// <param name="features">The features.</param> /// <returns>A GeoJson FeatureCollection object.</returns> public static GeoJsonFeatureCollection <TCoordinates> FeatureCollection <TCoordinates>(GeoJsonObjectArgs <TCoordinates> args, params GeoJsonFeature <TCoordinates>[] features) where TCoordinates : GeoJsonCoordinates { return(new GeoJsonFeatureCollection <TCoordinates>(args, features)); }
/// <summary> /// Creates a GeoJson Polygon object. /// </summary> /// <typeparam name="TCoordinates">The type of the coordinates.</typeparam> /// <param name="args">The additional args.</param> /// <param name="coordinates">The coordinates.</param> /// <returns>A GeoJson Polygon object.</returns> public static GeoJsonPolygon <TCoordinates> Polygon <TCoordinates>(GeoJsonObjectArgs <TCoordinates> args, GeoJsonPolygonCoordinates <TCoordinates> coordinates) where TCoordinates : GeoJsonCoordinates { return(new GeoJsonPolygon <TCoordinates>(args, coordinates)); }
/// <summary> /// Creates a GeoJson MultiPolygon object. /// </summary> /// <typeparam name="TCoordinates">The type of the coordinates.</typeparam> /// <param name="args">The additional args.</param> /// <param name="polygons">The polygons.</param> /// <returns>A GeoJson MultiPolygon object.</returns> public static GeoJsonMultiPolygon <TCoordinates> MultiPolygon <TCoordinates>(GeoJsonObjectArgs <TCoordinates> args, params GeoJsonPolygonCoordinates <TCoordinates>[] polygons) where TCoordinates : GeoJsonCoordinates { var coordinates = new GeoJsonMultiPolygonCoordinates <TCoordinates>(polygons); return(new GeoJsonMultiPolygon <TCoordinates>(args, coordinates)); }
/// <summary> /// Creates a GeoJson MultiPoint object. /// </summary> /// <typeparam name="TCoordinates">The type of the coordinates.</typeparam> /// <param name="args">The additional args.</param> /// <param name="positions">The positions.</param> /// <returns>A GeoJson MultiPoint object.</returns> public static GeoJsonMultiPoint <TCoordinates> MultiPoint <TCoordinates>(GeoJsonObjectArgs <TCoordinates> args, params TCoordinates[] positions) where TCoordinates : GeoJsonCoordinates { var coordinates = new GeoJsonMultiPointCoordinates <TCoordinates>(positions); return(new GeoJsonMultiPoint <TCoordinates>(args, coordinates)); }
/// <summary> /// Creates a GeoJson MultiLineString object. /// </summary> /// <typeparam name="TCoordinates">The type of the coordinates.</typeparam> /// <param name="args">The additional args.</param> /// <param name="lineStrings">The line strings.</param> /// <returns>A GeoJson MultiLineString object.</returns> public static GeoJsonMultiLineString <TCoordinates> MultiLineString <TCoordinates>(GeoJsonObjectArgs <TCoordinates> args, params GeoJsonLineStringCoordinates <TCoordinates>[] lineStrings) where TCoordinates : GeoJsonCoordinates { var coordinates = new GeoJsonMultiLineStringCoordinates <TCoordinates>(lineStrings); return(new GeoJsonMultiLineString <TCoordinates>(args, coordinates)); }
/// <summary> /// Creates a GeoJson LineString object. /// </summary> /// <typeparam name="TCoordinates">The type of the coordinates.</typeparam> /// <param name="args">The additional args.</param> /// <param name="positions">The positions.</param> /// <returns>A GeoJson LineString object.</returns> public static GeoJsonLineString <TCoordinates> LineString <TCoordinates>(GeoJsonObjectArgs <TCoordinates> args, params TCoordinates[] positions) where TCoordinates : GeoJsonCoordinates { var coordinates = new GeoJsonLineStringCoordinates <TCoordinates>(positions); return(new GeoJsonLineString <TCoordinates>(args, coordinates)); }
/// <summary> /// Creates a GeoJson GeometryCollection object. /// </summary> /// <typeparam name="TCoordinates">The type of the coordinates.</typeparam> /// <param name="args">The additional args.</param> /// <param name="geometries">The geometries.</param> /// <returns>A GeoJson GeometryCollection object.</returns> public static GeoJsonGeometryCollection <TCoordinates> GeometryCollection <TCoordinates>(GeoJsonObjectArgs <TCoordinates> args, params GeoJsonGeometry <TCoordinates>[] geometries) where TCoordinates : GeoJsonCoordinates { return(new GeoJsonGeometryCollection <TCoordinates>(args, geometries)); }