public override string GetStepParameters() { var parameters = new List <string>(); parameters.Add(GlobalId != null ? GlobalId.ToStepValue() : "$"); parameters.Add(OwnerHistory != null ? OwnerHistory.ToStepValue() : "$"); parameters.Add(Name != null ? Name.ToStepValue() : "$"); parameters.Add(Description != null ? Description.ToStepValue() : "$"); parameters.Add(ConnectionGeometry != null ? ConnectionGeometry.ToStepValue() : "$"); parameters.Add(RelatingElement != null ? RelatingElement.ToStepValue() : "$"); parameters.Add(RelatedElement != null ? RelatedElement.ToStepValue() : "$"); return(string.Join(", ", parameters.ToArray())); }
public override string GetStepParameters() { var parameters = new List <string>(); parameters.Add(GlobalId != null ? GlobalId.ToStepValue() : "$"); parameters.Add(OwnerHistory != null ? OwnerHistory.ToStepValue() : "$"); parameters.Add(Name != null ? Name.ToStepValue() : "$"); parameters.Add(Description != null ? Description.ToStepValue() : "$"); parameters.Add(RelatingSpace != null ? RelatingSpace.ToStepValue() : "$"); parameters.Add(RelatedBuildingElement != null ? RelatedBuildingElement.ToStepValue() : "$"); parameters.Add(ConnectionGeometry != null ? ConnectionGeometry.ToStepValue() : "$"); parameters.Add(PhysicalOrVirtualBoundary.ToStepValue()); parameters.Add(InternalOrExternalBoundary.ToStepValue()); parameters.Add(ParentBoundary != null ? ParentBoundary.ToStepValue() : "$"); return(string.Join(", ", parameters.ToArray())); }
/// <summary> /// Builds road graph from map data /// </summary> /// <param name="map">OSMDB with preprocessed map data from OSM2Routing utility</param> public void Build(OSMDB map) { Dictionary<int, Node> usedNodes = new Dictionary<int, Node>(); foreach (var segment in map.Ways) { Node start = GetOrCreateNode(segment.Nodes[0], usedNodes); try { start.MapPoint = map.Nodes[segment.Nodes[0]]; } catch (ArgumentException) { continue; // If the start node was not found in the database, skip this path completely } Node end = GetOrCreateNode(segment.Nodes[segment.Nodes.Count - 1], usedNodes); try { end.MapPoint = map.Nodes[segment.Nodes[segment.Nodes.Count - 1]]; } catch (ArgumentException) { continue; // If the end node was not found in the database, skip this path completely } double speed = double.Parse(segment.Tags["speed"].Value, System.Globalization.CultureInfo.InvariantCulture); int wayId = int.Parse(segment.Tags["way-id"].Value, System.Globalization.CultureInfo.InvariantCulture); ConnectionGeometry geometry = new ConnectionGeometry(); geometry.WayID = wayId; foreach (var n in segment.Nodes) { try { OSMNode mapPoint = map.Nodes[n]; geometry.Nodes.Add(mapPoint); //geometry.Nodes.Add(new PointGeo(mapPoint.Latitude, mapPoint.Longitude)); } catch (ArgumentException) { continue; // If an intermediate node was not found in the database, skip just that node } } _connectionGeometries.Add(geometry); if (segment.Tags["accessible"].Value == "yes") { Connection sc = new Connection(start, end) { Speed = speed, Geometry = geometry }; geometry.Connections.Add(sc); _connections.Add(sc); } if (segment.Tags["accessible-reverse"].Value == "yes") { Connection sc = new Connection(end, start) { Speed = speed, Geometry = geometry }; geometry.Connections.Add(sc); _connections.Add(sc); } } }