/// <summary> /// Konstruktor /// </summary> /// <param name="planetFilePbf">PBF-Datei, welche geöffnet werden soll (z.B. planet-latest.osm.pbf)</param> public OsmPbfReader(string planetFilePbf) { var index = PbfFast.ReadIndex(planetFilePbf, false); nodeIndex = index.Where(x => x.nodeCount > 0).ToArray(); wayIndex = index.Where(x => x.wayCount > 0).ToArray(); relationIndex = index.Where(x => x.relationCount > 0).ToArray(); pbfReader = new FastPbfReader(planetFilePbf) { RandomBuffering = true }; }
/// <summary> /// gibt alle Ressourcen wieder frei /// </summary> public void Dispose() { lock (runningThreads) { foreach (var th in runningThreads) { if (th.IsAlive && th.ManagedThreadId != Thread.CurrentThread.ManagedThreadId) { th.Abort(); } } runningThreads.Clear(); } if (pbfReader != null) { pbfReader.Dispose(); pbfReader = null; } }