我試圖用一種算法來計算世界瓷磚的位點發現here朗/緯度到世界瓷磚:Y值始終爲NaN
我的問題:當我運行一個有效的長期功能,經緯度座標y值始終爲NAN。出了什麼問題?
長,拉特座標是:-33.752000f,151.239000f這是在澳大利亞的有效位置。
你知道怎麼回事嗎?
static public Vector2 WorldToTilePos(double lon, double lat, int zoom)
{
Vector2 p = new Vector2();
p.x = (float)((lon + 180.0)/360.0 * (1 << zoom));
p.y = (float)((1.0 - Math.Log(Math.Tan(lat * Math.PI/180.0) +
1.0/Math.Cos(lat * Math.PI/180.0))/Math.PI)/2.0 * (1 << zoom));
Debug.Log (String.Format ("p.y: {0}, lat: {1}", p.y, lat));
// Always outputs: "p.y: NaN, lat: 151.238998413086"
return p;
}
// Usuage
Vector2 pos = WorldToTilePos(-33.752000f, 151.239000f, 18);
'Math.Log'正在調用一個負數,它給你'NaN'。 –