我使用了here中的一些代码,将纬度转换为“南极米”。
两个单位测试将转换纬度-90,结果为零,并转换纬度90,这应该将子午线的长度从南极返回到北极。
问题是公式的这一部分:
from math import *
my = log(tan((90 + lat) * pi/360.0)) / (pi/180.0)
因为当我输入-90的纬度时,我得到:
ValueError: math domain error
我想这与tan函数有关,因为它在pi/2
另一方面,如果我们“测量距离南极的距离”,我觉得它应该归零。
所以问题是:我应该如何以理智的方式修复这个公式?
我确定这可能是一个常见的问题,但我从未遇到过这样的问题而且我不确定应该做些什么。
更新:这解决了我当前的问题,但我想知道是否有更美好的方式:
a = tan((90 + self._lat) * pi/360.0)
b = 0 if a == 0 else log(a)
c = b / (pi/180.0)
my = (c * ORIGIN_SHIFT) /180.0