Introduction
editMeziantou.Framework.Geo reads and writes maps: countries, roads, GPS tracks, points of interest. It has no dependency outside .NET, and it supports trimming.
What you can do with it
- Read and write the common formats: GeoJSON, TopoJSON, Shapefile, KML and KMZ, GPX, WKT and WKB, encoded polylines, and FlatGeobuf. Every reader returns the same model, so converting a file is a read and a write. See formats.
- Work with features and geometries: points, lines, polygons and their collections, with their properties, and positions with an optional altitude, measure and time, such as the points of a GPS track; get their bounds, a position to label them, distances, and whether a position is inside an area, with straight or great-circle edges and across the 180th meridian. See features and geometries.
- Project positions onto a plane to draw a map, with the equirectangular, Mercator, Equal Earth, Albers and azimuthal equidistant projections. See projections.
- Transform geometries: repair invalid polygons, clip to a box, simplify, split along the 180th meridian, combine polygons (union, intersection, difference), measure the distance between geometries, compute buffers and convex hulls, and convert positions from another coordinate system. See geometry operations.
- Draw maps:
Meziantou.Framework.Chartsdraws the features as choropleths and points on maps. See maps.
The positions are longitudes and latitudes in degrees, on WGS 84, as GPS devices, GeoJSON and web maps use them. Coordinate reference systems convert data in UTM, Lambert 93, Web Mercator and other projections to them.
Namespace
Every type is in the Meziantou.Framework.Geo namespace.
Next steps
- Getting started: install the package, read a file and write one.
- Limitations: what the library does not do.