转--百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系互转

先贴原文链接

百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系互转

coordtransform 坐标转换

支持node、浏览器(AMD方式和直接引用方式)

  • GitHub地址:https://github.com/wandergis/coordtransform
  • npm地址:https://www.npmjs.com/package/coordtransform
  • 项目主页:http://wandergis.github.io/coordtransform/

为什么写这个模块

image

当前互联网地图的坐标系现状

地球坐标 (WGS84)

  • 国际标准,从专业GPS 设备中取出的数据的坐标系
  • 国际地图提供商使用的坐标系

火星坐标 (GCJ-02)也叫国测局坐标系

  • 中国标准,从国行移动设备中定位获取的坐标数据使用这个坐标系
  • 国家规定: 国内出版的各种地图系统(包括电子形式),必须至少采用GCJ-02对地理位置进行首次加密。

百度坐标 (BD-09)

  • 百度标准,百度 SDK,百度地图,Geocoding 使用
  • (本来就乱了,百度又在火星坐标上来个二次加密)

开发过程需要注意的事

  •     如果使用的是百度sdk那么可以获得百度坐标(bd09)或者火星坐标(GCJ02),默认是bd09
        如果使用的是ios的原生定位库,那么获得的坐标是WGS84
        如果使用的是高德sdk,那么获取的坐标是GCJ02
    
  • 火星坐标系:
            iOS 地图(其实是高德)
            Gogole地图
            搜搜、阿里云、高德地图
    百度坐标系:
            当然只有百度地图
    WGS84坐标系:
            国际标准,谷歌国外地图、osm地图等国外的地图一般都是这个
    

举个栗子


安装(install)

npm install coordtransform

示例用法(Example&Usage)

//国测局坐标(火星坐标,比如高德地图在用),百度坐标,wgs84坐标(谷歌国外以及绝大部分国外在线地图使用的坐标)
var coordtransform=require('coordtransform');
//百度经纬度坐标转国测局坐标
var bd09togcj02=coordtransform.bd09togcj02(116.404, 39.915);
//国测局坐标转百度经纬度坐标
var gcj02tobd09=coordtransform.gcj02tobd09(116.404, 39.915);
//wgs84转国测局坐标
var wgs84togcj02=coordtransform.wgs84togcj02(116.404, 39.915);
//国测局坐标转wgs84坐标
var gcj02towgs84=coordtransform.gcj02towgs84(116.404, 39.915);
console.log(bd09togcj02);
console.log(gcj02tobd09);
console.log(wgs84togcj02);
console.log(gcj02towgs84);
//result
//bd09togcj02:   [ 116.39762729119315, 39.90865673957631 ]
//gcj02tobd09:   [ 116.41036949371029, 39.92133699351021 ]
//wgs84togcj02:  [ 116.41024449916938, 39.91640428150164 ]
//gcj02towgs84:  [ 116.39775550083061, 39.91359571849836 ]



    
    coordTransform


请按F12打开控制台查看结果


sometipes

对于做GIS的人来说,底图对我们还是很重要的,有时候看国外的底图很好看,换上之后发现坐标位置全部不对,因此写了这个包帮助大家完成坐标的转换,也准备写成一个leaflet的扩展,方便大家的使用,喜欢的童鞋请star,O(∩_∩)O

原文链接

百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系互转

你可能感兴趣的:(转--百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系互转)