OsmSharp
| OsmSharp | |
|---|---|
| Author: | Ben Abelshausen |
| Website: | http://www.14k.be |
| Version: | 2.0.4340 (2011-02-22) |
| License: | GPLv3 (free) |
| Platform: | win ; linux ; mac |
|
OpenStreetMap Library and general optimisation tool developed in C#! | |
Contents |
Introduction
The library contains serveral different features with the main focus on routing and optimisation of TSP and M-TSP problems! Other features start with the processing of OSM-xml files and a simple .NET control to display tiled maps and basic primitives in addition to data like POI's and GPX-files.
All is written in C#, open source, and available at sourceforge! User:Ben.abelshausen maintains the project.
Download
Latest version: download
History
The project was orginally created for Deltamedia, a delivery company in Belgium. OsmSharp was used to optimize delivery, calculate routes and generate routing instructions.
A Talk/presentation was given about this library at State Of The Map Europe 2011.
Another talk at State Of The Map 2011: SotM_2011_session:_Using_OpenStreetMap_for_Logistics_and_Planning
Features
The most important feature is routing for logistic problems. The rest is created to accommodate this including a control for displaying a map and routes, basic data processing and various data sources.
Routing
- Calculate Point-to-point routes using Dyskstra and A*.
- Support for turning weights and turn restrictions.
- Calculate multiple routes simultaneously from one point to many others.
- Optimize for the TSP problem.
- Optimize for the M-TSP problem with fixed number of vehicles.
- Optimize for the M-TSP problem with variable number of vehicles but with upper- and lowerbounds on time.
Data Processing
- Importing OSM data to an Oracle database using a custom database schema.
- Using a bounding box filter on any OSM data source.
- Using a bounding box filter on changesets (assuming the target database has data inside the same bounding box).
- Using the OSM replication servers to keep a local file or database up-to-date.
Importing into a PostgreSQL database is best done using Osmosis.
Data Sources
- Use GPX files.
- Use KML files.
- Use OSM files.
- Use OSM PostgreSQL database (Simple schema)
- Use a custom Oracle database schema.
Map
- Display slippy maps.
- Display primitive objects (Icons, line, points, polygons).
- Select primitive objects.
- Basic version of a HeatMap
Mono
The project functions using the Mono project when routing, dataprocessing is concerned. There are some problems with the UI-code that need to be fixed.
Documentation/Help
There are some tutorials for the project and also check the project website for help. SourceForge can be used to request new features or help.
Demo Projects
OsmSharp/Demos/DrivingRange: A demo project illustrating a simple way to calculate the reach of a vehicle.
OsmSharp/Demos/Routing: A demo project illustrating point-to-point routing.
OsmSharp/Demos/TSP: A demo project calculating TSP solutions.
Tutorials
OsmSharp/Tutorials/Routing: A very simple tutorial for calculation a point-to-point route.
Future Developments
- Improved routing instructions.
- More languages in routing instructions.
Feature request can be registered on sourceforge: features
Bugs can be reported also on sourceforge: bugs
