坐标系转换工具V1.66,支持WGS84、GCJ02、BD09三种坐标系的相互转换。
支持单点转换和批量转换功能
单点转换格式:点名,经度(度),纬度(度)
批量转换格式:每行一个点,格式为:点名.经度.纬度(逗号分隔)
支持WGS84到GCJ02,GCJ02到WGS84,BD09到GCJ02转换
软件算法迭代次数高精度高,界面简洁,操作简单,转换结果实时显示
支持Windows系统,无需安装,即点即用
1. 部分代码: /// BD09转WGS84 - 组合转换
/// </summary>
public static (double lon, double lat) BD09ToWGS84(double lon, double lat)
{
var gcj = BD09ToGCJ02(lon, lat);
return GCJ02ToWGS84(gcj.lon, gcj.lat);
}
// 纬度转换辅助函数
private static double TransformLat(double x, double y)
{
double ret = -100.0 + 2.0 * x + 3.0 * y + 0.2 * y * y + 0.1 * x * y + 0.2 * Math.Sqrt(Math.Abs(x));
ret += (20.0 * Math.Sin(6.0 * x * PI) + 20.0 * Math.Sin(2.0 * x * PI)) * 2.0 / 3.0;
ret += (20.0 * Math.Sin(y * PI) + 40.0 * Math.Sin(y / 3.0 * PI)) * 2.0 / 3.0;
ret += (160.0 * Math.Sin(y / 12.0 * PI) + 320 * Math.Sin(y * PI / 30.0)) * 2.0 / 3.0;
return ret;
}
// 经度转换辅助函数
private static double TransformLon(double x, double y)
{
double ret = 300.0 + x + 2.0 * y + 0.1 * x * x + 0.1 * x * y + 0.1 * Math.Sqrt(Math.Abs(x));
ret += (20.0 * Math.Sin(6.0 * x * PI) + 20.0 * Math.Sin(2.0 * x * PI)) * 2.0 / 3.0;
ret += (20.0 * Math.Sin(x * PI) + 40.0 * Math.Sin(x / 3.0 * PI)) * 2.0 / 3.0;
ret += (150.0 * Math.Sin(x / 12.0 * PI) + 300.0 * Math.Sin(x / 30.0 * PI)) * 2.0 / 3.0;
return ret;
}
2.验证无误,经验证,为同一个点,迭代算法的精度在厘米级。