MTMath

object MTMath

Pure math helpers for geographic calculations, projections, and tile indices.

Properties

Circumference of the Earth in meters.

const val EARTH_RADIUS: Double = 6378137.0

Radius of the Earth in meters.

const val MAX_SAFE_LATITUDE: Double = 85.05112877980659

Maximum latitude used for Web Mercator calculations to prevent infinity.

Functions

Calculates the Earth's circumference at a given latitude in meters.

Calculates the total cumulated distance of a route made of multiple WGS84 coordinates.

Calculates the great-circle distance between two WGS84 coordinates using the Haversine formula.

Computes an intermediate point between two WGS84 coordinates using the Haversine formula.

Converts a latitude to Web Mercator Y coordinate in meters.

fun latitudeToTileY(latitude: Double, zoom: Double, round: Boolean = true): Double

Calculates the Web Mercator tile Y coordinate (XYZ scheme) for a given latitude and zoom level.

Converts a longitude to Web Mercator X coordinate in meters.

fun longitudeToTileX(longitude: Double, zoom: Double, round: Boolean = true): Double

Calculates the Web Mercator tile X coordinate for a given longitude and zoom level.

Converts a Web Mercator (X, Y) in meters to WGS84 coordinate.

Converts a Web Mercator X coordinate in meters to longitude.

Converts a Web Mercator Y coordinate in meters to latitude.

fun toDegrees(radians: Double): Double

Converts radians to degrees.

fun toRadians(degrees: Double): Double

Converts degrees to radians.

Converts a WGS84 coordinate to Web Mercator (X, Y) in meters.

fun wgs84ToTileIndex(coordinate: LngLat, zoom: Double, round: Boolean = true): Pair<Double, Double>

Converts a WGS84 coordinate to Web Mercator tile indices.

fun wrapLongitude(longitude: Double): Double

Wraps a longitude value to be within the [-180, 180] range.