示例#1
0
        /// <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
            };
        }
示例#2
0
        /// <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;
            }
        }