UserGeometry

constructor(location: LngLatAlt = LngLatAlt(), phoneHeading: Double? = null, fovDistance: Double = 50.0, speed: Double = 0.0, mapMatchedWay: Way? = null, mapMatchedLocation: PointAndDistanceAndHeading? = null, currentBeacon: LngLatAlt? = null, ruler: Ruler = CheapRuler(location.latitude), timestampMilliseconds: Long = 0, headingMode: UserGeometry.HeadingMode = HeadingMode.CourseAuto, travelHeading: Double? = null, headHeading: Double? = null, inStreetPreview: Boolean = false)

Parameters

location

is the current location of the user from the location provider

phoneHeading

is the direction in which the phone is pointing

travelHeading

is the direction in which the phone is moving

headHeading

is the direction in which the head tracking is pointing (not currently implemented)

fovDistance

is the distance in which the user can see, used when searching for POI

speed

is the speed of the user (currently straight from the location provider)

mapMatchedWay

is the Way that has been map matched to the location

mapMatchedLocation

os the location that has been map matched to the location, it will be a point on the mapMatchedWay

currentBeacon

is the location of any current audio beacon. This affects various callouts which is why it's a property of the UserGeometry class.

headingMode

is the method used to calculate the heading

inStreetPreview

is true if the user is in StreetPreview mode

The heading prioritization comes from iOS - see https://github.com/Scottish-Tech-Army/Soundscape-Android/issues/364

collection - used for calculating callouts, two possibilities: course (travel), user (head), device (phone), or user (head), device (phone), course (travel)

presentation - user for audio positioning: user (head), course (travel), device (phone)