擅长:python、mysql、java
<p>谢谢你的尝试!在</p>
<p>不幸的是,我使用了一些旧的算法,所以“正确答案”是一个更简单的函数。在</p>
<pre><code>def melat(lat):
return degrees( log ( tan ( radians( lat / 2 + 45 ) ) ))
def latit(mlt):
return ( degrees(atan ( exp ( radians(mlt) ) )) - 45 ) * 2
def XY2LatLong(x, y):
EQUATOR_MINUTE_LENGTH = 1851.8518519
GeoPoint = namedtuple('GeoPoint', ('lat', 'lon'))
Point = namedtuple('Point', ('x', 'y'))
base = GeoPoint(55.98619572, 11.62113936)
factor = cos( radians(base.lat) ) * EQUATOR_MINUTE_LENGTH * 60.
return GeoPoint(
latit(melat(base.lat) + y / factor),
base.lon + x / factor)
</code></pre>