墨卡托投影
//度数转换为弧度
fun degreesToRadians(degrees: Float): Double {
return (degrees * Math.PI) / 180
}
//x = R(longitude1-180) y = R*log[tan(PI/4 + latitude/2)] longitude1是以弧度为单位
//将经纬度转换为2d地图以左上角为圆点的坐标,北纬为正南纬为负,东经为正,西经为负
fun latLonToOffsets(latitude: Float, longitude: Float, mapWidth: Int, mapHeight: Int): Point {
var radius = mapWidth / (2 * Math.PI)
var FE = 180 // false easting
var lonRad = degreesToRadians(longitude + FE);
var x = lonRad * radius
var latRad = degreesToRadians(latitude)
var verticalOffsetFromEquator =
radius * Math.log(Math.tan(Math.PI / 4 + latRad / 2))
var y = mapHeight / 2 - verticalOffsetFromEquator
return Point(x.toInt(), y.toInt())
}