UserGeometry

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

UserGeometry contains all of the data relating to the location and motion of the user. It's aim is to reduces the number of arguments to many of the API calls and to concentrate some of the logic around heading choice.

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)

Constructors

Link copied to clipboard
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)

Types

Link copied to clipboard

Properties

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
val mapMatchedWay: Way? = null
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
val speed: Double = 0.0
Link copied to clipboard

Functions

Link copied to clipboard

getTriggerRange returns the distance if a POI is still in proximity after a callout

Link copied to clipboard

getSearchDistance returns the distance to use when searching for POIs

Link copied to clipboard
Link copied to clipboard
fun getTriggerRange(category: String): Double

getTriggerRange returns the distance to use when detecting POIs to call out

Link copied to clipboard
fun heading(): Double?
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard