定位系统坐标系

时间:2024-04-01 15:10:33

由于项目的原因,博主最近天天围绕着地图转来转去~~~

之前,由于Leaflet其自身的轻便性,博主和很多开发人员一样,偏爱着这个插件。

然而,随着对地图功能需求的提升,以及开发的深入,越到后面,越发现,Leaflet已经不能达到使用需求,且出现了很多问题。这些无解的问题,使得我不得不反思,是不是应该在这个项目上,弃用Leaflet。

在这边总结下项目需求:根据用户使用不同的语言加载不同的地图,如使用英语就加载谷歌地图;如使用中文,则加载高德或者百度地图。而这样,需要用到坐标定位、markers聚合、路径纠偏等等~~~

在之前的项目中,我们采用了:在leaflet的基础上,加载高德和谷歌的底层,勉强能凑合着用。后面由于需求的修改,需要再leaflet的基础上,加载百度地图,这就引发了很多其他问题。

当然,如果你的项目需求仅仅是国内且不允许地图拖动,那么,显然没什么问题。网络上有插件和很多这种文章,可以帮助你解决这种问题:百度地图坐标转换成墨卡托投影坐标Proj4Leaflet API

但是如果显示的范围需要扩大到全球,且允许用户自行拖拽,就会发现一堆问题。

显示不全:
定位系统坐标系
leaflet+高德地图,循环拖拽时,如图:这使得,如果你没有拖回原来的视图,你将无法看到原先可以看到的信息:
定位系统坐标系
这使得我不得不考虑根据不同的应用场景,而调用不同的地图。

而为了解决以上提出的问题,我们需要对定位坐标系统有一些认识:

1.我们常用的坐标系有哪些?

WGS84:大地坐标系,是目前广泛使用的GPS全球卫星定位系统使用的坐标系。

GCJ02:又称火星坐标系,是由中国国家测绘局制定的地理坐标系统,是由WGS84加密后得到的坐标系。是国内最广泛使用的坐标体系,高德、腾讯、Google中国地图都使用它

BD09:为百度坐标系,在GCJ02坐标系基础上再次加密。其中bd09ll表示百度经纬度坐标,bd09mc表示百度墨卡托米制坐标。
定位系统坐标系
2.什么是墨卡托投影(Mercator projection)?

墨卡托投影,也叫做:正轴等角圆柱投影。由荷兰地图学家墨卡托(G.Mercator)于1569年创立。百度地图Google Maps使用的投影方法都是墨卡托投影。

墨卡托投影不适合在高纬度地区使用。

墨卡托投影的地图最大的缺点就是和现实差别太大,变形非常严重:比如非洲和格陵兰岛,加拿大。

其他:百度地图坐标系说明书