abstreet/rustdoc/map_model/index.html
2022-05-21 16:24:57 +00:00

104 lines
30 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="`map_model` describes the world where simulations occur. Importing a map from OSM partly happens in `convert_osm` and here."><meta name="keywords" content="rust, rustlang, rust-lang, map_model"><title>map_model - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../SourceSerif4-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../FiraSans-Regular.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../FiraSans-Medium.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../SourceCodePro-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../SourceSerif4-Bold.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../SourceCodePro-Semibold.ttf.woff2"><link rel="stylesheet" type="text/css" href="../normalize.css"><link rel="stylesheet" type="text/css" href="../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../ayu.css" disabled><link rel="stylesheet" type="text/css" href="../dark.css" disabled><link rel="stylesheet" type="text/css" href="../light.css" id="themeStyle"><script id="default-settings" ></script><script src="../storage.js"></script><script src="../crates.js"></script><script defer src="../main.js"></script>
<noscript><link rel="stylesheet" href="../noscript.css"></noscript><link rel="alternate icon" type="image/png" href="../favicon-16x16.png"><link rel="alternate icon" type="image/png" href="../favicon-32x32.png"><link rel="icon" type="image/svg+xml" href="../favicon.svg"></head><body class="rustdoc mod crate"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button><a class="sidebar-logo" href="../map_model/index.html"><div class="logo-container"><img class="rust-logo" src="../rust-logo.svg" alt="logo"></div>
</a><h2 class="location"></h2>
</nav>
<nav class="sidebar"><a class="sidebar-logo" href="../map_model/index.html"><div class="logo-container"><img class="rust-logo" src="../rust-logo.svg" alt="logo"></div>
</a><h2 class="location"><a href="#">Crate map_model</a></h2><div class="sidebar-elems"><div class="block"><ul><li class="version">Version 0.1.0</li><li><a id="all-types" href="all.html">All Items</a></li></div></ul><section><div class="block"><ul><li><a href="#modules">Modules</a></li><li><a href="#structs">Structs</a></li><li><a href="#enums">Enums</a></li><li><a href="#constants">Constants</a></li></ul></div></section><div id="sidebar-vars" data-name="map_model" data-ty="mod" data-relpath=""></div><script defer src="sidebar-items.js"></script></div></nav><main><div class="width-limiter"><div class="sub-container"><a class="sub-logo-container" href="../map_model/index.html"><img class="rust-logo" src="../rust-logo.svg" alt="logo"></a><nav class="sub"><div class="theme-picker hidden"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu" title="themes"><img width="22" height="22" alt="Pick another theme!" src="../brush.svg"></button><div id="theme-choices" role="menu"></div></div><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><button type="button" id="help-button" title="help">?</button><a id="settings-menu" href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../wheel.svg"></a></div></form></nav></div><section id="main-content" class="content"><div class="main-heading">
<h1 class="fqn"><span class="in-band">Crate <a class="mod" href="#">map_model</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span></h1><span class="out-of-band"><a class="srclink" href="../src/map_model/lib.rs.html#1-117">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p><code>map_model</code> describes the world where simulations occur. Importing a map from OSM partly happens
in <code>convert_osm</code> and here.</p>
<p>Helpful terminology:</p>
<ul>
<li>ch = contraction hierarchy, for speeding up pathfinding</li>
<li>degenerate intersection = only has 2 roads connected, so why is it an intersection at all?</li>
<li>lc = lane-change (which is modelled very strangely: <a href="https://a-b-street.github.io/docs/tech/trafficsim/discrete_event.html#lane-changing">https://a-b-street.github.io/docs/tech/trafficsim/discrete_event.html#lane-changing</a>)</li>
<li>ltr = left-to-right, the order of lanes for a road</li>
<li>osm = OpenStreetMap</li>
</ul>
<p>Map objects are usually abbreviated in method names:</p>
<ul>
<li>a = area</li>
<li>b = building</li>
<li>tr = transit route</li>
<li>ts = transit stop</li>
<li>i = intersection</li>
<li>l = lane</li>
<li>pl = parking lot</li>
<li>r = road</li>
<li>ss = stop sign</li>
<li>t = turn</li>
<li>ts = traffic signal</li>
</ul>
</div></details><h2 id="reexports" class="small-section-header"><a href="#reexports">Re-exports</a></h2>
<div class="item-table"><div class="item-row"><div class="item-left import-item"><code>pub use <a class="mod" href="../raw_map/index.html" title="mod raw_map">raw_map</a> as raw;</code></div><div class="item-right docblock-short"></div></div></div><h2 id="modules" class="small-section-header"><a href="#modules">Modules</a></h2>
<div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="mod" href="city/index.html" title="map_model::city mod">city</a><span title="Restricted Visibility">&nbsp;🔒</span> </div><div class="item-right docblock-short"></div></div><div class="item-row"><div class="item-left module-item"><a class="mod" href="connectivity/index.html" title="map_model::connectivity mod">connectivity</a></div><div class="item-right docblock-short"></div></div><div class="item-row"><div class="item-left module-item"><a class="mod" href="edits/index.html" title="map_model::edits mod">edits</a><span title="Restricted Visibility">&nbsp;🔒</span> </div><div class="item-right docblock-short"><p>Once a Map exists, the player can edit it in the UI (producing <code>MapEdits</code> in-memory), then save
the changes to a file (as <code>PermanentMapEdits</code>). See
<a href="https://a-b-street.github.io/docs/tech/map/edits.html">https://a-b-street.github.io/docs/tech/map/edits.html</a>.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="mod" href="make/index.html" title="map_model::make mod">make</a><span title="Restricted Visibility">&nbsp;🔒</span> </div><div class="item-right docblock-short"><p>See <a href="https://a-b-street.github.io/docs/tech/map/importing/index.html">https://a-b-street.github.io/docs/tech/map/importing/index.html</a> for an overview. This module
covers the RawMap-&gt;Map stage.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="mod" href="map/index.html" title="map_model::map mod">map</a><span title="Restricted Visibility">&nbsp;🔒</span> </div><div class="item-right docblock-short"><p>A bunch of (mostly read-only) queries on a Map.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="mod" href="objects/index.html" title="map_model::objects mod">objects</a><span title="Restricted Visibility">&nbsp;🔒</span> </div><div class="item-right docblock-short"></div></div><div class="item-row"><div class="item-left module-item"><a class="mod" href="osm/index.html" title="map_model::osm mod">osm</a></div><div class="item-right docblock-short"><p>Useful utilities for working with OpenStreetMap.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="mod" href="pathfind/index.html" title="map_model::pathfind mod">pathfind</a><span title="Restricted Visibility">&nbsp;🔒</span> </div><div class="item-right docblock-short"><p>Everything related to pathfinding through a map for different types of agents.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="mod" href="traversable/index.html" title="map_model::traversable mod">traversable</a><span title="Restricted Visibility">&nbsp;🔒</span> </div><div class="item-right docblock-short"></div></div></div><h2 id="structs" class="small-section-header"><a href="#structs">Structs</a></h2>
<div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.AccessRestrictions.html" title="map_model::AccessRestrictions struct">AccessRestrictions</a></div><div class="item-right docblock-short"></div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Amenity.html" title="map_model::Amenity struct">Amenity</a></div><div class="item-right docblock-short"><p>A business located inside a building.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Area.html" title="map_model::Area struct">Area</a></div><div class="item-right docblock-short"><p>Areas are just used for drawing.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.AreaID.html" title="map_model::AreaID struct">AreaID</a></div><div class="item-right docblock-short"></div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Block.html" title="map_model::Block struct">Block</a></div><div class="item-right docblock-short"><p>A block is defined by a perimeter that traces along the sides of roads. Inside the perimeter,
the block may contain buildings and interior roads. In the simple case, a block represents a
single “city block”, with no interior roads. It may also cover a “neighborhood”, where the
perimeter contains some “major” and the interior consists only of “minor” roads.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Building.html" title="map_model::Building struct">Building</a></div><div class="item-right docblock-short"><p>A building has connections to the road and sidewalk, may contain commercial amenities, and have
off-street parking.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.BuildingID.html" title="map_model::BuildingID struct">BuildingID</a></div><div class="item-right docblock-short"></div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.City.html" title="map_model::City struct">City</a></div><div class="item-right docblock-short"><p>A single city (like Seattle) can be broken down into multiple boundary polygons (udistrict,
ballard, downtown, etc). The load map screen uses this struct to display the entire city.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.CompressedMovementID.html" title="map_model::CompressedMovementID struct">CompressedMovementID</a></div><div class="item-right docblock-short"><p>This is cheaper to store than a MovementID. It simply indexes into the list of movements.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.ControlStopSign.html" title="map_model::ControlStopSign struct">ControlStopSign</a></div><div class="item-right docblock-short"></div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.ControlTrafficSignal.html" title="map_model::ControlTrafficSignal struct">ControlTrafficSignal</a></div><div class="item-right docblock-short"><p>A traffic signal consists of a sequence of Stages that repeat in a cycle. Most Stages last for a
fixed duration. During a single Stage, some movements are protected (can proceed with the
highest priority), while others are permitted (have to yield before proceeding).</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.DirectedRoadID.html" title="map_model::DirectedRoadID struct">DirectedRoadID</a></div><div class="item-right docblock-short"></div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.EditEffects.html" title="map_model::EditEffects struct">EditEffects</a></div><div class="item-right docblock-short"></div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.EditRoad.html" title="map_model::EditRoad struct">EditRoad</a></div><div class="item-right docblock-short"></div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Intersection.html" title="map_model::Intersection struct">Intersection</a></div><div class="item-right docblock-short"><p>An intersection connects roads. Most have &gt;2 roads and are controlled by stop signs or traffic
signals. Roads that lead to the boundary of the map end at border intersections, with only that
one road attached.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.IntersectionCluster.html" title="map_model::IntersectionCluster struct">IntersectionCluster</a></div><div class="item-right docblock-short"><p>This only applies to VehiclePathfinder; walking through these intersections is nothing special.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.IntersectionID.html" title="map_model::IntersectionID struct">IntersectionID</a></div><div class="item-right docblock-short"></div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Lane.html" title="map_model::Lane struct">Lane</a></div><div class="item-right docblock-short"><p>A road segment is broken down into individual lanes, which have a LaneType.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.LaneID.html" title="map_model::LaneID struct">LaneID</a></div><div class="item-right docblock-short"><p>A lane is identified by its parent road and its position, ordered from the left.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.LaneSpec.html" title="map_model::LaneSpec struct">LaneSpec</a></div><div class="item-right docblock-short"></div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Map.html" title="map_model::Map struct">Map</a></div><div class="item-right docblock-short"></div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.MapConfig.html" title="map_model::MapConfig struct">MapConfig</a></div><div class="item-right docblock-short"></div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.MapEdits.html" title="map_model::MapEdits struct">MapEdits</a></div><div class="item-right docblock-short"><p>Represents changes to a map. Note this isnt serializable thats what <code>PermanentMapEdits</code>
does.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Movement.html" title="map_model::Movement struct">Movement</a></div><div class="item-right docblock-short"><p>A Movement groups all turns from one road to another, letting traffic signals and pathfinding
operate at a higher level of abstraction.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.MovementID.html" title="map_model::MovementID struct">MovementID</a></div><div class="item-right docblock-short"><p>A movement is like a turn, but with less detail it identifies a movement from one directed
road to another.
One road usually has 4 crosswalks, each a singleton Movement. We need all of the information
here to keep each crosswalk separate.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.NamePerLanguage.html" title="map_model::NamePerLanguage struct">NamePerLanguage</a></div><div class="item-right docblock-short"><p>None corresponds to the native name</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.ParkingLot.html" title="map_model::ParkingLot struct">ParkingLot</a></div><div class="item-right docblock-short"><p>Parking lots have some fixed capacity for cars, and are connected to a sidewalk and road.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.ParkingLotID.html" title="map_model::ParkingLotID struct">ParkingLotID</a></div><div class="item-right docblock-short"></div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Path.html" title="map_model::Path struct">Path</a></div><div class="item-right docblock-short"></div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.PathRequest.html" title="map_model::PathRequest struct">PathRequest</a></div><div class="item-right docblock-short"></div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.PathV2.html" title="map_model::PathV2 struct">PathV2</a></div><div class="item-right docblock-short"><p>A path between two endpoints for a particular mode. This representation is immutable and doesnt
prescribe specific lanes and turns to follow.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Pathfinder.html" title="map_model::Pathfinder struct">Pathfinder</a></div><div class="item-right docblock-short"></div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.PathfinderCache.html" title="map_model::PathfinderCache struct">PathfinderCache</a></div><div class="item-right docblock-short"><p>For callers needing to request paths with a variety of RoutingParams. The caller is in charge
of the lifetime, so they can clear it out when appropriate.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Perimeter.html" title="map_model::Perimeter struct">Perimeter</a></div><div class="item-right docblock-short"><p>A sequence of roads in order, beginning and ending at the same place. No “crossings” tracing
along this sequence should geometrically yield a simple polygon.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.PermanentMapEdits.html" title="map_model::PermanentMapEdits struct">PermanentMapEdits</a></div><div class="item-right docblock-short"><p>MapEdits are converted to this before serializing. Referencing things like LaneID in a Map wont
work if the basemap is rebuilt from new OSM data, so instead we use stabler OSM IDs thatre less
likely to change.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Position.html" title="map_model::Position struct">Position</a></div><div class="item-right docblock-short"><p>Represents a specific point some distance along a lane.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.RawToMapOptions.html" title="map_model::RawToMapOptions struct">RawToMapOptions</a></div><div class="item-right docblock-short"><p>Options for converting RawMaps to Maps.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Road.html" title="map_model::Road struct">Road</a></div><div class="item-right docblock-short"><p>A Road represents a segment between exactly two Intersections. It contains Lanes as children.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.RoadID.html" title="map_model::RoadID struct">RoadID</a></div><div class="item-right docblock-short"></div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.RoadSideID.html" title="map_model::RoadSideID struct">RoadSideID</a></div><div class="item-right docblock-short"></div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.RoadWithStopSign.html" title="map_model::RoadWithStopSign struct">RoadWithStopSign</a></div><div class="item-right docblock-short"></div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.RoutingParams.html" title="map_model::RoutingParams struct">RoutingParams</a></div><div class="item-right docblock-short"><p>Tuneable parameters for all types of routing.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Stage.html" title="map_model::Stage struct">Stage</a></div><div class="item-right docblock-short"></div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.TransitRoute.html" title="map_model::TransitRoute struct">TransitRoute</a></div><div class="item-right docblock-short"></div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.TransitRouteID.html" title="map_model::TransitRouteID struct">TransitRouteID</a></div><div class="item-right docblock-short"></div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.TransitStop.html" title="map_model::TransitStop struct">TransitStop</a></div><div class="item-right docblock-short"></div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.TransitStopID.html" title="map_model::TransitStopID struct">TransitStopID</a></div><div class="item-right docblock-short"></div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Turn.html" title="map_model::Turn struct">Turn</a></div><div class="item-right docblock-short"><p>A Turn leads from the end of one Lane to the start of another. (Except for pedestrians;
sidewalks are bidirectional.)</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.TurnID.html" title="map_model::TurnID struct">TurnID</a></div><div class="item-right docblock-short"><p>Turns are uniquely identified by their (src, dst) lanes and their parent intersection.
Intersection is needed to distinguish crosswalks that exist at two ends of a sidewalk.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.UberTurn.html" title="map_model::UberTurn struct">UberTurn</a></div><div class="item-right docblock-short"></div></div><div class="item-row"><div class="item-left module-item"><a class="struct" href="struct.Zone.html" title="map_model::Zone struct">Zone</a></div><div class="item-right docblock-short"><p>A contiguous set of roads with access restrictions. This is derived from all the maps roads and
kept cached for performance.</p>
</div></div></div><h2 id="enums" class="small-section-header"><a href="#enums">Enums</a></h2>
<div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.AmenityType.html" title="map_model::AmenityType enum">AmenityType</a></div><div class="item-right docblock-short"><p>Businesses are categorized into one of these types.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.AreaType.html" title="map_model::AreaType enum">AreaType</a></div><div class="item-right docblock-short"></div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.BufferType.html" title="map_model::BufferType enum">BufferType</a></div><div class="item-right docblock-short"></div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.BuildingType.html" title="map_model::BuildingType enum">BuildingType</a></div><div class="item-right docblock-short"></div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.CommonEndpoint.html" title="map_model::CommonEndpoint enum">CommonEndpoint</a></div><div class="item-right docblock-short"></div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.Direction.html" title="map_model::Direction enum">Direction</a></div><div class="item-right docblock-short"></div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.DrivingSide.html" title="map_model::DrivingSide enum">DrivingSide</a></div><div class="item-right docblock-short"></div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.EditCmd.html" title="map_model::EditCmd enum">EditCmd</a></div><div class="item-right docblock-short"></div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.EditIntersection.html" title="map_model::EditIntersection enum">EditIntersection</a></div><div class="item-right docblock-short"></div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.IntersectionType.html" title="map_model::IntersectionType enum">IntersectionType</a></div><div class="item-right docblock-short"></div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.LaneType.html" title="map_model::LaneType enum">LaneType</a></div><div class="item-right docblock-short"></div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.OffstreetParking.html" title="map_model::OffstreetParking enum">OffstreetParking</a></div><div class="item-right docblock-short"><p>Represent no parking as Private(0, false).</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.PathConstraints.html" title="map_model::PathConstraints enum">PathConstraints</a></div><div class="item-right docblock-short"><p>Whos asking for a path?</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.PathStep.html" title="map_model::PathStep enum">PathStep</a></div><div class="item-right docblock-short"></div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.PathStepV2.html" title="map_model::PathStepV2 enum">PathStepV2</a></div><div class="item-right docblock-short"><p>One step along a path.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.PathfinderCaching.html" title="map_model::PathfinderCaching enum">PathfinderCaching</a></div><div class="item-right docblock-short"><p>When pathfinding with different <code>RoutingParams</code> is done, a temporary pathfinder must be
created. This specifies what type of pathfinder and whether to cache it.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.SideOfRoad.html" title="map_model::SideOfRoad enum">SideOfRoad</a></div><div class="item-right docblock-short"><p>See https://wiki.openstreetmap.org/wiki/Forward_%26_backward,<em>left</em>%26_right.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.StageType.html" title="map_model::StageType enum">StageType</a></div><div class="item-right docblock-short"></div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.Traversable.html" title="map_model::Traversable enum">Traversable</a></div><div class="item-right docblock-short"><p>Either a lane or a turn, where most movement happens.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.TurnPriority.html" title="map_model::TurnPriority enum">TurnPriority</a></div><div class="item-right docblock-short"></div></div><div class="item-row"><div class="item-left module-item"><a class="enum" href="enum.TurnType.html" title="map_model::TurnType enum">TurnType</a></div><div class="item-right docblock-short"></div></div></div><h2 id="constants" class="small-section-header"><a href="#constants">Constants</a></h2>
<div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="constant" href="constant.MAX_BIKE_SPEED.html" title="map_model::MAX_BIKE_SPEED constant">MAX_BIKE_SPEED</a></div><div class="item-right docblock-short"></div></div><div class="item-row"><div class="item-left module-item"><a class="constant" href="constant.MAX_WALKING_SPEED.html" title="map_model::MAX_WALKING_SPEED constant">MAX_WALKING_SPEED</a></div><div class="item-right docblock-short"></div></div><div class="item-row"><div class="item-left module-item"><a class="constant" href="constant.NORMAL_LANE_THICKNESS.html" title="map_model::NORMAL_LANE_THICKNESS constant">NORMAL_LANE_THICKNESS</a></div><div class="item-right docblock-short"></div></div><div class="item-row"><div class="item-left module-item"><a class="constant" href="constant.PARKING_LOT_SPOT_LENGTH.html" title="map_model::PARKING_LOT_SPOT_LENGTH constant">PARKING_LOT_SPOT_LENGTH</a></div><div class="item-right docblock-short"><p>From some manually audited cases in Seattle, the length of parallel street parking spots is a
bit different than the length in parking lots, so set a different value here.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="constant" href="constant.SIDEWALK_THICKNESS.html" title="map_model::SIDEWALK_THICKNESS constant">SIDEWALK_THICKNESS</a></div><div class="item-right docblock-short"></div></div></div></section><section id="search" class="content hidden"></section></div></main><div id="rustdoc-vars" data-root-path="../" data-current-crate="map_model" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.61.0 (fe5b13d68 2022-05-18)" ></div>
</body></html>