/// <summary> /// Inverse mapping equation to get geographical coordinates from Cartesian coordinates /// </summary> /// <param name="proj">Cartesian coordinates</param> /// <returns>Geographical Coordinates</returns> public static Vector2 ProjectionToGeographic(ProjectedPos proj) { double tilesPerEdge = TilesPerEdge(proj.ZoomLevel); //Mercator Projection: double longitude = (proj.X * (360 / tilesPerEdge)) - 180; double latitude = Mathf.Rad2Deg * (Math.Atan(Math.Sinh((1 - proj.Y * (2 / tilesPerEdge)) * Math.PI))); return new Vector2((float)longitude, (float)latitude); }
public static ProjectedPos Lerp(ProjectedPos from, ProjectedPos to, float t) { Vector2 lerped = Vector2.Lerp(from, to, t); return new ProjectedPos(lerped.x, lerped.y, from.ZoomLevel); }