IRI.Maptor.Sta.Common 2.8.1

dotnet add package IRI.Maptor.Sta.Common --version 2.8.1
                    
NuGet\Install-Package IRI.Maptor.Sta.Common -Version 2.8.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="IRI.Maptor.Sta.Common" Version="2.8.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="IRI.Maptor.Sta.Common" Version="2.8.1" />
                    
Directory.Packages.props
<PackageReference Include="IRI.Maptor.Sta.Common" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add IRI.Maptor.Sta.Common --version 2.8.1
                    
#r "nuget: IRI.Maptor.Sta.Common, 2.8.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package IRI.Maptor.Sta.Common@2.8.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=IRI.Maptor.Sta.Common&version=2.8.1
                    
Install as a Cake Addin
#tool nuget:?package=IRI.Maptor.Sta.Common&version=2.8.1
                    
Install as a Cake Tool

IRI.Maptor.Sta.Common

The IRI.Maptor.Sta.Common project is the foundational building block of the Maptor GIS library suite. It provides core abstractions, utility classes, mathematical models, data structures, and essential helpers required by higher-level Maptor components. This library ensures consistency and reusability across all GIS-related modules.


🔍 Overview

This library focuses on:

  • Core interfaces and abstractions for domain-driven design (e.g., IIdentifiable, IPoint)
  • Mathematical operations including linear algebra and statistics
  • Advanced data structures (trees, heaps, disjoint sets)
  • Unit and measurement conversions (linear, angular)
  • Extensions and helpers for strings, numbers, collections, and I/O
  • Service models for integration with external APIs (Google, Bing, Here, Mapzen)

It acts as the backbone for Maptor, ensuring other projects share a unified and optimized base.


✨ Features

  • Abstractions for geometric and domain models
  • Encodings (Base64 URL, Persian DOS)
  • Enums and attribute utilities
  • Rich set of data structures: binary heaps, trees, interval trees, red-black trees, disjoint sets
  • Helpers for I/O, JSON, XML, HTTP, security, randomness
  • Mathematics: matrices, vectors, eigenvalues, chi-square, statistics models
  • Unit conversions for angles and lengths (meters, feet, miles, etc.)
  • Extensions for string, DateTime, IEnumerable, int, double, etc.
  • External service contracts for routing, geolocation, and dictionary services

📚 Installation

Install via NuGet:

Install-Package IRI.Maptor.Sta.Common

Supports .NET 8.0 and later.


🔄 Example Usage

Working with Points and Bounding Boxes:

using IRI.Maptor.Sta.Common.Primitives;

var pointA = new Point(10.5, 20.3);
var pointB = new Point(12.7, 22.1);

var bbox = new BoundingBox(pointA, pointB);
Console.WriteLine($"Bounding Box: {bbox}");

Using Unit Conversions:

using IRI.Maptor.Sta.Common.Units.Linear;

double meters = 1000;
var miles = new Mile(meters);
Console.WriteLine($"{meters} meters = {miles.Value} miles");

🛠 Project Structure

Common/
  Abstractions/        # Core interfaces (IHasM, IIdentifiable, IRepository, etc.)
  Attributes/          # Custom attributes like FieldAttribute
  Encodings/           # Encoding utilities (Base64Url, Persian DOS)
  Enums/               # Enum definitions for geometry and spatial relations
  Exceptions/          # Custom exceptions
  JsonConverters/      # JSON converters for specialized types
  Randoms/             # Random generators
Contracts/
  Google/, Bing/, Here/, Mapzen/ # API response models
DataStructures/
  BinaryHeap/, Trees/, SortAlgorithms/ # Advanced structures
Extensions/            # Extension methods for core types
Helpers/               # Utility classes for I/O, HTTP, security, etc.
Mathematics/           # Linear algebra, statistics, optimization
Models/                # Domain models (GeoreferencedImage, ValueObject)
Primitives/            # Geometric primitives (Point, LineSegment, BoundingBox)
Services/              # Service models and helpers (Oxford API, DateTime services)
Units/                 # Unit conversion systems (Linear, Angular)

💪 Why Use This Library?

  • Provides solid foundations for building GIS and spatial applications
  • Eliminates repetitive code with rich utility support
  • Ensures high performance via optimized algorithms and structures

👥 Contributing

Contributions are welcome! Please fork the repository, create a feature branch, and submit a pull request.


⚖️ License

This project is licensed under the MIT License.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
.NET Core netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (14)

Showing the top 5 NuGet packages that depend on IRI.Maptor.Sta.Common:

Package Downloads
IRI.Maptor.Sta.SpatialReferenceSystem

A .NET standard library to transform various spatial reference systems

IRI.Maptor.Sta.Spatial

A .NET standard library to work with spatial types, structures and algorithms (GeoJson, Geometry, KdTree, RTree, Delaunay, Simplification, etc.)

IRI.Maptor.Sta.Ogc

A .NET standard library containing OGC standards such as SFA, SLD, WFS, WMS, GML, KML

IRI.Maptor.Sta.ShapefileFormat

A .NET standard library to read/write shapefile (*.shp, *.shx, *.dbf, *.prj)

IRI.Maptor.Jab.Common

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.8.1 0 9/7/2025
2.8.0 34 9/6/2025
2.7.4 270 8/27/2025
2.7.4-alpha 256 8/28/2025
2.7.3 254 8/27/2025
2.7.3-alpha 343 8/25/2025
2.7.2 284 8/15/2025
2.7.2-alpha.27 110 8/19/2025
2.7.2-alpha.26 114 8/18/2025
2.7.2-alpha.25 49 8/16/2025
2.7.2-alpha.24 55 8/15/2025
2.7.2-alpha.23 63 8/15/2025
2.7.2-alpha.22 74 8/15/2025
2.7.2-alpha.21 95 8/15/2025
2.7.2-alpha 202 8/21/2025
2.7.1-alpha.20 105 8/15/2025
2.7.1-alpha.19 119 8/14/2025
2.7.0-alpha.18 125 8/14/2025
2.7.0-alpha.17 120 8/14/2025
2.7.0-alpha.16 121 8/14/2025
2.6.2 230 8/13/2025
2.6.2-alpha.15 122 8/13/2025
2.6.1 204 8/11/2025
2.5.4 204 8/11/2025
2.5.3 275 8/7/2025
2.5.2 277 8/7/2025
2.5.1 278 8/7/2025
2.5.0 300 8/6/2025
2.4.1 308 8/6/2025