OsmSharp enables you to work directly with OpenStreetMap (OSM) data in .NET. Most important features are:
Check the documentation website for documentation and sample code. Don't hesitate to ask questions using an issue or request more documentation on any topic you need.
There are 5 sample projects in the samples
folder:
PM> Install-Package OsmSharp
There's also a package to use NTS together with OsmSharp to convert OSM-data to features/geometries.
PM> Install-Package OsmSharp.Geo
A really good way to get started is to have a look at the samples but we collected a few code-snippets for you here anyway:
A common usecase is to stream and filter OSM data. To read from an OSM file and enumerate all objects just open the file as a stream source and use foreach.
Read data from an OSM-PBF file:
using(var fileStream = new FileInfo(@"/path/to/some/osmfile.osm.pbf").OpenRead()) { var source = new PBFOsmStreamSource(fileStream); foreach (var element in source) { Console.WriteLine(element.ToString()); } }
Write data to an OSM-PBF file:
using(var fileStream = new FileInfo(@"/path/to/my/osmfile.osm.pbf").OpenRead()) { var target = new PBFOsmStreamTarget(fileStream); target.Initialize(); target.AddNode(new Node() { Id = 1, ChangeSetId = 1, Latitude = 0, Longitude = 0, Tags = new TagsCollection( Tag.Create("key", "value")), TimeStamp = DateTime.Now, UserId = 1424, UserName = "you", Version = 1, Visible = true }); target.Flush(); target.Close(); }
Filter an area and extract a smaller region:
var source = new PBFOsmStreamSource( new FileInfo(@"/path/to/file.osm.pbf").OpenRead()); var filtered = source.FilterBox(6.238002777099609f, 49.72076145492323f, 6.272850036621093f, 49.69928180928878f); // left, top, right, bottom using (var stream = new FileInfo(@"/path/to/filterede.osm.pbf").Open(FileMode.Create, FileAccess.ReadWrite)) { var target = new PBFOsmStreamTarget(stream); target.RegisterSource(filtered); target.Pull(); }
The OsmSharp project is licensed under the MIT license.
This project includes some code from SharpZipLib, also MIT licensed.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4