GPS经纬度纠偏转换-WGS84、GCJ02、BD09

GPS经纬度纠偏转换

WGS84坐标系:即地球坐标系,国际上通用的坐标系。设备一般包含GPS芯片或者北斗芯片获取的经纬度为WGS84地理坐标系。

谷歌地图采用的是WGS84地理坐标系(中国范围除外);

GCJ02坐标系:即火星坐标系,是由中国国家测绘局制订的地理信息系统的坐标系统。由WGS84坐标系经加密后的坐标系。

谷歌中国地图、高德地图、腾讯地图采用的是GCJ02地理坐标系;

BD09坐标系:百度地图使用坐标系,GCJ02坐标系经加密后的坐标系;

​ 有时候会需要用到真实经纬度,所以上网找了一下相关的资料,发现大多是用JAVA写的,就改了一下使用C#将其实现并加以修改。GPS经纬度纠偏转换-WGS84、GCJ02、BD09_第1张图片

具体可以将WGS84、GCJ02、BD09三种坐标系进行转换并显示小数点后八位。大部分是经纬度转换计算的代码确实看不懂。以下只有一些小知识点,源码在最后。

Math.sqrt(double a)

返回正确舍入的一个double值的正平方根。特殊情况:

  • 如果参数是NaN或小于为零,那么结果是NaN.
  • 如果参数是正无穷大,那么结果为正无穷大.
  • 如果参数是正零或负零,那么结果是一样的参数.

否则,其结果是最接近真正的数学平方根的参数值的double值。

Math.sin() 与 Math.cos() 用法

Math.sin(x) x 的正玄值。返回值在 -1.0 到 1.0 之间;

Math.cos(x) x 的余弦值。返回的是 -1.0 到 1.0 之间的数;

这两个函数中的 X 都是指的“弧度”而非“角度”,弧度的计算公式为: 2PI/360角度;

30° 角度 的弧度 = 2PI/36030

如何得到圆上每个点的坐标?

解决思路:根据三角形的正玄、余弦来得值; 假设一个圆的圆心坐标是(a,b),半径为 r, 则圆上每个点的X 坐标=a + Math.sin(2Math.PI / 360) * r ;Y 坐标=b + Math.cos(2Math.PI )

java 中的instanceof 运算符

用来在运行时指出对象是否是特定类的一个实例。instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。
用法:
result = object instanceof class
参数:
Result:布尔类型。
Object:必选项。任意对象表达式。
Class:必选项。任意已定义的对象类。
说明:
如果 object 是 class 的一个实例,则 instanceof 运算符返回 true。如果 object 不是指定类的一个实例,或者 object 是 null,则返回 false。

C# is与 java instanceof 作用相同

java函数中math.abs(x)

该方法返回x的绝对值,x的取值可以是各种类型参数。
Math.abs(x)=|x|;如果参数是非负数,则返回该参数。如果参数是负数,则返回该参数的相反数。
特殊情况是:
如果参数是正零或负零,那么结果是正零。
如果参数是无穷大,那么结果是正无穷大。
如果参数是 NaN,那么结果就是 NaN。

JavaScript atan2() 方法

指定一个坐标(x,y),坐标值(4,8),使用 atan2() 方法计算坐标与 X 轴之间的角度的弧度 ,如下实例:

Math.atan2(8,4);

以上实例输出:

1.1071487177940904

atan2() 返回从原点(0,0) 到 (x,y) 点的线段与 x 轴正方向之间的平面角度(弧度值),也就是 Math.atan2(y,x)

注意: atan2()有两个参数, y 坐标是作为第一个参数传递, x 坐标作为第二个参数传递。

C#保留小数点后几位

​ String.Format("{0:N1}", a) 保留小数点后一位

​ String.Format("{0:N2}", a) 保留小数点后两位

​ String.Format("{0:N3}", a) 保留小数点后三位

C#保留小数位N位四舍五入

  1. double s=0.55555;
  2. result=s.ToString("#0.00");//点后面几个0就保留几位

C#保留小数位N位四舍五入

  1. double dbdata = 0.55555;
  2. string str1 = dbdata.ToString(“f2”);//fN 保留N位,四舍五入

由于本人也是初学者, 个人能力浅薄、经验欠缺,言辞、代码若有不妥以至纰漏处,欢迎批评指正!(使用VS2019开发)

源码链接:https://download.csdn.net/download/qq_41661878/12692429

地图坐标系在线转换工具: https://tool.lu/coordinate/

参考链接:

https://blog.csdn.net/Horsdy123/article/details/53227987

https://blog.csdn.net/jlh912008548/article/details/73838735

https://my.oschina.net/Thinkeryjgfn/blog/402565#comments

你可能感兴趣的:(C#,初学,上位机开发,gps,c#,wgs,gcj,百度)