メルカトル投影図法を JPEG として持っています。指定された x、y 座標を緯度と経度に関連付ける方法を知りたいです。グデルマン関数を見てきましたが、正直なところ、その関数を取得して適用する方法がわかりません。つまり、どのような入力が期待されているのでしょうか? 私が見つけた実装 (JavaScript) は、-PI と PI の間の範囲を取るようですが、ピクセル単位の y 値とその範囲の相関関係は何ですか?
また、緯度を取得して Google マップのタイルを返すこの関数も見つけました。これもメルカトルを使用しています。この関数を逆にする方法を知っていれば、答えにかなり近づいているように思われます。
/*<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);
}