pub struct Building {Show 13 fields
pub id: BuildingID,
pub polygon: Polygon,
pub levels: f64,
pub address: String,
pub name: Option<NamePerLanguage>,
pub orig_id: OsmID,
pub label_center: Pt2D,
pub amenities: Vec<Amenity>,
pub bldg_type: BuildingType,
pub parking: OffstreetParking,
pub osm_tags: Tags,
pub sidewalk_pos: Position,
pub driveway_geom: PolyLine,
}
Expand description
A building has connections to the road and sidewalk, may contain commercial amenities, and have off-street parking.
Fields§
§id: BuildingID
§polygon: Polygon
§levels: f64
§address: String
§name: Option<NamePerLanguage>
§orig_id: OsmID
§label_center: Pt2D
Where a text label should be centered to have the best chances of being contained within the polygon.
amenities: Vec<Amenity>
§bldg_type: BuildingType
§parking: OffstreetParking
Depending on options while importing, these might be empty, to save file space.
sidewalk_pos: Position
The building’s connection for any agent can change based on map edits. Just store the one for pedestrians and lazily calculate the others.
driveway_geom: PolyLine
Goes from building to sidewalk
Implementations§
source§impl Building
impl Building
pub fn sidewalk(&self) -> LaneID
sourcepub fn driving_connection(&self, map: &Map) -> Option<(Position, PolyLine)>
pub fn driving_connection(&self, map: &Map) -> Option<(Position, PolyLine)>
The polyline goes from the building to the driving position
sourcepub fn biking_connection(&self, map: &Map) -> Option<(Position, Position)>
pub fn biking_connection(&self, map: &Map) -> Option<(Position, Position)>
Returns (biking position, sidewalk position). Could fail if the biking graph is disconnected.
pub fn num_parking_spots(&self) -> usize
sourcepub fn has_amenity(&self, category: AmenityType) -> bool
pub fn has_amenity(&self, category: AmenityType) -> bool
Does this building contain any amenity matching the category?
Trait Implementations§
source§impl<'de> Deserialize<'de> for Building
impl<'de> Deserialize<'de> for Building
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for Building
impl RefUnwindSafe for Building
impl Send for Building
impl Sync for Building
impl Unpin for Building
impl UnwindSafe for Building
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more