百度地图、高德地图上,下载的数据,怎么和我的数据对应不上呢?

刘容刘容 · 2021-11-15 16:26
1 个回答
张云金_GISer
张云金_GISer @GISer入门
纯GISer,产品经理
数据对应不上,通常是坐标系不一致导致。 我们生活在一个三维的世界,但目前常见的地图通常是二维的。 这需要我们想出一种方法,能把三维中的内容转换到二维平面上,这一过程就是「地图投影」。 根据投影方法的不同,衍生出了成百上千个坐标系统,不同坐标系统中的数据,通常无法正常匹配,要想进行很好的匹配,就涉及到「投影变换」。 上面是大的背景知识。 我国所有公开的地图服务数据,需要经过一个非线性的加密处理操作,也就是对数据做特殊处理。 所以如果你的数据是真实的坐标位置,就会与做过处理的数据,对应不上。 以大家使用较多的OSM数据为例。 它自身的坐标投影是WGS84坐标,当你把它加载到程序中,比如QGIS中,如果底图选择的是谷歌的底图或者Mapbox的底图,数据是可以对应上的,因为他们使用的坐标系是一样的。 但如果加载的底图是百度的或者高德,它们之间有很大的偏移。这是因为高德的数据,做过加密处理后的,使用的是一个被称为「火星坐标系」的坐标系(GCJ02)。而百度的数据,在火星坐标系基础上,又做了特殊处理,造了一个百度坐标系(BD09)。 如果你使用的数据是从百度下载的,底图使用的也是百度的,那么肯定能够正常匹配,但底图换成高德,将无法匹配。 解决的办法有2种。 如果你会代码的话,可以搜索下GCJ02、BD09坐标转换,有现成的代码。 如果不会代码的话,可以使用QGIS中的geohey插件。
1
反对
2
收藏
2021-11-15 19:46
前往发表回答