Package-level declarations
Types
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.
Properties
The default tile server is the one out in the cloud where the tile JSON is at: https://server/protomaps.json
The zoom level and grid size are constant. When using soundscape-backend these will be 16 and 3, but if we switch to using protobuf tiles they will be 15 and 2.
Functions
We're going to round metric as documented for iOS: For metric units, we round all distances less than 1000 meters to the nearest 5 meters and all distances over 1000 meters to the nearest 50 meters.
getNameForFeature returns text describing the feature for callouts. Usually it returns a name or if it doesn't have one then a localized description of the type of feature it is e.g. bike parking, or style. Some types of Feature have more info e.g. bus stops and railway stations
Reverse geocodes a location into 1 of 4 possible states