コード例 #1
0
ファイル: OsmStreamExtensions.cs プロジェクト: OsmSharp/core
        /// <summary>
        /// Merges all the given sources.
        /// </summary>
        /// <param name="sources">The sources.</param>
        /// <param name="resolutionType">The resolution type.</param>
        /// <returns>A merged stream.</returns>
        public static OsmStreamSource Merge(this IEnumerable <IEnumerable <OsmGeo> > sources,
                                            ConflictResolutionType resolutionType = ConflictResolutionType.FirstStream)
        {
            OsmStreamSource previous = null;

            foreach (var source in sources)
            {
                var osmSource = new OsmEnumerableStreamSource(source);

                if (previous == null)
                {
                    previous = osmSource;
                }
                else
                {
                    var next = new OsmStreamFilterMerge(resolutionType);
                    next.RegisterSource(previous);
                    next.RegisterSource(osmSource);

                    previous = next;
                }
            }

            return(previous);
        }
コード例 #2
0
ファイル: OsmStreamExtensions.cs プロジェクト: OsmSharp/core
        /// <summary>
        /// Merges the given sources into this source.
        /// </summary>
        public static OsmStreamSource Merge(this IEnumerable <OsmGeo> source, ConflictResolutionType resolutionType, params IEnumerable <OsmGeo>[] sources)
        {
            var osmSources = new OsmStreamSource[sources.Length];

            for (var s = 0; s < sources.Length; s++)
            {
                osmSources[s] = new OsmEnumerableStreamSource(sources[s]);
            }

            return(source.Merge(resolutionType, osmSources));
        }