Exemple #1
0
    /// <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);
    }
Exemple #2
0
 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);
 }