2012年11月1日木曜日

メルカトル図法でypixelと緯度との関係

メルカトル図法で、1Ypixelの角度は固定ではない。
苦労したが、下の数式で計算できた。
static double latitudeToPixelY(double latitude, byte zoom) {
    double sinLatitude = Math.sin(latitude * (Math.PI / 180));
    return (0.5 - Math.log((1 + sinLatitude) / (1 - sinLatitude)) / (4 * Math.PI))
        * 地図全体のPixel数);
  }
static double pixelYToLatitude(double pixelY, byte zoom) {
    double y = 0.5 - (pixelY / (地図全体のPixel数));
    return 90 - 360 * Math.atan(Math.exp(-y * (2 * Math.PI))) / Math.PI;
  }


0 件のコメント: