似乎有很多关于从经度和纬度转换为 X 和 Y 坐标的知识,但反之则不然。
这是我的一个基于 Kavrayskiy 数学的函数
float xp = kavraX(radians(pv.x), radians(pv.y))*FACTOR;
float yp = kavraY(radians(pv.x), radians(pv.y))*FACTOR;
// mapping -- this gives you screen X and Y coords from LAT and LONG
float kavraX (float latitude, float longitude) // Kavra for Kavrayskiy
// formula from http://en.wikipedia.org/wiki/Kavrayskiy_VII_projection
{
return ((3 * longitude) / TWO_PI)*sqrt(pow(PI, 2)/3 - pow(latitude, 2));
}
float kavraY (float latitude, float longitude)
{
return latitude*-1;
}
在这种情况下,pv.x 可能只是 34(对于 LA),在这种情况下,pv.y 将是 -118。不过,我很难扭转这个等式。有任何想法吗?