kitt v0.3.0 Kitt.Message.MAP View Source

Defines the structure and instantiation function for creating a J2735-compliant MapData message

A MapData message defines the geometry of a roadway intersection including the lanes, ingress/egress vectors and other defined rules for traversing the intersection.

Link to this section Summary

Functions

Produces a MAP message struct from an equivalent map or keyword input

Returns the MAP identifying atom recognized by the ASN1 spec

Returns the MAP identifying integer

Link to this section Types

Link to this type

bike_lane_attribute()

View Source
bike_lane_attribute() ::
  :bikeRevocableLane
  | :pedestrianUseAllowed
  | :isBikeFlyOverLane
  | :fixedCycleTime
  | :biDirectionalCycleTimes
  | :isolatedByBarrier
  | :unsignalizedSegmentsPresent
Link to this type

connecting_lane()

View Source
connecting_lane() :: %{lane: non_neg_integer(), maneuver: maneuver()}
Link to this type

connection()

View Source
connection() :: %{
  connectingLane: connecting_lane(),
  remoteIntersection: Kitt.Types.intersection_reference_id(),
  signalGroup: non_neg_integer(),
  userClass: non_neg_integer(),
  connectionID: non_neg_integer()
}
Link to this type

crosswalk_lane_attribute()

View Source
crosswalk_lane_attribute() ::
  :crosswalkRevocableLane
  | :bicyleUseAllowed
  | :isXwalkFlyOverLane
  | :fixedCycleTime
  | :biDirectionalCycleTimes
  | :hasPushToWalkButton
  | :audioSupport
  | :rfSignalRequestPresent
  | :unsignalizedSegmentsPresent
Link to this type

data_parameters()

View Source
data_parameters() :: %{
  processMethod: String.t(),
  processAgency: String.t(),
  lastCheckedDate: String.t(),
  geoidUsed: String.t()
}
Link to this type

directional_use()

View Source
directional_use() :: :ingressPath | :egressPath
Link to this type

generic_lane()

View Source
generic_lane() :: %{
  laneID: non_neg_integer(),
  name: String.t(),
  ingressApproach: non_neg_integer(),
  egressApproach: non_neg_integer(),
  laneAttributes: lane_attributes(),
  maneuvers: maneuver(),
  nodeList: Kitt.Types.node_list_xy(),
  connectsTo: [connection()],
  overlays: [non_neg_integer()],
  regional: [Kitt.Types.regional_extension()]
}
Link to this type

intersection_geometry()

View Source
intersection_geometry() :: %{
  name: String.t(),
  id: Kitt.Types.intersection_reference_id(),
  revision: non_neg_integer(),
  refPoint: Kitt.Types.position_3d(),
  laneWidth: non_neg_integer(),
  speedLimits: [Kitt.Types.regulatory_speed_limit()],
  laneSet: [generic_lane()],
  preemptPriorityData: [signal_control_zone()],
  regional: [Kitt.Types.regional_extension()]
}
Link to this type

lane_attribute_type()

View Source
lane_attribute_type() ::
  {:vehicle, vehicle_lane_attribute()}
  | {:crosswalk, crosswalk_lane_attribute()}
  | {:bikeLane, bike_lane_attribute()}
  | {:sidewalk, sidewalk_lane_attribute()}
  | {:median, median_lane_attribute()}
  | {:striping, striping_lane_attribute()}
  | {:trackedVehicle, tracked_vehicle_attribute()}
  | {:parking, parking_lane_attribute()}
Link to this type

lane_attributes()

View Source
lane_attributes() :: %{
  directionalUse: directional_use(),
  sharedWith: shared_with(),
  laneType: lane_attribute_type(),
  regional: [Kitt.Types.regional_extension()]
}
Link to this type

maneuver()

View Source
maneuver() ::
  :maneuverStraightAllowed
  | :maneuverLeftAllowed
  | :maneuverRightAllowed
  | :maneuverUTurnAllowed
  | :maneuverLeftTurnOnRedAllowed
  | :maneuverRightTurnOnRedAllowed
  | :maneuverLaneChangeAllowed
  | :maneuverNoStoppingAllowed
  | :yieldAllwaysRequired
  | :goWithHalt
  | :caution
  | :reserved1
Link to this type

median_lane_attribute()

View Source
median_lane_attribute() ::
  :"median-RevocableLane"
  | :median
  | :whiteLineHashing
  | :stripedLines
  | :doubleStripedLines
  | :trafficCones
  | :constructionBarrier
  | :trafficChannels
  | :lowCurbs
  | :highCurbs
