vue中使用coordtransform转换坐标系(高德GCJ02转为wgs84等)

coordtansform库官方介绍:https://www.npmjs.com/package/coordtransform 

geojson.io官网:http://geojson.io/

 在使用高德sdk时,其返回的坐标在地图上显示时有几百米的偏移,这是由于高德用的是 火星坐标(GCJ02),而不是wgs84坐标。为了消除偏移,将GCJ02转为wgs84即可,可通过coordtransform库来转换。

下载coordtransform

cnpm i -S coordtransform

引入

import coordtransform from 'coordtransform';

使用

先打印console.log('coordtransform:', coordtransform);看一下

vue中使用coordtransform转换坐标系(高德GCJ02转为wgs84等)_第1张图片

测试: 

vue中使用coordtransform转换坐标系(高德GCJ02转为wgs84等)_第2张图片vue中使用coordtransform转换坐标系(高德GCJ02转为wgs84等)_第3张图片

    console.log('转换前坐标:(104, 39)');
    //百度经纬度坐标转国测局坐标
    console.log('bd09togcj02:', coordtransform.bd09togcj02(104, 39));
    //国测局坐标转百度经纬度坐标
    console.log('gcj02tobd09', coordtransform.gcj02tobd09(104, 39));
    //wgs84转国测局坐标
    console.log('wgs84togcj02', coordtransform.wgs84togcj02(104, 39));
    //国测局坐标转wgs84坐标
    console.log('gcj02towgs84', coordtransform.gcj02towgs84(104, 39));

比如将天府广场的gcj02坐标转换为wgs84坐标:

  • 天府广场gcj02坐标为:104.065861,30.657401
  • 天府广场wgs84坐标为:104.06335339436275, 30.659822539900272

vue中使用coordtransform转换坐标系(高德GCJ02转为wgs84等)_第4张图片

vue中使用coordtransform转换坐标系(高德GCJ02转为wgs84等)_第5张图片vue中使用coordtransform转换坐标系(高德GCJ02转为wgs84等)_第6张图片

    console.log('【天府广场】gcj02坐标:(104.065861,30.657401)');
    //国测局坐标转wgs84坐标
    console.log(
      '【天府广场】wgs84坐标',
      coordtransform.gcj02towgs84(104.065861, 30.657401)
    );

补充:转载https://blog.csdn.net/u014322206/article/details/83055355

互联网坐标系的现状


1. 地球坐标 (WGS84)

国际标准,从GPS设备中取出的数据的坐标系
国际地图提供商使用的坐标系
2. 火星坐标 (GCJ-02)  也叫国测局坐标系

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

百度标准,百度 SDK,百度地图,Geocoding 使用
百度在火星坐标上来了个二次加密

设备与坐标系的关系


1. 从设备获取经纬度(GPS)坐标

百度SDK,可以获取百度坐标(bd09,默认)或者火星坐标(GCJ02)
IOS原生定位库,可以获取WGS84坐标
高德SDK,可以获取GCJ02坐标
2. 互联网在线地图使用的坐标系

- 火星坐标系:

ios地图(其实是高德)
Google国内地图(.cn域名下)
搜搜、阿里云、高德地图、腾讯
- 百度坐标系:

百度地图
- WGS84坐标系:

Google国外地图
osm地图等国外地图

你可能感兴趣的:(Vue2,其他)