关于地图坐标问题转换

地图坐标大致分为三类

1: GPS,WGS-84,原始坐标体系。(国内任何一个地图产品都不允许使用GPS坐标)

显示为度分秒结构

2.GCJ-02(火星坐标),国测局02年发布的坐标体系。国内使用最基础的坐标体系,其他坐标多是以此基础加密处理(谷歌地图,腾讯地图.高德地图使用的就是这个坐标体系)

3.其他类坐标.由第二种坐标体系进行加密处理后的坐标体系统归第三类.(百度,,搜狗)

1、  经纬度。这个是球面坐标,对于北京来说,就是(116.38817139.935961)这样的坐标。比如腾讯、高德、百度都是这样的经纬度坐标。谷歌是经纬度顺序写反的经纬度坐标。
如果是度分秒坐标,需要进行转换,才能得到这样的经纬度坐标。详见坐标转换。
2、  墨卡托坐标。平面坐标,相当于是直线距离,数字一般都比较大,像这样的。(215362.00021333335 99526.00034912192)
墨卡托坐标,主要用于程序的后台计算。直线距离嘛,加加减减几乎计算方便。
搜狗地图API就是直接使用的墨卡托坐标

备注:搜狗用的平面坐标体系,谷歌地球用的wgs-84坐标体系

关于坐标转换,高德有提供一个方法将其他坐标系的坐标转换为高德所用的GCJ-02
AMap.convertFrom(data, 'gps', (status: any, result: { info: string; locations: any; }) => {
        if (result.info === 'ok') {
          const LngLat = [result.locations[0].lng, result.locations[0].lat]; // Array.<LngLat>
          arr.push(LngLat);
          // console.log(arr);
          // console.log(this.maxLngLat);
          // return LngLat;
        }
      });
    } else {
      this.locations(data, arr);
    }

这里再放一个转换的插件吧:

https://github.com/hujiulong/gcoord

 强烈建议做地图相关的功能时统一用一家的地图!
posted @ 2021-11-18 18:24  妄欢  阅读(328)  评论(0编辑  收藏  举报