Link to this type

parking_lane_attribute()

View Source
parking_lane_attribute() ::
  :parkingRevocableLane
  | :parallelParkingInUse
  | :headInParkingInUse
  | :doNotParkZone
  | :parkingForBusUse
  | :parkingForTaxiUse
  | :noPublicParkingUse
Link to this type

restriction_applies_to()

View Source
restriction_applies_to() ::
  :none
  | :equippedTransit
  | :equippedTaxis
  | :equippedOther
  | :emissionCompliant
  | :equippedBicycle
  | :weightCompliant
  | :heightCompliant
  | :pedestrians
  | :slowMovingPersons
  | :wheelchairUsers
  | :visualDisabilities
  | :audioDisabilities
  | :otherUnknownDisabilities
Link to this type

restriction_class_assignment()

View Source
restriction_class_assignment() :: %{
  id: non_neg_integer(),
  users: [restriction_user_type()]
}
Link to this type

restriction_user_type()

View Source
restriction_user_type() ::
  {:basicType, restriction_applies_to()}
  | {:regional, [Kitt.Types.regional_extension()]}
Link to this type

road_segment()

View Source
road_segment() :: %{
  name: String.t(),
  id: Kitt.Types.road_segment_reference_id(),
  refPoint: Kitt.Types.position_3d(),
  laneWidth: non_neg_integer(),
  speedLimits: [Kitt.Types.regulatory_speed_limit()],
  roadLaneSet: [generic_lane()],
  regional: [Kitt.Types.regional_extension()]
}
Link to this type

shared_with()

View Source
shared_with() ::
  :overlappingLaneDescriptionProvided
  | :multipleLanesTreatedAsOneLane
  | :otherNonMotorizedTrafficTypes
  | :individualMotorizedVehicleTraffic
  | :busVehicleTraffic
  | :taxiVehicleTraffic
  | :pedestriansTraffic
  | :cyclistVehicleTraffic
  | :trackedVehicleTraffic
  | :pedestrianTraffic
Link to this type

sidewalk_lane_attribute()

View Source
sidewalk_lane_attribute() ::
  :"sidewalk-RevocableLane"
  | :bicyleUseAllowed
  | :isSidewalkFlyOverLane
  | :walkBikes
Link to this type

signal_control_zone()

View Source
signal_control_zone() :: %{zone: Kitt.Types.regional_extension()}
Link to this type

striping_lane_attribute()

View Source
striping_lane_attribute() ::
  :stripeToConnectingLanesRevocableLane
  | :stripeDrawOnLeft
  | :stripeDrawOnRight
  | :stripeToConnectingLanesLeft
  | :stripeToConnectingLanesRight
  | :stripeToConnectingLanesAhead
Link to this type

t()

View Source
t() :: %Kitt.Message.MAP{
  dataParameters: data_parameters(),
  intersections: [intersection_geometry()],
  layerID: non_neg_integer(),
  layerType:
    :none
    | :mixedContent
    | :generalMapData
    | :intersectionData
    | :curveData
    | :roadwaySectionData
    | :parkingAreaData
    | :sharedLaneData,
  msgIssueRevision: non_neg_integer(),
  regional: [Kitt.Types.regional_extension()],
  restrictionList: [restriction_class_assignment()],
  roadSegments: [road_segment()],
  timeStamp: Kitt.Types.minute_of_year()
}

Defines the MapData message and the data elements comprising its fields

Link to this type

tracked_vehicle_attribute()

View Source
tracked_vehicle_attribute() ::
  :"spec-RevocableLane"
  | :"spec-commuterRailRoadTrack"
  | :"spec-lightRailRoadTrack"
  | :"spec-heavyRailRoadTrack"
  | :"spec-otherRailType"
Link to this type

vehicle_lane_attribute()

View Source
vehicle_lane_attribute() ::
  :isVehicleRevocableLane
  | :isVehicleFlyOverLane
  | :hovLaneUseOnly
  | :restrictedToBusUse
  | :restrictedToTaxiUse
  | :restrictedFromPublicUse
  | :hasIRbeaconCoverage
  | :permissionOnRequest

Link to this section Functions

Produces a MAP message struct from an equivalent map or keyword input

Returns the MAP identifying atom recognized by the ASN1 spec

Returns the MAP identifying integer