提供了百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系之间的转换。
额外提供了百度坐标到通用墨卡托坐标的转换方式,方便各位应用百度1-18级地图进行像素点到坐标的转化。
无其他依赖。
需要js版本可以移步:https://github.com/wandergis/coordtransform
python版本:https://github.com/wandergis/coordTransform_py
go语言社区版本:https://github.com/qichengzx/coordtransform
坐标系 | 解释 | 使用地图 |
---|---|---|
WGS84 | 地球坐标系,国际上通用的坐标系。设备一般包含GPS芯片或者北斗芯片获取的经纬度为WGS84地理坐标系,最基础的坐标,谷歌地图在非**地区使用的坐标系。 | GPS/谷歌地图卫星 |
GCJ02 | 火星坐标系,是由**国家测绘局制订的地理信息系统的坐标系统。并要求在**使用的地图产品使用的都必须是加密后的坐标,而这套WGS84加密后的坐标就是gcj02。 | 腾讯(搜搜)地图,阿里云地图,高德地图,谷歌国内地图 |
BD09 | 百度坐标系,百度在GCJ02的基础上进行了二次加密,官方解释是为了进一步保护用户隐私(我差点就信了) | 百度地图 |
墨卡托坐标 | 墨卡托投影以整个世界范围,赤道作为标准纬线,本初子午线作为**经线,两者交点为坐标原点,向东向北为正,向西向南为负。南北极在地图的正下、上方,而东西方向处于地图的正右、左。 | |
小众坐标系 | 类似于百度地图,在GCJ02基础上使用自己的加密算法进行二次加密的坐标系 | 搜狗地图、图吧地图 等 |
你可以通过这个工具类将上述坐标系进行互相转换。
百度地图地图投影采用的依然是Web Mercator投影,地图瓦片的切片规则遵循TMS标准,
瓦片坐标原点在经纬度为0的附近,但却做了一定的偏移处理,经测算此偏移量约为(-865,15850),
即地图瓦片(0, 0)是从Web Mercator投影坐标系的(-865,15850)点开始的。
顺便提供百度地图的地图等级从18级到1级
18级,1个像素代表1米,17级,1个像素代表2米,16级代表4米,依此类推。
GCJ02toBD09(double lng_GCJ, double lat_GCJ) # 火星坐标系->百度坐标系
BD09toGCJ02(double lng_BD, double lat_BD)# 百度坐标系->火星坐标系
WGS84toGCJ02(double lng_wgs, double lat_wgs) # WGS84坐标系->火星坐标系
GCJ02toWGS84(double lng_gcj, double lat_gcj) # 火星坐标系->WGS84坐标系
WGS84toMercator(lng, lat) # WGS84坐标系->标准墨卡托坐标系
bdtoMercator(double lng,double lat) # 百度坐标系->标准墨卡托坐标系