WGS84坐标系:即地球坐标系,国际上通用的坐标系。设备一般包含GPS芯片或者北斗芯片获取的经纬度为WGS84地理坐标系。
谷歌地图采用的是WGS84地理坐标系(中国范围除外);
GCJ02坐标系:即火星坐标系,是由中国国家测绘局制订的地理信息系统的坐标系统。由WGS84坐标系经加密后的坐标系。
谷歌中国地图、高德地图、腾讯地图采用的是GCJ02地理坐标系;
BD09坐标系:百度地图使用坐标系,GCJ02坐标系经加密后的坐标系;
有时候会需要用到真实经纬度,所以上网找了一下相关的资料,发现大多是用JAVA写的,就改了一下使用C#将其实现并加以修改。
具体可以将WGS84、GCJ02、BD09三种坐标系进行转换并显示小数点后八位。大部分是经纬度转换计算的代码确实看不懂。以下只有一些小知识点,源码在最后。
返回正确舍入的一个double值的正平方根。特殊情况:
否则,其结果是最接近真正的数学平方根的参数值的double值。
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 )
用来在运行时指出对象是否是特定类的一个实例。instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。
用法:
result = object instanceof class
参数:
Result:布尔类型。
Object:必选项。任意对象表达式。
Class:必选项。任意已定义的对象类。
说明:
如果 object 是 class 的一个实例,则 instanceof 运算符返回 true。如果 object 不是指定类的一个实例,或者 object 是 null,则返回 false。
C# is与 java instanceof 作用相同
该方法返回x的绝对值,x的取值可以是各种类型参数。
Math.abs(x)=|x|;如果参数是非负数,则返回该参数。如果参数是负数,则返回该参数的相反数。
特殊情况是:
如果参数是正零或负零,那么结果是正零。
如果参数是无穷大,那么结果是正无穷大。
如果参数是 NaN,那么结果就是 NaN。
指定一个坐标(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 坐标作为第二个参数传递。
String.Format("{0:N1}", a) 保留小数点后一位
String.Format("{0:N2}", a) 保留小数点后两位
String.Format("{0:N3}", a) 保留小数点后三位
C#保留小数位N位四舍五入
C#保留小数位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