/// <summary> /// Seeks for objects that are children of other objects. /// </summary> private void Seek() { var relations = new List <Relation>(); _simpleSource.Initialize(); while (_simpleSource.MoveNext(true, false, false)) { var osmGeo = _simpleSource.Current(); switch (osmGeo.Type) { case OsmGeoType.Way: var way = (osmGeo as Way); if (way.Nodes != null) { foreach (long nodeId in way.Nodes) { this.MarkNodeAsChild(nodeId); } } break; case OsmGeoType.Relation: var relation = (osmGeo as Relation); if (relation.Members != null) { foreach (RelationMember member in relation.Members) { switch (member.MemberType.Value) { case OsmGeoType.Node: this.MarkNodeAsChild(member.MemberId.Value); break; case OsmGeoType.Way: this.MarkWayAsChild(member.MemberId.Value); break; case OsmGeoType.Relation: this.MarkRelationAsChild(member.MemberId.Value); break; } } } relations.Add(relation); break; } } foreach (var relation in relations) { if (_relationsToInclude.Contains(relation.Id.Value)) { // yep, cache relation! _dataCache.AddRelation(relation); } } _simpleSource.Reset(); }
public static MemoryDataSource CreateFrom(OsmStreamSource sourceStream) { if (sourceStream.CanReset) { sourceStream.Reset(); } MemoryDataSource memoryDataSource = new MemoryDataSource(); foreach (OsmGeo osmGeo in sourceStream) { if (osmGeo != null) { switch (osmGeo.Type) { case OsmGeoType.Node: memoryDataSource.AddNode(osmGeo as Node); continue; case OsmGeoType.Way: memoryDataSource.AddWay(osmGeo as Way); continue; case OsmGeoType.Relation: memoryDataSource.AddRelation(osmGeo as Relation); continue; default: continue; } } } return(memoryDataSource); }
/// <summary> /// Creates a new memory data source from all the data in the given osm-stream. /// </summary> /// <param name="sourceStream"></param> /// <returns></returns> public static MemoryDataSource CreateFrom(OsmStreamSource sourceStream) { // reset if possible. if (sourceStream.CanReset) { sourceStream.Reset(); } // enumerate all objects and add them to a new datasource. MemoryDataSource dataSource = new MemoryDataSource(); foreach (var osmGeo in sourceStream) { if (osmGeo != null) { switch (osmGeo.Type) { case OsmGeoType.Node: dataSource.AddNode(osmGeo as Node); break; case OsmGeoType.Way: dataSource.AddWay(osmGeo as Way); break; case OsmGeoType.Relation: dataSource.AddRelation(osmGeo as Relation); break; } } } return(dataSource); }
/// <summary> /// Resets this stream. /// </summary> public override void Reset() { if (_source != null) { _source.Reset(); } }
/// <summary> /// Resets this filter. /// </summary> public override void Reset() { _source1.Reset(); _source2.Reset(); _source1Status = null; _source2Status = null; }
/// <summary> /// Resets this source. /// </summary> public override void Reset() { _start = DateTime.Now.Ticks; _node = 0; _way = 0; _relation = 0; _reader.Reset(); }
/// <summary> /// Resets this filter. /// </summary> public override void Reset() { _source1?.Reset(); _source2?.Reset(); _source1Status = null; _source2Status = null; _current = null; }
/// <summary> /// Seeks for objects that are children of other objects. /// </summary> private void Seek() { foreach (OsmGeo osmGeo in _simpleSource) { switch (osmGeo.Type) { case OsmGeoType.Way: foreach (long nodeId in (osmGeo as Way).Nodes) { if (nodeId == 1014892489) { System.Diagnostics.Debug.WriteLine(""); } this.MarkNodeAsChild(nodeId); } break; case OsmGeoType.Relation: foreach (RelationMember member in (osmGeo as Relation).Members) { switch (member.MemberType.Value) { case OsmGeoType.Node: this.MarkNodeAsChild(member.MemberId.Value); break; case OsmGeoType.Way: this.MarkWayAsChild(member.MemberId.Value); break; case OsmGeoType.Relation: this.MarkRelationAsChild(member.MemberId.Value); break; } } break; } } _simpleSource.Reset(); }
/// <summary> /// Resets this source. /// </summary> public override void Reset() { _lastTypeStart = 0; _lastType = null; _node = 0; _nodeTicks = 0; _way = 0; _wayTicks = 0; _relation = 0; _relationTicks = 0; _reader.Reset(); }
/// <summary> /// Seeks for objects that are children of other objects. /// </summary> private void Seek() { foreach (OsmGeo osmGeo in _simpleSource) { switch (osmGeo.Type) { case OsmGeoType.Way: foreach (long nodeId in (osmGeo as Way).Nodes) { this.MarkNodeAsChild(nodeId); } break; case OsmGeoType.Relation: foreach (RelationMember member in (osmGeo as Relation).Members) { switch (member.MemberType.Value) { case OsmGeoType.Node: this.MarkNodeAsChild(member.MemberId.Value); break; case OsmGeoType.Way: this.MarkWayAsChild(member.MemberId.Value); break; case OsmGeoType.Relation: this.MarkRelationAsChild(member.MemberId.Value); break; } } break; } } _simpleSource.Reset(); }
public void Reset() { Source.Reset(); }
/// <summary> /// Creates a new memory data source from all the data in the given osm-stream. /// </summary> /// <param name="sourceStream"></param> /// <returns></returns> public static MemoryDataSource CreateFrom(OsmStreamSource sourceStream) { // reset if possible. if (sourceStream.CanReset) { sourceStream.Reset(); } // enumerate all objects and add them to a new datasource. MemoryDataSource dataSource = new MemoryDataSource(); foreach (var osmGeo in sourceStream) { if (osmGeo != null) { switch(osmGeo.Type) { case OsmGeoType.Node: dataSource.AddNode(osmGeo as Node); break; case OsmGeoType.Way: dataSource.AddWay(osmGeo as Way); break; case OsmGeoType.Relation: dataSource.AddRelation(osmGeo as Relation); break; } } } return dataSource; }