在谷歌地图中,越接近极点,地图获得的地图越多,地图的每个像素表示移动越少(在北极地区为0)(
)我正在寻找一个公式来将像素的宽度与刻度连接(即地图上由像素表示的真实世界距离)。我在这里有一些数据点用于缩放级别12(IIRC)
Lat Width
0 0.703107352
4.214943141 0.701522096
11.86735091 0.688949038
21.28937436 0.656590105
30.14512718 0.60989762
35.46066995 0.574739011
39.90973623 0.541457085
41.5085773 0.528679228
44.08758503 0.507194173
47.04018214 0.481321842
48.45835188 0.468430215
51.17934298 0.442887842
63.23362741 0.318394373
72.81607372 0.208953319
80.05804956 0.122131316
90 0
这样做的原因是我想输入lat / lng对并精确排序它们相对于0,0
的位置答案 0 :(得分:1)
我可能错了,但你确定这些点是像素高度吗?它们似乎是一个余弦,它的像素宽度不是高度。 在稍微三角测量之后,像素高度调整为公式:
其中R是地球半径,phi是纬度,h是赤道中像素的高度。 这个公式不适应你的观点,这就是为什么我问这是否是宽度。
无论如何,如果你想要如此精确以至于你不能在前面的答案中使用近似值,那么你也应该考虑R变量和纬度,即便如此,我认为你不会得到确切的结果。
<强>更新强>: 然后公式将是余弦。如果你想取地球的可变半径,公式将为:
其中R是地球的半径,d(0)是赤道的像素宽度。您可以将此公式用于R,假设eearth为椭圆体:
a = 6378.1(赤道),b = 6356.8(极点)
答案 1 :(得分:0)
虽然我不确定“像素的高度”是什么意思,但数据图(如下所示)似乎符合等式
y = a + bx + cx^2 + dx^3 where y = height, x = latitude
系数
a = 7.0240278979641990E-01
b = 3.7784208874521786E-04
c = -1.2602864112736206E-04
d = 3.8304225582846095E-07
找到方程的一般方法是首先绘制数据,然后假设函数的类型,然后进行回归以找到系数。