Wie bekomme ich die Breitengrad und Längengrad von x, y auf einer Mercator-Karte (JPEG)?

Habe ich eine Mercator-Projektion Karte als JPEG und ich würde gerne wissen, wie die Beziehung zwischen einer gegebenen x, y-Koordinate zu seiner Breite und Länge. Ich habe die Gudermannian Funktion, aber ich weiß es ehrlich gesagt nicht verstehen, wie man die Funktion und wenden Sie es. Nämlich, welcher Eingang es erwartet? Die Umsetzung fand ich (JavaScript -) scheint ein Bereich zwischen -PI und PI, aber was ist die Korrelation zwischen den y-Wert in Pixel und das Sortiment?

Also, ich fand diese Funktion, die eine Breite und gibt das Feld für die Google Maps, die auch verwendet Mercator. Es scheint, dass, wenn ich wusste, wie man die inverse dieser Funktion, würde ich ziemlich in der Nähe mit meiner Antwort.

/*<summary>Get the vertical tile number from a latitude
using Mercator projection formula</summary>*/

    private int getMercatorLatitude(double lati)
    {
        double maxlat = Math.PI;

        double lat = lati;

        if (lat > 90) lat = lat - 180;
        if (lat < -90) lat = lat + 180;

        //conversion degre=>radians
        double phi = Math.PI * lat /180;

        double res;
        //double temp = Math.Tan(Math.PI /4 - phi /2);
        //res = Math.Log(temp);
        res = 0.5 * Math.Log((1 + Math.Sin(phi)) /(1 - Math.Sin(phi)));
        double maxTileY = Math.Pow(2, zoom);
        int result = (int)(((1 - res /maxlat) /2) * (maxTileY));

        return (result);
    }
  • Wenn ich mich richtig erinnere, verwendet google eine equirectangular Projektion, nicht der mercator.
  • Sowohl Virtual Earth und Google Mercator.
  • Auch die max-nützliche Breite bei Verwendung von Mercator ist nicht +-90 Grad, es ist etwa +-85.05112878 Grad. Der Wert ist unendlich an den Polen, so haben Sie es Mütze und ignorieren den Polen.
  • Um wirklich das problem, Sie müssen auch wissen, die zoom-Stufe bei der Arbeit mit Fliesen.
  • Ich bin ein wenig unklar, auf dieser. Willst du (x, y) -> (lat, long) oder (lat, lang) -> (x,y)?
Schreibe einen Kommentar