Voting helps other researchers find interesting modules.
A crossing describes a path from the end point of a segment to the start point of its sibling. Each individual crossing should uniquely represent a physically distinct crossing in the real world. Pedestrian crossings are bidirectional. This proto represents "simple" crossings. More complicated crossings (such as the diagonal crosswalk at Shibuya Station in Tokyo) will be represented using a separate pedestrian network. Example 1: Standard four way crossing. Assume each road (A/B/C) has a crosswalk (denoted by a '-') right before intersection X. Assume crossing at D is prohibited (denoted by a '%'). Assume "prime" roads (A',B',...) are OUT segments relative to X. A\A' B//B' \ // \ // - - X - % // \ // \ C'//C D'\D A CROSSABLE PedestrianCrossing should be added to A, B and C. An UNCROSSABLE PedestrianCrossing should be added to D. Example 2: Simple intersection with one crossing. Assume intersection X was added to accommodate the crosswalk (through X, denoted by '-'). Assume "prime" roads (A',B',...) are OUT segments relative to X. A\A' \ \ -X- \ \ B'\B * A CROSSABLE PedestrianCrossing must be added to either A or B, but not both because each real-world crossing should be represented exactly once. Duplicative crossings may be arbitrarily removed.
angleDegrees
float()
nil
crossAnywhere
boolean()
crossingType
String.t
offset
number()
restriction
list(GoogleApi.ContentWarehouse.V1.Model.GeostoreRestrictionProto.t)
width
Unwrap a decoded JSON object into its complex fields.
@type t() :: %GoogleApi.ContentWarehouse.V1.Model.GeostorePedestrianCrossingProto{ angleDegrees: float() | nil, crossAnywhere: boolean() | nil, crossingType: String.t() | nil, offset: number() | nil, restriction: [GoogleApi.ContentWarehouse.V1.Model.GeostoreRestrictionProto.t()] | nil, width: number() | nil }
@spec decode(struct(), keyword()) :: struct()