Uber H3中_geoToHex2d函数参数r含义及公式来源问询
关于H3中_geoToHex2d()函数的公式与参数r的解析
参数r的定义
r是单位球面上二十面体面中心到待编码点的大圆弧距离(即球面两点间的最短路径长度),并非正射投影平面中的距离。H3的网格构建基于球面,这一步计算是在球面坐标系下完成的,后续才会将球面点投影到对应二十面体的面内平面,转换为六边形坐标。公式的推导与来源
这个公式是三角恒等式结合球面弦长公式推导而来:- 基础三角二倍角恒等式:
cos(r) = 1 - 2sin²(r/2),这是三角函数的标准变形,用于将余弦值转换为半角的正弦平方形式。 - 单位球面弦长平方与r的关系:单位球面上两点的弦长为
2sin(r/2),因此弦长平方sqd = (2sin(r/2))² = 4sin²(r/2),变形可得sin²(r/2) = sqd/4。 - 将第二步结果代入第一步的恒等式,最终得到
cos(r) = 1 - 2*(sqd/4) = 1 - sqd/2。
- 基础三角二倍角恒等式:
r<epsilon时设为(0,0)的逻辑
当r(球面大圆弧距离)足够小(小于epsilon)时,说明待编码点极接近二十面体面的中心,此时投影到平面后的坐标可近似为原点(0,0),这是为避免计算误差做的简化处理。
内容的提问来源于stack exchange,提问作者steel
相关产品推荐
相关产品推荐

