public:it:location

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
public:it:location [2020/12/29 16:51] – [关于地理位置信息] oakfirepublic:it:location [2024/04/23 14:57] (当前版本) – [关于地理位置信息] oakfire
行 7: 行 7:
   * <del>[[http://bbs.amap.com/thread-18617-1-1.html#rd|如何解决坐标转换,坐标偏移]]</del>   * <del>[[http://bbs.amap.com/thread-18617-1-1.html#rd|如何解决坐标转换,坐标偏移]]</del>
   * [[http://kongxz.com/2013/10/wgs-cgj/|关于流传的转换算法]]   * [[http://kongxz.com/2013/10/wgs-cgj/|关于流传的转换算法]]
 +    * 最早流出的 WGS-84 至 GCJ-02 的转换算法出自 https://on4wp7.codeplex.com/SourceControl/changeset/view/21483。我们看一下它的代码中的一小部分,处理纬度加偏的前半部分:<code javascript>
 +-100.0 + 2.0 * x + 3.0 * y + 0.2 * y * y + 0.1 * x * y + 0.2 * Math.Sqrt(Math.Abs(x)) + (20.0 * Math.Sin(6.0 * x * pi) + 20.0 * Math.Sin(2.0 * x * pi)) * 2.0 / 3.0 + (20.0 * Math.Sin(y * pi) + 40.0 * Math.Sin(y / 3.0 * pi)) * 2.0 / 3.0 + (160.0 * Math.Sin(y / 12.0 * pi) + 320 * Math.Sin(y * pi / 30.0)) * 2.0 / 3.0 </code>
 +    * 这一部分已经体现了 GCJ-02 设计精巧的几点:这是一个很长的多项式,并且是很复杂的多项超越式。于是它难以进行反向运算、难以根据已知数据点反推出计算公式。且就算我们拿到了这个已知的转换算法的公式,要想求出它的反函数是非常困难的,于是如果我们要完成 GCJ-02 到 WGS-84 的逆转换,只能通过二分法来逼近。这个转换算法需要达到的要求是显而易见的:它必须是连续的,并且是单调的。连续才能确保地图不出现断点且覆盖所有区域;单调才能保证原先的位置相互关系转换后依旧成立。
  
  
  • public/it/location.txt
  • 最后更改: 2024/04/23 14:57
  • oakfire