gpt4 book ai didi

java - 从 X 和 Y 坐标获取经纬度

转载 作者:行者123 更新时间:2023-11-30 17:47:27 27 4
gpt4 key购买 nike

好像经纬度转XY坐标的知识很丰富,反之则不行。

这是我的一个基于 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(对于洛杉矶),而在这种情况下,pv.y 将是 -118。不过,我很难扭转这个等式。有什么想法吗?

最佳答案

好的,根据维基百科的数学,我成功地扭转了等式

  // find latitude from Y coord
// height / 2 to make middle of map ZERO, *-1 to flip it, so south of equator is negative.
// divide by FACTOR to make it fit within bounds of larger map
float reMapY = ((mouseY - (height/2))*-1)/FACTOR;
println(degrees(reMapY));

// I have no idea what I'm doing
float temp = sqrt((pow(PI,2)/3 - pow(reMapY,2)));
float reMapX = (mouseX - (width/2))/FACTOR;
float temp2 = ((reMapX / temp) * TWO_PI) / 3;
println(degrees(temp2));

请记住,由于我的 map 大小,FACTOR 是我设计中固有的东西。我相信它应该是 width = 5.47 * FACTOR。

关于java - 从 X 和 Y 坐标获取经纬度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19849854/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com