diff --git a/rtron-transformer/src/main/kotlin/io/rtron/transformer/converter/roadspaces2citygml/Roadspaces2CitygmlTransformer.kt b/rtron-transformer/src/main/kotlin/io/rtron/transformer/converter/roadspaces2citygml/Roadspaces2CitygmlTransformer.kt index f09e536..815d17f 100644 --- a/rtron-transformer/src/main/kotlin/io/rtron/transformer/converter/roadspaces2citygml/Roadspaces2CitygmlTransformer.kt +++ b/rtron-transformer/src/main/kotlin/io/rtron/transformer/converter/roadspaces2citygml/Roadspaces2CitygmlTransformer.kt @@ -31,7 +31,6 @@ import io.rtron.model.roadspaces.RoadspacesModel import io.rtron.model.roadspaces.identifier.opposite import io.rtron.model.roadspaces.roadspace.road.Lane import io.rtron.model.roadspaces.roadspace.road.LaneChange -import io.rtron.model.roadspaces.roadspace.road.LaneType import io.rtron.std.getValueEither import io.rtron.transformer.converter.roadspaces2citygml.module.RelationAdder import io.rtron.transformer.converter.roadspaces2citygml.report.Roadspaces2CitygmlReport @@ -220,10 +219,7 @@ class Roadspaces2CitygmlTransformer( // predecessor val predecessorLaneIds = - if (currentLane.type == LaneType.BIDIRECTIONAL) { - roadspacesModel.getPredecessorLaneIdentifiers(currentLane.id).getOrElse { throw it } + - roadspacesModel.getSuccessorLaneIdentifiers(currentLane.id).getOrElse { throw it } - } else if (currentLane.id.isForward()) { + if (currentLane.id.isForward()) { roadspacesModel.getPredecessorLaneIdentifiers(currentLane.id).getOrElse { throw it } } else { roadspacesModel.getSuccessorLaneIdentifiers(currentLane.id).getOrElse { throw it } @@ -241,10 +237,7 @@ class Roadspaces2CitygmlTransformer( // successor val successorLaneIds = - if (currentLane.type == LaneType.BIDIRECTIONAL) { - roadspacesModel.getSuccessorLaneIdentifiers(currentLane.id).getOrElse { throw it } + - roadspacesModel.getPredecessorLaneIdentifiers(currentLane.id).getOrElse { throw it } - } else if (currentLane.id.isForward()) { + if (currentLane.id.isForward()) { roadspacesModel.getSuccessorLaneIdentifiers(currentLane.id).getOrElse { throw it } } else { roadspacesModel.getPredecessorLaneIdentifiers(currentLane.id).getOrElse { throw it } diff --git a/rtron-transformer/src/main/kotlin/io/rtron/transformer/converter/roadspaces2citygml/module/TransportationModuleBuilder.kt b/rtron-transformer/src/main/kotlin/io/rtron/transformer/converter/roadspaces2citygml/module/TransportationModuleBuilder.kt index de0e661..a314f89 100644 --- a/rtron-transformer/src/main/kotlin/io/rtron/transformer/converter/roadspaces2citygml/module/TransportationModuleBuilder.kt +++ b/rtron-transformer/src/main/kotlin/io/rtron/transformer/converter/roadspaces2citygml/module/TransportationModuleBuilder.kt @@ -30,6 +30,7 @@ import io.rtron.model.roadspaces.identifier.AbstractRoadspacesIdentifier import io.rtron.model.roadspaces.identifier.LaneIdentifier import io.rtron.model.roadspaces.roadspace.objects.RoadspaceObject import io.rtron.model.roadspaces.roadspace.road.Lane +import io.rtron.model.roadspaces.roadspace.road.LaneType import io.rtron.model.roadspaces.roadspace.road.RoadMarking import io.rtron.transformer.converter.roadspaces2citygml.Roadspaces2CitygmlParameters import io.rtron.transformer.converter.roadspaces2citygml.geometry.GeometryTransformer @@ -112,7 +113,12 @@ class TransportationModuleBuilder( relatedObjects.forEach { relationAdder.addRelatedToRelation(it, trafficSpaceFeature) } // TODO: consider left-hand traffic (LHT) trafficSpaceFeature.trafficDirection = - if (lane.id.isForward()) TrafficDirectionValue.FORWARDS else TrafficDirectionValue.BACKWARDS + when { + lane.type == LaneType.BIDIRECTIONAL -> TrafficDirectionValue.BOTH + lane.id.isForward() -> TrafficDirectionValue.FORWARDS + else -> TrafficDirectionValue.BACKWARDS + } + // geometry val centerLineGeometryTransformer = GeometryTransformer(parameters).also { centerLine.accept(it) } trafficSpaceFeature.populateLod2Geometry(centerLineGeometryTransformer)