经纬度坐标系转换

我用的高德地图,后端需要84坐标系,安装不上gcoor,所以本地下载引入使用的

  • 需要用到的组件里面 import gcoord from ‘@/utils/gcoord.js’
  • 使用 eg:把102高德地图坐标系转为84坐标系
const result = gcoord.transform(
         this.currentLocation, // 经纬度坐标
         gcoord.GCJ02, // 当前坐标系
         gcoord.WGS84 // 目标坐标系
       )
https://github.com/hujiulong/gcoord
//存放路径 utils/gcoord.js
/* @preserve
 * gcoord 0.2.2, geographic coordinate library
 * Copyright (c) 2019 Jiulong Hu <me@hujiulong.com>
 */
!(function(e, t) {
  'object' == typeof exports && 'undefined' != typeof module
    ? t(exports)
    : 'function' == typeof define && define.amd
    ? define(['exports'], t)
    : t((e.gcoord = {}))
})(this, function(e) {
  'use strict'
  var t = 'WGS84',
    r = t,
    n = t,
    o = 'GCJ02',
    a = o,
    i = 'BD09',
    u = i,
    f = i,
    c = i,
    s = 'BD09MC',
    l = s,
    M = 'EPSG3857',
    g = M,
    h = M,
    v = M,
    d = M
  function m(e) {
    throw new Error(e)
  }
  function G(e) {
    return !isNaN(e) && null !== e && !S(e)
  }
  function S(e) {
    return !!e && '[object Array]' === Object.prototype.toString.call(e)
  }
  function P() {
    for (var o = [], e = 0; e < arguments.length; e++) o[e] = arguments[e]
    var a = o.length - 1
    return function() {
      for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t]
      for (var r = a, n = o[a].apply(null, e); r--; ) n = o[r].call(null, n)
      return n
    }
  }
  var b = Math.sin,
    y = Math.cos,
    p = Math.sqrt,
    B = Math.abs,
    D = Math.PI,
    C = 6378245,
    E = 0.006693421622965823
  function W(e) {
    var t = e[0],
      r = e[1]
    if (!J(t, r)) return [t, r]
    for (var n = [t, r], o = n[0], a = n[1], i = x([o, a]), u = i[0] - t, f = i[1] - r; 1e-6 < B(u) || 1e-6 < B(f); )
      (u = (i = x([(o -= u), (a -= f)]))[0] - t), (f = i[1] - r)
    return [o, a]
  }
  function x(e) {
    var t = e[0],
      r = e[1]
    if (!J(t, r)) return [t, r]
    var n = (function(e, t) {
      var r = (function(e, t) {
          var r = 300 + e + 2 * t + 0.1 * e * e + 0.1 * e * t + 0.1 * p(B(e))
          return (
            (r += (2 * (20 * b(6 * e * D) + 20 * b(2 * e * D))) / 3),
            (r += (2 * (20 * b(e * D) + 40 * b((e / 3) * D))) / 3),
            (r += (2 * (150 * b((e / 12) * D) + 300 * b((e / 30) * D))) / 3)
          )
        })(e - 105, t - 35),
        n = (function(e, t) {
          var r = 2 * e - 100 + 3 * t + 0.2 * t * t + 0.1 * e * t +
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值