mirror of
https://onedev.fprog.nl/OsmToDatabase
synced 2025-12-20 19:18:37 +01:00
Implemented program that extracts peak data to database.
This commit is contained in:
parent
5b81825194
commit
074bb644a9
|
|
@ -1,2 +1,42 @@
|
|||
// See https://aka.ms/new-console-template for more information
|
||||
Console.WriteLine("Hello, World!");
|
||||
using OsmSharp;
|
||||
using OsmSharp.Streams;
|
||||
using OsmToDatabase.Common;
|
||||
|
||||
OsmContext db = new OsmContext();
|
||||
|
||||
using (var fileStream = new FileInfo(args[0]).OpenRead())
|
||||
{
|
||||
var source = new PBFOsmStreamSource(fileStream);
|
||||
foreach (var element in source)
|
||||
{
|
||||
if (element is Node node)
|
||||
{
|
||||
if (node.TagValueByKey("natural") != "peak")
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
Peak peak = new Peak
|
||||
{
|
||||
Id = node.Id.Value,
|
||||
Version = node.Version.Value,
|
||||
TimeStamp = node.TimeStamp.Value,
|
||||
Longitude = node.Longitude.Value,
|
||||
Elevation = node.TagDoubleValueByKey("ele"),
|
||||
Prominence = node.TagDoubleValueByKey("prominence"),
|
||||
Isolation = node.TagDoubleValueByKey("isolation"),
|
||||
Name = node.TagValueByKey("name"),
|
||||
AlternativeName = node.TagValueByKey("alt_name"),
|
||||
EnglishName = node.TagValueByKey("name:en"),
|
||||
EnglishAlternativeName = node.TagValueByKey("alt_name:en"),
|
||||
ItalianName = node.TagValueByKey("name:it"),
|
||||
SlovenianName = node.TagValueByKey("name:sl"),
|
||||
GermanName = node.TagValueByKey("name:de"),
|
||||
SummitRegisterPresent = node.TagValueByKey("summit:register") == "yes",
|
||||
Wikidata = node.TagValueByKey("wikidata")
|
||||
};
|
||||
await db.AddAsync(peak);
|
||||
await db.SaveChangesAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue