abstreet/rustdoc/map_model/index.html

104 lines
29 KiB
HTML
Raw Normal View History

<!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></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></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></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></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></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></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></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.60.0 (7737e0b5c 2022-04-04)" ></div>
</body></html>