Welcome仪器计量检测中心

Customer_Hot_Line

13005488404

location: nav1> 开封仪器计>北碚仪器校

北碚仪器校正报告

author:仪器计量检测中心

【font_size: big medium smail

time:2019-12-04 08:05:03

本文由仪器计量检测中心提供,重点介绍了北碚仪器校正报告相关内容。仪器计量检测中心专业提供开封仪器计量报告,开封仪器计量单位,开封仪器计量公司等多项产品服务。公司产品服务因高质量,低价格等优势,获得行业内一致认可,获得了客户的一致好评。

北碚仪器校正报告我们通常使用电子地图(范围限于国内)存在偏移,当然我们普通用户一般是没有感受的,对这个有体会的通常是相关的从业人员,主要是从事GIS开发的。百度地图最近发布了对国测局坐标系的转换支持,坐标系的解释直接套用百度地图发出的邮件内容:我们常说的坐标系有哪些?

WGS84:表示GPS获取的坐标。

GCJ02:又称火星坐标系,是由中国国家测绘局制定的地理坐标系统,是由WGS84加密后得到的坐标系。

BD09:为百度坐标系,在GCJ02坐标系基础上再次加密。其中bd09ll表示百度经纬度坐标,bd09mc表示百度墨卡托米制坐标。

所谓加密,就是经过一套算法计算,将我们通过设备测量得到的经纬度坐标转换为非真实的经纬度坐标。作为电子地图开发,最头疼的就是坐标转换了,而百度还单独搞了一套,所以有很多开发者就把百度地图抛弃了。百度地图增加坐标系转换的目的应是针对使用百度地图外的地图开发者,方便使用其他地图的开发者也开发百度地图。

对于坐标偏差的概念,我们找个原始坐标点【106.5735213,29.5602306】来举例,该点位于重庆市解放碑。如果想在google地图、高德地图、腾讯地图上将该点显示到正确的位置,要先进行转换,得到转换之后的坐标值【106.5772115,29.5573471】,然后调用地图接口显示。

腾讯地图显示结果高德地图显示结果但是百度地图呢 通过百度地图的转换接口,可以得到转换结果【106。5836766,29。5635577】(这个结果多次调用百度API会有不同,但是差值很小)。通过距离公式计算,和前面的转换结果对比发现,这两个结果的距离相差接近1公里。JS计算距离的代码如下:

function getDist(lat1, lng1, lat2, lng2) {

var radLat1 = lat1 * Math.PI / 180.0;

var radLat2 = lat2 * Math.PI / 180.0;

var a = radLat1 - radLat2;

var b = lng1 * Math。PI / 180。0 - lng2 * Math。PI / 180。0;

var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));

s = s * 6378.137;北碚仪器校正报告

s = Math。round(s * 10000) / 10000;北碚仪器校正报告

return s

};

就此得到了3个坐标,位置之间的差异如下图(百度API的点放的是跳动的点,截图的时候跳起来了):

看起来坐标转换就是地图平移,但是实际上这个平移并不是线性的。

坐标反转换 我们得到的坐标要想正确的在地图上显示需要转为地图对应的坐标,那么我们需要给定位设备提供参考坐标使用的时候,我们从地图上获取坐标也就需要从地图坐标转为真实的经纬度才能使用。但是这个所谓的加密算法有个特点,就是算法不可逆,你知道他怎么算的也推导不出反解的公式。既然叫加密,没有地图服务商会提供逆转换的方法。但是这个并不是问题,可以通过二分查找法推导,因为经纬度是两个维度的计算,所以计算也不是那么容易。由于经纬度值每变化0.00001,对应距离变化也才1米多点,所以只要计算出可接受的误差范围就可以了,一般推荐保留小数后6位或者7位。

由于二分查找法不能确定计算次数,因此就需要一个稳定的算法。这个算法的大概在提问中进行了描述,最终的算法还是略有差异,与实际点的误差很小。方法一就是该算法的结果,方法二就是二分查找法计算的结果,当然这个二分也是略作优化的。百度地图标记出来如下:

demo链接:

链接: 密码: suad

红利福彩 百万福彩 幸运飞艇官网 丰大福彩 千发福彩 幸运飞艇官网 幸运飞艇注册 盛世福彩 幸运飞艇官网 玖富福彩