• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

tianditu.api

武飞扬头像
ღ大美女的博客
帮助1

window.TMAP_AUTHKEY = “be50c7492442ecf4e61ca7bd578d6b8b”;
window.T = window.T || {};
(function () {
function each(t, i) {
for (var n in t) t.hasOwnProperty(n) && i(t[n], n, t)
}

function find(t, i) {
    if (t.length) {
        for (var n = 0; n < t.length; n  ) if (i(t[n])) return t[n]
    } else for (var e in t) if (t.hasOwnProperty(e) && i(t[e])) return t[e]
}

function first(t) {
    for (var i in t) if (t.hasOwnProperty(i)) return t[i]
}

function length(t) {
    var i = 0;
    for (var n in t) t.hasOwnProperty(n) && i  ;
    return i
}

function prepend(t, i) {
    t.children.length ? t.insertBefore(i, t.children[0]) : t.appendChild(i)
}

T.Version = "4.1.5", T.q = {
    W: function (t, i) {
        switch (arguments.length) {
            case 1:
                return parseInt(Math.random() * t   1);
            case 2:
                return parseInt(Math.random() * (i - t   1)   t);
            default:
                return 0
        }
    }
}, T.Protocol = {
    value: null, protocol: function () {
        var t = "http", i = document.location.protocol;
        "https:" == i && (t = "https"), T.Protocol.value = t   "://"
    }
}, T.Protocol.protocol(), T.tk = "tk="   window.TMAP_AUTHKEY   "&", T.Domain = "com", T.DomainType = 1, T.DomainFun = function () {
    1 == T.DomainType ? T.Domain = "gov.cn" : 2 == T.DomainType && (T.Domain = "com")
}, T.DomainFun(), T.w = {
    TMAP_AUTHKEY: window.TMAP_AUTHKEY,
    E: T.Protocol.value   "api.tianditu."   T.Domain,
    e: T.Protocol.value   "api.tianditu."   T.Domain   "/v4.0/image",
    IPSERVER: T.Protocol.value   "map.tianditu.gov.cn/data/getCityName",
    R: T.Protocol.value   "api.tianditu."   T.Domain   "/apiserver/ajaxproxy?proxyReqUrl=",
    r: function () {
        return T.Protocol.value   "t"   T.q.W(0, 7)   ".tianditu."   T.Domain   "/vec_c/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=vec&STYLE=default&TILEMATRIXSET=c&FORMAT=tiles&"   T.tk
    },
    T: function () {
        return T.Protocol.value   "t"   T.q.W(0, 7)   ".tianditu."   T.Domain   "/cva_c/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cva&STYLE=default&TILEMATRIXSET=c&FORMAT=tiles&"   T.tk
    },
    t: function () {
        return T.Protocol.value   "t"   T.q.W(0, 7)   ".tianditu."   T.Domain   "/vec_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=vec&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&"   T.tk
    },
    Y: function () {
        return T.Protocol.value   "t"   T.q.W(0, 7)   ".tianditu."   T.Domain   "/cva_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cva&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&"   T.tk
    },
    U: function () {
        return T.Protocol.value   "t"   T.q.W(0, 7)   ".tianditu."   T.Domain   "/img_c/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=c&FORMAT=tiles&"   T.tk
    },
    u: function () {
        return T.Protocol.value   "t"   T.q.W(0, 7)   ".tianditu."   T.Domain   "/cia_c/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cia&STYLE=default&TILEMATRIXSET=c&FORMAT=tiles&"   T.tk
    },
    I: function () {
        return T.Protocol.value   "t"   T.q.W(0, 7)   ".tianditu."   T.Domain   "/img_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&"   T.tk
    },
    i: function () {
        return T.Protocol.value   "t"   T.q.W(0, 7)   ".tianditu."   T.Domain   "/cia_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cia&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&"   T.tk
    },
    O: function () {
        return T.Protocol.value   "t"   T.q.W(0, 7)   ".tianditu."   T.Domain   "/ter_c/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=ter&STYLE=default&TILEMATRIXSET=c&FORMAT=tiles&"   T.tk
    },
    o: function () {
        return T.Protocol.value   "t"   T.q.W(0, 7)   ".tianditu."   T.Domain   "/cta_c/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cta&STYLE=default&TILEMATRIXSET=c&FORMAT=tiles&"   T.tk
    },
    P: function () {
        return T.Protocol.value   "t"   T.q.W(0, 7)   ".tianditu."   T.Domain   "/ter_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=ter&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&"   T.tk
    },
    p: function () {
        return T.Protocol.value   "t"   T.q.W(0, 7)   ".tianditu."   T.Domain   "/cta_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cta&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&"   T.tk
    },
    A: ["/v4.0/components.js", "/v4.0/service.js", "/v4.0/military.js"],
    a: ["/v4.0/css/tianditu4.0.css"],
    TMAP_DEFAULT_MAPTYPES: []
}, window.T_ANCHOR_TOP_LEFT = "topleft", window.T_ANCHOR_TOP_RIGHT = "topright", window.T_ANCHOR_BOTTOM_LEFT = "bottomleft", window.T_ANCHOR_BOTTOM_RIGHT = "bottomright", window.TMAP_NORMAL_MAP = null, window.TMAP_SATELLITE_MAP = null, window.TMAP_HYBRID_MAP = null, window.TMAP_TERRAIN_MAP = null, window.TMAP_TERRAIN_HYBRID_MAP = null, T.S = {
    extend: function (t) {
        var i, n, e, o;
        for (n = 1, e = arguments.length; n < e; n  ) {
            o = arguments[n];
            for (i in o) t[i] = o[i]
        }
        return t
    }, s: Object.create || function () {
        function t() {
        }

        return function (i) {
            return t.prototype = i, new t
        }
    }(), D: function (t, i) {
        var n = Array.prototype.slice;
        if (t.D) return t.D.apply(t, n.call(arguments, 1));
        var e = n.call(arguments, 2);
        return function () {
            return t.apply(i, e.length ? e.concat(n.call(arguments)) : arguments)
        }
    }, d: function (t) {
        return t.F = t.F ||   T.S.f, t.F
    }, f: 0, G: function (t, i, n) {
        var e, o, s, r;
        return r = function () {
            e = !1, o && (s.apply(n, o), o = !1)
        }, s = function () {
            e ? o = arguments : (t.apply(n, arguments), setTimeout(r, i), e = !0)
        }
    }, g: function (t, i, n) {
        var e = i[1], o = i[0], s = e - o;
        return t === e && n ? t : ((t - o) % s   s) % s   o
    }, H: function () {
        return !1
    }, h: function (t, i) {
        var n = Math.pow(10, i || 5);
        return Math.round(t * n) / n
    }, J: function (t) {
        return t.J ? t.J() : t.replace(/^\s |\s $/g, "")
    }, j: function (t) {
        return T.S.J(t).split(/\s /)
    }, setOptions: function (t, i) {
        t.hasOwnProperty("options") || (t.options = t.options ? T.S.s(t.options) : {});
        for (var n in i) t.options[n] = i[n];
        return t.options
    }, K: function (t, i, n) {
        var e = [];
        for (var o in t) e.push(encodeURIComponent(n ? o.toUpperCase() : o)   "="   encodeURIComponent(t[o]));
        return (i && i.indexOf("?") !== -1 ? "&" : "?")   e.join("&")
    }, k: function (t, i) {
        return t.replace(T.S.L, function (t, n) {
            var e = i[n];
            return void 0 === e || "function" == typeof e && (e = e(i)), e
        })
    }, L: /\{ *([\w_\-] ) *\}/g, l: Array.l || function (t) {
        return "[object Array]" === Object.prototype.toString.call(t)
    }, indexOf: function (t, i) {
        for (var n = 0; n < t.length; n  ) if (t[n] === i) return n;
        return -1
    }, Z: "data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs="
}, function () {
    function t(t) {
        return window["webkit"   t] || window["moz"   t] || window["ms"   t]
    }

    function i(t) {
        var i =  new Date, e = Math.max(0, 16 - (i - n));
        return n = i   e, window.setTimeout(t, e)
    }

    var n = 0, e = window.requestAnimationFrame || t("RequestAnimationFrame") || i,
        o = window.cancelAnimationFrame || t("CancelAnimationFrame") || t("CancelRequestAnimationFrame") || function (t) {
            window.clearTimeout(t)
        };
    T.S.C = function (t, n, o) {
        return o && e === i ? void t.call(n) : e.call(window, T.D(t, n))
    }, T.S.V = function (t) {
        t && o.call(window, t)
    }
}(), T.extend = T.S.extend, T.D = T.S.D, T.d = T.S.d, T.setOptions = T.S.setOptions, T.c = function () {
}, T.c.extend = function (t) {
    var i = function () {
        this.initialize && this.initialize.apply(this, arguments), this.B()
    }, n = i.__super__ = this.prototype, e = T.S.s(n);
    e.constructor = i, i.prototype = e;
    for (var o in this) this.hasOwnProperty(o) && "prototype" !== o && (i[o] = this[o]);
    return t.v && (T.extend(i, t.v), delete t.v), t.includes && (T.S.extend.apply(null, [e].concat(t.includes)), delete t.includes), e.options && (t.options = T.S.extend(T.S.s(e.options), t.options)), T.extend(e, t), e.N = [], e.B = function () {
        if (!this.b) {
            n.B && n.B.call(this), this.b = !0;
            for (var t = 0, i = e.N.length; t < i; t  ) e.N[t].call(this)
        }
    }, i
}, T.c.M = function (t) {
    return T.extend(this.prototype, t), this
}, T.c.n = function (t) {
    return T.extend(this.prototype.options, t), this
}, T.c._ = function (t) {
    var i = Array.prototype.slice.call(arguments, 1), n = "function" == typeof t ? t : function () {
        this[t].apply(this, i)
    };
    return this.prototype.N = this.prototype.N || [], this.prototype.N.push(n), this
}, T.m = T.c.extend({
    on: function (t, i, n) {
        if ("object" == typeof t) for (var e in t) this.QQ(e, t[e], i); else {
            t = T.S.j(t);
            for (var o = 0, s = t.length; o < s; o  ) this.QQ(t[o], i, n)
        }
        return this
    }, off: function (t, i, n) {
        if (t) if ("object" == typeof t) for (var e in t) this.WQ(e, t[e], i); else {
            t = T.S.j(t);
            for (var o = 0, s = t.length; o < s; o  ) this.WQ(t[o], i, n)
        } else delete this.qQ;
        return this
    }, QQ: function (t, i, n) {
        var e = this.qQ = this.qQ || {}, o = n && n !== this && T.d(n);
        if (o) {
            var s = t   "_idx", r = t   "_len", h = e[s] = e[s] || {}, a = T.d(i)   "_"   o;
            h[a] || (h[a] = {fn: i, ctx: n}, e[r] = (e[r] || 0)   1)
        } else e[t] = e[t] || [], e[t].push({fn: i})
    }, WQ: function (t, i, n) {
        var e, o, s, r, h = this.qQ, a = t   "_idx", u = t   "_len";
        if (h) {
            if (!i) {
                o = h[a];
                for (s in o) o[s].fn = T.S.H;
                for (o = h[t] || [], s = 0, r = o.length; s < r; s  ) o[s].fn = T.S.H;
                return delete h[t], delete h[a], void delete h[u]
            }
            var c, l = n && n !== this && T.d(n);
            if (l) c = T.d(i)   "_"   l, o = h[a], o && o[c] && (e = o[c], delete o[c], h[u]--); else if (o = h[t]) {
                for (s = 0, r = o.length; s < r; s  ) if (o[s].fn === i) {
                    e = o[s], o.splice(s, 1);
                    break
                }
                0 === o.length && delete h[t]
            }
            e && (e.fn = T.S.H)
        }
    }, wQ: function (t, i, n) {
        if (!this.EQ(t, n)) return this;
        var e = T.S.extend({}, i, {type: t, target: this}), o = this.qQ;
        if (o) {
            var s, r, h, a, u = o[t   "_idx"];
            if (o[t]) for (h = o[t].slice(), s = 0, r = h.length; s < r; s  ) h[s].fn.call(this, e);
            for (a in u) u[a].fn.call(u[a].ctx, e)
        }
        return n && this.eQ(e), this
    }, trigger: function (t, i, n) {
        return this.wQ(t, i, n), this
    }, EQ: function (t, i) {
        var n = this.qQ;
        if (n && (n[t] || n[t   "_len"])) return !0;
        if (i) for (var e in this.RQ) if (this.RQ[e].EQ(t, i)) return !0;
        return !1
    }, rQ: function (t, i, n) {
        if ("object" == typeof t) {
            for (var e in t) this.rQ(e, t[e], i);
            return this
        }
        var o = T.D(function () {
            this.off(t, i, n).off(t, o, n)
        }, this);
        return this.on(t, i, n).on(t, o, n)
    }, TQ: function (t) {
        return this.RQ = this.RQ || {}, this.RQ[T.d(t)] = t, this
    }, tQ: function (t) {
        return this.RQ && delete this.RQ[T.d(t)], this
    }, eQ: function (t) {
        for (var i in this.RQ) this.RQ[i].wQ(t.type, T.extend({layer: t.target}, t), !0)
    }
});
var pro = T.m.prototype;
pro.addEventListener = pro.on, pro.removeEventListener = pro.YQ = pro.off, pro.UQ = pro.rQ, pro.uQ = pro.trigger, pro.IQ = pro.EQ, T.iQ = {OQ: pro}, function () {
    var t = navigator.userAgent.toLowerCase(), i = document.documentElement, n = "ActiveXObject" in window,
        e = "Microsoft Internet Explorer" == navigator.appName && "MSIE8.0" == navigator.appVersion.split(";")[1].replace(new RegExp("[ ]", "g"), ""),
        o = "Microsoft Internet Explorer" == navigator.appName && "MSIE7.0" == navigator.appVersion.split(";")[1].replace(new RegExp("[ ]", "g"), ""),
        s = "Microsoft Internet Explorer" == navigator.appName && "MSIE6.0" == navigator.appVersion.split(";")[1].replace(new RegExp("[ ]", "g"), ""),
        r = t.indexOf("webkit") !== -1, h = t.indexOf("phantom") !== -1, a = t.search("android [23]") !== -1,
        u = t.indexOf("chrome") !== -1, c = t.indexOf("gecko") !== -1 && !r && !window.opera && !n,
        l = 0 === navigator.platform.indexOf("Win"),
        f = "undefined" != typeof orientation || t.indexOf("mobile") !== -1,
        d = !window.PointerEvent && window.MSPointerEvent, p = window.PointerEvent || d,
        m = n && "transition" in i.style,
        v = "WebKitCSSMatrix" in window && "m11" in new window.WebKitCSSMatrix && !a,
        w = "MozPerspective" in i.style, y = "OTransition" in i.style,
        g = !window.L_NO_TOUCH && (p || "ontouchstart" in window || window.DocumentTouch && document instanceof window.DocumentTouch);
    T.oQ = {
        ie: n,
        ie8: e,
        ie7: o,
        ie6: s,
        ielt9: n && !document.addEventListener,
        edge: "msLaunchUri" in navigator && !("documentMode" in document),
        webkit: r,
        gecko: c,
        android: t.indexOf("android") !== -1,
        android23: a,
        chrome: u,
        safari: !u && t.indexOf("safari") !== -1,
        win: l,
        ie3d: m,
        webkit3d: v,
        gecko3d: w,
        opera12: y,
        any3d: !window.L_DISABLE_3D && (m || v || w) && !y && !h,
        mobile: f,
        mobileWebkit: f && r,
        mobileWebkit3d: f && v,
        mobileOpera: f && window.opera,
        mobileGecko: f && c,
        touch: !!g,
        msPointer: !!d,
        pointer: !!p,
        retina: (window.PQ || window.screen.deviceXDPI / window.screen.logicalXDPI) > 1
    }
}(), T.Point = function (t, i, n) {
    this.x = n ? Math.round(t) : t, this.y = n ? Math.round(i) : i
}, T.Point.prototype = {
    pQ: function () {
        return new T.Point(this.x, this.y)
    }, AQ: function (t) {
        return this.pQ().aQ(T.SQ(t))
    }, aQ: function (t) {
        return this.x  = t.x, this.y  = t.y, this
    }, sQ: function (t) {
        return this.pQ().DQ(T.SQ(t))
    }, DQ: function (t) {
        return this.x -= t.x, this.y -= t.y, this
    }, dQ: function (t) {
        return this.pQ().FQ(t)
    }, FQ: function (t) {
        return this.x /= t, this.y /= t, this
    }, fQ: function (t) {
        return this.pQ().GQ(t)
    }, GQ: function (t) {
        return this.x *= t, this.y *= t, this
    }, gQ: function (t) {
        return new T.Point(this.x * t.x, this.y * t.y)
    }, HQ: function (t) {
        return new T.Point(this.x / t.x, this.y / t.y)
    }, hQ: function () {
        return this.pQ().JQ()
    }, JQ: function () {
        return this.x = Math.round(this.x), this.y = Math.round(this.y), this
    }, jQ: function () {
        return this.pQ().KQ()
    }, KQ: function () {
        return this.x = Math.floor(this.x), this.y = Math.floor(this.y), this
    }, kQ: function () {
        return this.pQ().LQ()
    }, LQ: function () {
        return this.x = Math.ceil(this.x), this.y = Math.ceil(this.y), this
    }, distanceTo: function (t) {
        t = T.SQ(t);
        var i = t.x - this.x, n = t.y - this.y;
        return Math.sqrt(i * i   n * n)
    }, equals: function (t) {
        return t = T.SQ(t), t.x === this.x && t.y === this.y
    }, contains: function (t) {
        return t = T.SQ(t), Math.abs(t.x) <= Math.abs(this.x) && Math.abs(t.y) <= Math.abs(this.y)
    }, lQ: function () {
        return "Point("   T.S.h(this.x)   ", "   T.S.h(this.y)   ")"
    }
}, T.SQ = function (t, i, n) {
    return t instanceof T.Point ? t : T.S.l(t) ? new T.Point(t[0], t[1]) : void 0 === t || null === t ? t : "object" == typeof t && "x" in t && "y" in t ? new T.Point(t.x, t.y) : new T.Point(t, i, n)
}, T.ZQ = function (t, i) {
    if (t) for (var n = i ? [t, i] : t, e = 0, o = n.length; e < o; e  ) this.extend(n[e])
}, T.ZQ.prototype = {
    extend: function (t) {
        return t = T.SQ(t), this.min || this.max ? (this.min.x = Math.min(t.x, this.min.x), this.max.x = Math.max(t.x, this.max.x), this.min.y = Math.min(t.y, this.min.y), this.max.y = Math.max(t.y, this.max.y)) : (this.min = t.pQ(), this.max = t.pQ()), this
    }, getCenter: function (t) {
        return new T.Point((this.min.x   this.max.x) / 2, (this.min.y   this.max.y) / 2, t)
    }, CQ: function () {
        return new T.Point(this.min.x, this.max.y)
    }, VQ: function () {
        return new T.Point(this.max.x, this.min.y)
    }, getSize: function () {
        return this.max.sQ(this.min)
    }, contains: function (t) {
        var i, n;
        return t = "number" == typeof t[0] || t instanceof T.Point ? T.SQ(t) : T.cQ(t), t instanceof T.ZQ ? (i = t.min, n = t.max) : i = n = t, i.x >= this.min.x && n.x <= this.max.x && i.y >= this.min.y && n.y <= this.max.y
    }, intersects: function (t) {
        t = T.cQ(t);
        var i = this.min, n = this.max, e = t.min, o = t.max, s = o.x >= i.x && e.x <= n.x,
            r = o.y >= i.y && e.y <= n.y;
        return s && r
    }, BQ: function (t) {
        t = T.cQ(t);
        var i = this.min, n = this.max, e = t.min, o = t.max, s = o.x > i.x && e.x < n.x,
            r = o.y > i.y && e.y < n.y;
        return s && r
    }, vQ: function () {
        return !(!this.min || !this.max)
    }
}, T.cQ = function (t, i) {
    return !t || t instanceof T.ZQ ? t : new T.ZQ(t, i)
}, T.NQ = function (t, i, n, e) {
    this._a = t, this._b = i, this._c = n, this._d = e
}, T.NQ.prototype = {
    bQ: function (t, i) {
        return this.MQ(t.pQ(), i)
    }, MQ: function (t, i) {
        return i = i || 1, t.x = i * (this._a * t.x   this._b), t.y = i * (this._c * t.y   this._d), t
    }, nQ: function (t, i) {
        return i = i || 1, new T.Point((t.x / i - this._b) / this._a, (t.y / i - this._d) / this._c)
    }
}, T._Q = {
    mQ: function (t) {
        return "string" == typeof t ? document.getElementById(t) : t
    }, getStyle: function (t, i) {
        var n = t.style[i] || t.currentStyle && t.currentStyle[i];
        if ((!n || "auto" === n) && document.defaultView) {
            var e = document.defaultView.getComputedStyle(t, null);
            n = e ? e[i] : null
        }
        return "auto" === n ? null : n
    }, s: function (t, i, n) {
        var e = document.createElement(t);
        return e.className = i || "", n && n.appendChild(e), e
    }, Qq: function (t) {
        var i = t.parentNode;
        i && i.removeChild(t)
    }, qq: function (t) {
        for (; t.firstChild;) t.removeChild(t.firstChild)
    }, Wq: function (t) {
        t.parentNode.appendChild(t)
    }, wq: function (t) {
        var i = t.parentNode;
        i.insertBefore(t, i.firstChild)
    }, Eq: function (t, i) {
        if (void 0 !== t.classList) return t.classList.contains(i);
        var n = T._Q.eq(t);
        return n.length > 0 && new RegExp("(^|\\s)"   i   "(\\s|$)").test(n)
    }, Rq: function (t, i) {
        if (void 0 !== t.classList) for (var n = T.S.j(i), e = 0, o = n.length; e < o; e  ) t.classList.add(n[e]); else if (!T._Q.Eq(t, i)) {
            var s = T._Q.eq(t);
            T._Q.rq(t, (s ? s   " " : "")   i)
        }
    }, Tq: function (t, i) {
        void 0 !== t.classList ? t.classList.remove(i) : T._Q.rq(t, T.S.J((" "   T._Q.eq(t)   " ").replace(" "   i   " ", " ")))
    }, rq: function (t, i) {
        void 0 === t.className.baseVal ? t.className = i : t.className.baseVal = i
    }, eq: function (t) {
        return void 0 === t.className.baseVal ? t.className : t.className.baseVal
    }, setOpacity: function (t, i) {
        "opacity" in t.style ? t.style.opacity = i : "filter" in t.style && T._Q.tq(t, i)
    }, tq: function (t, i) {
        var n = !1, e = "DXImageTransform.Microsoft.Alpha";
        try {
            n = t.filters.item(e)
        } catch (AO) {
            if (1 === i) return
        }
        i = Math.round(100 * i), n ? (n.Enabled = 100 !== i, n.Opacity = i) : t.style.filter  = " progid:"   e   "(opacity="   i   ")"
    }, Yq: function (t) {
        for (var i = document.documentElement.style, n = 0; n < t.length; n  ) if (t[n] in i) return t[n];
        return !1
    }, Uq: function (t, i, n) {
        var e = i || new T.Point(0, 0);
        t.style[T._Q.uq] = (T.oQ.ie3d ? "translate("   e.x   "px,"   e.y   "px)" : "translate3d("   e.x   "px,"   e.y   "px,0)")   (n ? " scale("   n   ")" : "")
    }, setPosition: function (t, i) {
        t._tdt_pos = i, T.oQ.any3d ? T._Q.Uq(t, i) : (t.style.left = i.x   "px", t.style.top = i.y   "px")
    }, getPosition: function (t) {
        return t._tdt_pos || new T.Point(0, 0)
    }
}, function () {
    T._Q.uq = T._Q.Yq(["bQ", "WebkitTransform", "OTransform", "MozTransform", "msTransform"]);
    var t = T._Q.Iq = T._Q.Yq(["webkitTransition", "transition", "OTransition", "MozTransition", "msTransition"]);
    if (T._Q.iq = "webkitTransition" === t || "OTransition" === t ? t   "End" : "transitionend", "onselectstart" in document) T._Q.Oq = function () {
        T.oq.on(window, "selectstart", T.oq.preventDefault)
    }, T._Q.Pq = function () {
        T.oq.off(window, "selectstart", T.oq.preventDefault)
    }; else {
        var i = T._Q.Yq(["userSelect", "WebkitUserSelect", "OUserSelect", "MozUserSelect", "msUserSelect"]);
        T._Q.Oq = function () {
            if (i) {
                var t = document.documentElement.style;
                this.pq = t[i], t[i] = "none"
            }
        }, T._Q.Pq = function () {
            i && (document.documentElement.style[i] = this.pq, delete this.pq)
        }
    }
    T._Q.Aq = function () {
        T.oq.on(window, "dragstart", T.oq.preventDefault)
    }, T._Q.aq = function () {
        T.oq.off(window, "dragstart", T.oq.preventDefault)
    }, T._Q.Sq = function (t) {
        for (; t.tabIndex === -1;) t = t.parentNode;
        t && t.style && (T._Q.sq(), this.Dq = t, this._outlineStyle = t.style.outline, t.style.outline = "none", T.oq.on(window, "keydown", T._Q.sq, this))
    }, T._Q.sq = function () {
        this.Dq && (this.Dq.style.outline = this._outlineStyle, delete this.Dq, delete this._outlineStyle, T.oq.off(window, "keydown", T._Q.sq, this))
    }
}(), T.dq = function (t, i, n) {
    isNaN(t) || isNaN(i), this.lat =  parseFloat(t).toFixed(5), this.lng =  parseFloat(i).toFixed(5), void 0 !== n && (this.Fq =  n)
}, T.dq.prototype = {
    equals: function (t, i) {
        if (!t) return !1;
        t = T.fq(t);
        var n = Math.max(Math.abs(this.lat - t.lat), Math.abs(this.lng - t.lng));
        return n <= (void 0 === i ? 1e-9 : i)
    }, lQ: function (t) {
        return "LngLat("   T.S.h(this.lng, t)   ", "   T.S.h(this.lat, t)   ")"
    }, distanceTo: function (t) {
        return T.gq.Gq.distance(this, T.fq(t))
    }, Hq: function () {
        return T.gq.Gq.hq(this)
    }, Jq: function (t) {
        var i = 180 * t / 40075017, n = i / Math.cos(Math.PI / 180 * this.lat);
        return T.jq([this.lat - i, this.lng - n], [this.lat   i, this.lng   n])
    }, pQ: function () {
        return new T.dq(this.lat, this.lng, this.Fq)
    }, getLng: function () {
        return this.lng
    }, getLat: function () {
        return this.lat
    }
}, T.fq = function (t, i, n) {
    return t instanceof T.dq ? t : T.S.l(t) && "object" != typeof t[0] ? 3 === t.length ? new T.dq(t[0], t[1], t[2]) : 2 === t.length ? new T.dq(t[0], t[1]) : null : void 0 === t || null === t ? t : "object" == typeof t && "lat" in t ? new T.dq(t.lat, "lng" in t ? t.lng : t.lon, t.Fq) : void 0 === i ? null : new T.dq(t, i, n)
}, T.LngLat = function (t, i, n) {
    return new T.dq(i, t, n)
}, T.Kq = function (t, i) {
    if (t) for (var n = i ? [t, i] : t, e = 0, o = n.length; e < o; e  ) this.extend(n[e])
}, T.Kq.prototype = {
    extend: function (t) {
        var i, n, e = this.kq, o = this.Lq;
        if (t instanceof T.dq) i = t, n = t; else {
            if (!(t instanceof T.Kq)) return t ? this.extend(T.fq(t) || T.jq(t)) : this;
            if (i = t.kq, n = t.Lq, !i || !n) return this
        }
        return e || o ? (e.lat = Math.min(i.lat, e.lat), e.lng = Math.min(i.lng, e.lng), o.lat = Math.max(n.lat, o.lat), o.lng = Math.max(n.lng, o.lng)) : (this.kq = new T.dq(i.lat, i.lng), this.Lq = new T.dq(n.lat, n.lng)), this
    }, lq: function (t) {
        var i = this.kq, n = this.Lq, e = Math.abs(i.lat - n.lat) * t, o = Math.abs(i.lng - n.lng) * t;
        return new T.Kq(new T.dq(i.lat - e, i.lng - o), new T.dq(n.lat   e, n.lng   o))
    }, getCenter: function () {
        return new T.dq((this.kq.lat   this.Lq.lat) / 2, (this.kq.lng   this.Lq.lng) / 2)
    }, getSouthWest: function () {
        return this.kq
    }, getNorthEast: function () {
        return this.Lq
    }, Zq: function () {
        return new T.dq(this.Cq(), this.Vq())
    }, cq: function () {
        return new T.dq(this.Bq(), this.vq())
    }, Vq: function () {
        return this.kq.lng
    }, Bq: function () {
        return this.kq.lat
    }, vq: function () {
        return this.Lq.lng
    }, Cq: function () {
        return this.Lq.lat
    }, contains: function (t) {
        t = "number" == typeof t[0] || t instanceof T.dq ? T.fq(t) : T.jq(t);
        var i, n, e = this.kq, o = this.Lq;
        return t instanceof T.Kq ? (i = t.getSouthWest(), n = t.getNorthEast()) : i = n = t, i.lat >= e.lat && n.lat <= o.lat && i.lng >= e.lng && n.lng <= o.lng
    }, intersects: function (t) {
        t = T.jq(t);
        var i = this.kq, n = this.Lq, e = t.getSouthWest(), o = t.getNorthEast(),
            s = o.lat >= i.lat && e.lat <= n.lat, r = o.lng >= i.lng && e.lng <= n.lng;
        return s && r
    }, BQ: function (t) {
        t = T.jq(t);
        var i = this.kq, n = this.Lq, e = t.getSouthWest(), o = t.getNorthEast(),
            s = o.lat > i.lat && e.lat < n.lat, r = o.lng > i.lng && e.lng < n.lng;
        return s && r
    }, Nq: function () {
        return [this.Vq(), this.Bq(), this.vq(), this.Cq()].join(",")
    }, equals: function (t) {
        return !!t && (t = T.jq(t), this.kq.equals(t.getSouthWest()) && this.Lq.equals(t.getNorthEast()))
    }, vQ: function () {
        return !(!this.kq || !this.Lq)
    }
}, T.jq = function (t, i) {
    return t instanceof T.Kq ? t : new T.Kq(t, i)
}, T.LngLatBounds = function (t, i) {
    return t instanceof T.Kq ? t : new T.Kq(t, i)
}, T.bq = {}, T.bq.Mq = {
    nq: function (t) {
        return new T.Point(t.lng, t.lat)
    }, _q: function (t) {
        return new T.dq(t.y, t.x)
    }, bounds: T.cQ([-180, -90], [180, 90])
}, T.bq.mq = {
    R: 6378137, QW: 85.0511287798, nq: function (t) {
        var i = Math.PI / 180, n = this.QW, e = Math.max(Math.min(n, t.lat), -n), o = Math.sin(e * i);
        return new T.Point(this.R * t.lng * i, this.R * Math.log((1   o) / (1 - o)) / 2)
    }, _q: function (t) {
        var i = 180 / Math.PI;
        return new T.dq((2 * Math.atan(Math.exp(t.y / this.R)) - Math.PI / 2) * i, t.x * i / this.R)
    }, bounds: function () {
        var t = 6378137 * Math.PI;
        return T.cQ([-t, -t], [t, t])
    }()
}, T.gq = {
    qW: function (t, i) {
        var n = this.projection.nq(t), e = this.scale(i);
        return this.WW.MQ(n, e)
    }, wW: function (t, i) {
        var n = this.scale(i), e = this.WW.nQ(t, n);
        return this.projection._q(e)
    }, nq: function (t) {
        return this.projection.nq(t)
    }, _q: function (t) {
        return this.projection._q(t)
    }, scale: function (t) {
        return 256 * Math.pow(2, t - T.gq.EW)
    }, EW: 0, zoom: function (t) {
        return Math.log(t / 256) / Math.LN2
    }, eW: function (t) {
        if (this.RW) return null;
        var i = this.projection.bounds, n = this.scale(t), e = this.WW.bQ(i.min, n), o = this.WW.bQ(i.max, n);
        return T.cQ(e, o)
    }, RW: !1, hq: function (t) {
        var i = this.rW ? T.S.g(t.lng, this.rW, !0) : t.lng,
            n = this.wrapLat ? T.S.g(t.lat, this.wrapLat, !0) : t.lat, e = t.Fq;
        return T.fq(n, i, e)
    }
}, T.gq.TW = T.extend({}, T.gq, {
    projection: T.bq.Mq, WW: new T.NQ(1, 0, -1, 0), scale: function (t) {
        return Math.pow(2, t)
    }, zoom: function (t) {
        return Math.log(t) / Math.LN2
    }, distance: function (t, i) {
        var n = i.lng - t.lng, e = i.lat - t.lat;
        return Math.sqrt(n * n   e * e)
    }, RW: !0
}), T.gq.Gq = T.extend({}, T.gq, {
    rW: [-180, 180], R: 6371e3, distance: function (t, i) {
        var n = Math.PI / 180, e = t.lat * n, o = i.lat * n,
            s = Math.sin(e) * Math.sin(o)   Math.cos(e) * Math.cos(o) * Math.cos((i.lng - t.lng) * n);
        return this.R * Math.acos(Math.min(s, 1))
    }
}), T.gq.tW = T.extend({}, T.gq.Gq, {
    code: "YW", projection: T.bq.mq, WW: function () {
        var t = .5 / (Math.PI * T.bq.mq.R);
        return new T.NQ(t, .5, -t, .5)
    }()
}), T.gq.UW = T.extend({}, T.gq.tW, {code: "EPSG:900913"}), T.gq.uW = T.extend({}, T.gq.Gq, {
    code: "EPSG:4326",
    projection: T.bq.Mq,
    WW: new T.NQ(1 / 180, 1, -1 / 180, .5)
}), T.Map = T.m.extend({
    options: {
        IW: T.gq.UW,
        center: void 0,
        zoom: void 0,
        minZoom: void 0,
        maxZoom: void 0,
        layers: [],
        maxBounds: void 0,
        iW: void 0,
        OW: !0,
        oW: !0,
        PW: !0,
        pW: 8388608,
        AW: 1,
        aW: 1,
        datasourcesControl: !1
    }, initialize: function (t, i) {
        i = T.setOptions(this, i), this.SW = "EPSG:900913", i.projection ? "EPSG:4326" == i.projection ? (i.IW = T.gq.uW, this.SW = "EPSG:4326", T.gq.EW = 1) : (i.IW = T.gq.UW, this.SW = "EPSG:900913", i.projection = this.SW, T.gq.EW = 0) : i.projection = this.SW, this.sW(t), this.DW(), this.dW = T.D(this.dW, this), this.FW(), i.maxBounds && this.setMaxBounds(i.maxBounds), void 0 !== i.zoom && (this.fW = this.GW(i.zoom)), i.center && void 0 !== i.zoom && this.gW(T.fq(i.center), i.zoom, {reset: !0}), this.HW = [], this.hW = {}, this.JW = [], this.jW = [], this.KW = {}, this.kW = !0, this.initLayers = [], this.B(), this.defaultMapType = null, this.LW(this), this.lW(this.options.layers)
    }, getCode: function () {
        return this.SW
    }, gW: function (t, i) {
        return i = void 0 === i ? this.getZoom() : i, this.ZW(T.fq(t), i), this
    }, setZoom: function (t, i) {
        return this.CW ? this.gW(this.getCenter(), t, {zoom: i}) : (this.fW = t, this)
    }, zoomIn: function (t, i) {
        return t = t || (T.oQ.any3d ? this.options.aW : 1), this.setZoom(this.fW   t, i)
    }, zoomOut: function (t, i) {
        return t = t || (T.oQ.any3d ? this.options.aW : 1), this.setZoom(this.fW - t, i)
    }, VW: function (t, i, n) {
        var e = this.cW(i), o = this.getSize().dQ(2), s = t instanceof T.Point ? t : this.BW(t),
            r = s.sQ(o).fQ(1 - 1 / e), h = this.vW(o.AQ(r));
        return this.gW(h, i, {zoom: n})
    }, NW: function (t, i) {
        i = i || {}, t = t.getBounds ? t.getBounds() : T.jq(t);
        var n = T.SQ(i.bW || i.MW || [0, 0]), e = T.SQ(i.paddingBottomRight || i.MW || [0, 0]),
            o = this.nW(t, !1, n.AQ(e));
        o = "number" == typeof i.maxZoom ? Math.min(i.maxZoom, o) : o;
        var s = e.sQ(n).dQ(2), r = this.nq(t.getSouthWest(), o), h = this.nq(t.getNorthEast(), o),
            a = this._q(r.AQ(h).dQ(2).AQ(s), o);
        return {center: a, zoom: o}
    }, _W: function (t, i) {
        if (t = T.jq(t), !t.vQ()) throw new Error("Bounds are not valid.");
        var n = this.NW(t, i);
        return this.gW(n.center, n.zoom, i)
    }, mW: function (t) {
        return this._W([[-90, -180], [90, 180]], t)
    }, getViewport: function (t) {
        if (T.S.l(t) && 0 != t.length) {
            var i = this.Qw(t);
            return {center: i.getCenter(), zoom: this.nW(i, !1)}
        }
    }, setViewport: function (t) {
        if (T.S.l(t) && 0 != t.length) {
            var i = this.Qw(t);
            this.panTo(i.getCenter(), this.nW(i, !1))
        }
    }, Qw: function (t) {
        for (var i = new T.LngLatBounds(new T.LngLat(0, 0)), n = 0, e = t.length; n < e; n  ) {
            var o = T.fq(t[n]);
            i.extend(o)
        }
        return i
    }, panTo: function (t, i, n) {
        return i && (this.fW = i), this.centerAndZoom(t, this.fW, {qw: n})
    }, panBy: function (t) {
        return this.wQ("movestart"), this.Ww(T.SQ(t)), this.wQ("move"), this.wQ("moveend")
    }, setMaxBounds: function (t) {
        return t = T.jq(t), t.vQ() ? (this.options.maxBounds && this.off("moveend", this.ww), this.options.maxBounds = t, this.CW && this.ww(), this.on("moveend", this.ww)) : (this.options.maxBounds = null, this.off("moveend", this.ww))
    }, setMinZoom: function (t) {
        return this.options.minZoom = t, this.CW && this.getZoom() < this.options.minZoom ? this.setZoom(t) : (this.wQ("minzoom", {
            minZoom: this.options.minZoom,
            maxZoom: this.options.maxZoom
        }), this)
    }, setMaxZoom: function (t) {
        return this.options.maxZoom = t, this.CW && this.getZoom() > this.options.maxZoom ? this.setZoom(t) : (this.wQ("maxzoom", {
            minZoom: this.options.minZoom,
            maxZoom: this.options.maxZoom
        }), this)
    }, Ew: function (t, i) {
        this.ew = !0;
        var n = this.getCenter(), e = this.Rw(n, this.fW, T.jq(t));
        return n.equals(e) || this.panTo(e, i), this.ew = !1, this
    }, rw: function (t) {
        if (!this.CW) return this;
        t = T.extend({Tw: !1, qw: !0}, t === !0 ? {Tw: !0} : t);
        var i = this.getSize();
        this.kW = !0, this.tw = null;
        var n = this.getSize(), e = i.dQ(2).hQ(), o = n.dQ(2).hQ(), s = e.sQ(o);
        return s.x || s.y ? (t.Tw && t.qw ? this.panBy(s) : (t.qw && this.Ww(s), this.wQ("move"), t.Yw ? (clearTimeout(this.Uw), this.Uw = setTimeout(T.D(this.wQ, this, "moveend"), 200)) : this.wQ("moveend")), this.wQ("resize", {
            oldSize: i,
            newSize: n
        })) : this
    }, checkResize: function () {
        this.rw()
    }, uw: function () {
        return this.setZoom(this.GW(this.fW)), this.options.AW || this.wQ("viewreset"), this.Iw()
    }, iw: function (t, i) {
        if (!i) return this;
        var n = this[t] = new i(this);
        return this.HW.push(n), this.options[t] && n.enable(), this
    }, Qq: function () {
        this.FW(!0);
        try {
            delete this.Ow._tdt
        } catch (AO) {
            this.Ow._tdt = void 0
        }
        T._Q.Qq(this.ow), this.Pw && this.Pw(), this.pw(), this.CW && this.wQ("unload");
        for (var t in this.hW) this.hW[t].Qq();
        return this
    }, Aw: function (t, i) {
        var n = "tdt-pane"   (t ? " tdt-"   t.replace("Pane", "")   "-pane" : ""),
            e = T._Q.s("div", n, i || this.ow);
        return t && (this.aw[t] = e), e
    }, getCenter: function () {
        return this.Sw(), this.tw && !this.sw() ? this.tw : this.Dw(this.dw())
    }, getZoom: function () {
        return this.fW
    }, getBounds: function () {
        var t = this.Fw(), i = this._q(t.CQ()), n = this._q(t.VQ());
        return new T.Kq(i, n)
    }, getMinZoom: function () {
        return void 0 === this.options.minZoom ? this.fw || 0 : this.options.minZoom
    }, getMaxZoom: function () {
        return void 0 === this.options.maxZoom ? void 0 === this.Gw ? 1 / 0 : this.Gw : this.options.maxZoom
    }, nW: function (t, i, n) {
        t = T.jq(t), n = T.SQ(n || [0, 0]);
        var e = this.getZoom() || 0, o = this.getMinZoom(), s = this.getMaxZoom(), r = t.Zq(), h = t.cq(),
            a = this.getSize().sQ(n), u = this.nq(h, e).sQ(this.nq(r, e)), c = T.oQ.any3d ? this.options.AW : 1,
            l = Math.min(a.x / u.x, a.y / u.y);
        return e = this.gw(l, e), c && (e = Math.round(e / (c / 100)) * (c / 100), e = i ? Math.ceil(e / c) * c : Math.floor(e / c) * c), Math.max(o, Math.min(s, e))
    }, getSize: function () {
        return this.Hw && !this.kW || (this.Hw = new T.Point(this.Ow.clientWidth, this.Ow.clientHeight), this.kW = !1), this.Hw.pQ()
    }, Fw: function (t, i) {
        var n = this.hw(t, i);
        return new T.ZQ(n, n.AQ(this.getSize()))
    }, Jw: function () {
        return this.Sw(), this.jw
    }, Kw: function (t) {
        return this.options.IW.eW(void 0 === t ? this.getZoom() : t)
    }, getPane: function (t) {
        return "string" == typeof t ? this.aw[t] : t
    }, getPanes: function () {
        return this.aw
    }, getContainer: function () {
        return this.Ow
    }, cW: function (t, i) {
        var n = this.options.IW;
        return i = void 0 === i ? this.fW : i, n.scale(t) / n.scale(i)
    }, gw: function (t, i) {
        var n = this.options.IW;
        return i = void 0 === i ? this.fW : i, n.zoom(t * n.scale(i   T.gq.EW))
    }, setCrs: function (t) {
        if (t == this.getCode()) return !1;
        var i = this.getCenter();
        "EPSG:900913" == t ? (this.options.IW = T.gq.UW, this.SW = t, T.gq.EW = 0) : (this.options.IW = T.gq.uW, this.SW = t, T.gq.EW = 1), this.setMapType(this.getMapType()), this.ZW(i, this.getZoom())
    }, switchingMaps: function (t) {
        this.setCrs(t)
    }, nq: function (t, i) {
        return i = void 0 === i ? this.fW : i, this.options.IW.qW(T.fq(t), i)
    }, _q: function (t, i) {
        return i = void 0 === i ? this.fW : i, this.options.IW.wW(T.SQ(t), i)
    }, Dw: function (t) {
        var i = T.SQ(t).AQ(this.Jw());
        return this._q(i)
    }, kw: function (t) {
        var i = this.nq(T.fq(t)).JQ();
        return i.DQ(this.Jw())
    }, layerPointToLngLat: function (t) {
        return this.Dw(t)
    }, lngLatToLayerPoint: function (t) {
        return this.kw(t)
    }, hq: function (t) {
        return this.options.IW.hq(T.fq(t))
    }, distance: function (t, i) {
        return this.options.IW.distance(T.fq(t), T.fq(i))
    }, getDistance: function (t, i) {
        return this.distance(t, i)
    }, Lw: function (t) {
        return T.SQ(t).sQ(this.lw())
    }, Zw: function (t) {
        return T.SQ(t).AQ(this.lw())
    }, vW: function (t) {
        var i = this.Lw(T.SQ(t));
        return this.Dw(i)
    }, BW: function (t) {
        return this.Zw(this.kw(T.fq(t)))
    }, containerPointToLngLat: function (t) {
        return this.vW(t)
    }, lngLatToContainerPoint: function (t) {
        return this.BW(t)
    }, Cw: function (t) {
        return T.oq.Vw(t, this.Ow)
    }, cw: function (t) {
        return this.Lw(this.Cw(t))
    }, Bw: function (t) {
        return this.Dw(this.cw(t))
    }, sW: function (t) {
        var i = this.Ow = T._Q.mQ(t);
        i && i._tdt, T.oq.addListener(i, "scroll", this.vw, this), i._tdt = !0
    }, DW: function () {
        var t = this.Ow;
        this.Nw = this.options.OW && T.oQ.any3d, T._Q.Rq(t, "tdt-container"   (T.oQ.touch ? " tdt-touch" : "")   (T.oQ.retina ? " tdt-retina" : "")   (T.oQ.ielt9 ? " tdt-oldie" : "")   (T.oQ.safari ? " tdt-safari" : "")   (this.Nw ? " tdt-fade-anim" : ""));
        var i = T._Q.getStyle(t, "position");
        "absolute" !== i && "relative" !== i && "fixed" !== i && (t.style.position = "relative"), this.bw(), this.Mw && this.Mw()
    }, bw: function () {
        var t = this.aw = {};
        this.nw = {}, this.ow = this.Aw("mapPane", this.Ow), T._Q.setPosition(this.ow, new T.Point(0, 0)), this.Aw("tilePane"), this.Aw("_w"), this.Aw("overlayPane"), this.Aw("markerPane"), this.Aw("infoWindowPane"), this.options.PW || (T._Q.Rq(t.markerPane, "tdt-zoom-hide"), T._Q.Rq(t._w, "tdt-zoom-hide"))
    }, ZW: function (t, i) {
        T._Q.setPosition(this.ow, new T.Point(0, 0));
        var n = !this.CW;
        this.CW = !0, i = this.GW(i), this.wQ("viewprereset");
        var e = this.fW !== i;
        this.qE(e).QE(t, i).mw(e), this.wQ("viewreset"), n && this.wQ("load")
    }, qE: function (t) {
        return t && this.wQ("zoomstart"), this.wQ("movestart")
    }, QE: function (t, i, n) {
        void 0 === i && (i = this.fW);
        var e = this.fW !== i;
        return this.fW = i, this.tw = t, this.jw = this.WE(t), (e || n && n.pinch) && this.wQ("zoom", n), this.wQ("move", n)
    }, mw: function (t) {
        return t && this.wQ("zoomend"), this.wQ("moveend")
    }, Iw: function () {
        return T.S.V(this.wE), this.EE && this.EE.uw(), this
    }, Ww: function (t) {
        T._Q.setPosition(this.ow, this.lw().sQ(t))
    }, eE: function () {
        return this.getMaxZoom() - this.getMinZoom()
    }, ww: function () {
        this.ew || this.Ew(this.options.maxBounds)
    }, Sw: function () {
        !this.CW
    }, FW: function (t) {
        if (T.oq) {
            this.RE = {}, this.RE[T.d(this.Ow)] = this;
            var i = t ? "off" : "on";
            T.oq[i](this.Ow, "click dblclick mousedown mouseup mouSEO((Search Engine Optimization))ver mouSEO((Search Engine Optimization))ut mousemove contextmenu keypress", this.rE, this), this.options.oW && T.oq[i](window, "resize", this.dW, this), T.oQ.any3d && this.options.pW && this[i]("moveend", this.TE)
        }
    }, dW: function () {
        T.S.V(this.tE), this.tE = T.S.C(function () {
            this.rw({Yw: !0})
        }, this)
    }, vw: function () {
        this.Ow.scrollTop = 0, this.Ow.scrollLeft = 0
    }, TE: function () {
        var t = this.lw();
        Math.max(Math.abs(t.x), Math.abs(t.y)) >= this.options.pW && this.ZW(this.getCenter(), this.getZoom())
    }, YE: function (t, i) {
        for (var n, e = [], o = "mouSEO((Search Engine Optimization))ut" === i || "mouSEO((Search Engine Optimization))ver" === i, s = t.target || t.srcElement, r = !1; s;) {
            if (n = this.RE[T.d(s)], n && ("click" === i || "UE" === i) && !t.uE && this.IE(n)) {
                r = !0;
                break
            }
            if (n && n.EQ(i, !0)) {
                if (o && !T.oq.iE(s, t)) break;
                if (e.push(n), o) break
            }
            if (s === this.Ow) break;
            s = s.parentNode
        }
        return e.length || r || o || !T.oq.iE(s, t) || (e = [this]), e
    }, rE: function (t) {
        if (this.CW && !T.oq.OE(t)) {
            var i = "keypress" === t.type && 13 === t.keyCode ? "click" : t.type;
            "mousedown" === i && T._Q.Sq(t.target || t.srcElement), this.oE(t, i)
        }
    }, oE: function (t, i, n) {
        if ("click" === t.type) {
            var e = T.S.extend({}, t);
            e.type = "UE", this.oE(e, e.type, n)
        }
        if (!t._stopped && (n = (n || []).concat(this.YE(t, i)), n.length)) {
            var o = n[0];
            "contextmenu" === i && o.EQ(i, !0) && T.oq.preventDefault(t);
            var s = {originalEvent: t};
            if ("keypress" !== t.type) {
                var r = o instanceof T.Marker;
                s.containerPoint = r ? this.BW(o.PE()) : this.Cw(t), s.layerPoint = this.Lw(s.containerPoint), s.lnglat = r ? o.PE() : this.Dw(s.layerPoint)
            }
            for (var h = 0; h < n.length; h  ) if (n[h].wQ(i, s, !0), s.originalEvent._stopped || n[h].options.pE && T.S.indexOf(n[h].options.pE, i) !== -1) return
        }
    }, IE: function (t) {
        return t = t.AE && t.AE.aE() ? t : this, t.AE && t.AE.moved() || this.SE && this.SE.moved()
    }, pw: function () {
        for (var t = 0, i = this.HW.length; t < i; t  ) this.HW[t].disable()
    }, sE: function (t, i) {
        return this.CW ? t.call(i || this, {target: this}) : this.on("load", t, i), this
    }, lw: function () {
        return T._Q.getPosition(this.ow) || new T.Point(0, 0)
    }, sw: function () {
        var t = this.lw();
        return t && !t.equals([0, 0])
    }, hw: function (t, i) {
        var n = t && void 0 !== i ? this.WE(t, i) : this.Jw();
        return n.sQ(this.lw())
    }, WE: function (t, i) {
        var n = this.getSize().FQ(2);
        return this.nq(t, i).DQ(n).aQ(this.lw()).JQ()
    }, DE: function (t, i, n) {
        var e = this.WE(n, i);
        return this.nq(t, i).DQ(e)
    }, dw: function () {
        return this.Lw(this.getSize().FQ(2))
    }, dE: function (t) {
        return this.kw(t).sQ(this.dw())
    }, Rw: function (t, i, n) {
        if (!n) return t;
        var e = this.nq(t, i), o = this.getSize().dQ(2), s = new T.ZQ(e.sQ(o), e.AQ(o)), r = this.FE(s, n, i);
        return r.hQ().equals([0, 0]) ? t : this._q(e.AQ(r), i)
    }, fE: function (t, i) {
        if (!i) return t;
        var n = this.Fw(), e = new T.ZQ(n.min.AQ(t), n.max.AQ(t));
        return t.AQ(this.FE(e, i))
    }, FE: function (t, i, n) {
        var e = T.cQ(this.nq(i.getNorthEast(), n), this.nq(i.getSouthWest(), n)), o = e.min.sQ(t.min),
            s = e.max.sQ(t.max), r = this.GE(o.x, -s.x), h = this.GE(o.y, -s.y);
        return new T.Point(r, h)
    }, GE: function (t, i) {
        return t   i > 0 ? Math.round(t - i) / 2 : Math.max(0, Math.ceil(t)) - Math.max(0, Math.floor(i))
    }, GW: function (t) {
        var i = this.getMinZoom(), n = this.getMaxZoom(), e = T.oQ.any3d ? this.options.AW : 1;
        return e && (t = Math.round(t / e) * e), Math.max(i, Math.min(n, t))
    }, enableAutoResize: function () {
        this.options.oW = !0, T.oq.on(window, "resize", this.dW, this)
    }, disableAutoResize: function () {
        this.options.oW = !1, T.oq.off(window, "resize", this.dW, this)
    }, getOverlays: function () {
        var t = [];
        for (var i in this.hW) "undefined" != typeof this.hW[i].options.type && t.push(this.hW[i]);
        return t
    }, setStyle: function (t) {
        t = t || "black", "black" == t ? this.Ow.style.backgroundColor = "#000000" : this.Ow.style.backgroundColor = "#466399", this.defaultMapType.getLayers()[0].on("tileload", function (t) {
            T._Q.Rq(t.tile, "tdtTileImage")
        }), this.defaultMapType.getLayers()[1].on("tileload", function (t) {
            T._Q.Rq(t.tile, "tdtTileImage")
        }), this.ZW(this.getCenter(), this.getZoom())
    }, removeStyle: function () {
        this.Ow.style.backgroundColor = "", this.defaultMapType.getLayers()[0].off("tileload"), this.defaultMapType.getLayers()[1].off("tileload"), this.ZW(this.getCenter(), this.getZoom())
    }
}), T.gE = function (t, i) {
    return new T.Map(t, i)
}, T.HE = T.m.extend({
    options: {hE: "overlayPane", pE: []}, addTo: function (t) {
        return t.addLayer(this), this
    }, Qq: function () {
        return this.JE(this.jE || this.KE)
    }, JE: function (t) {
        return t && t.removeLayer(this), this
    }, getPane: function (t) {
        return this.jE.getPane(t ? this.options[t] || t : this.options.hE)
    }, kE: function (t) {
        return this.jE.RE[T.d(t)] = this, this
    }, LE: function (t) {
        return delete this.jE.RE[T.d(t)], this
    }, lE: function (t) {
        var i = t.target;
        if (i.hasLayer(this)) {
            if (this.jE = i, this.ZE = i.ZE, this.CE) {
                var n = this.CE();
                i.on(n, this), this.rQ("remove", function () {
                    i.off(n, this)
                }, this)
            }
            this.onAdd(i), this.VE && this.jE.cE && this.jE.cE.BE(this.VE()), this.wQ("AQ"), i.wQ("layeradd", {layer: this})
        }
    }
}), T.Map.M({
    addLayer: function (t) {
        var i = T.d(t);
        return this.hW[i] ? this : (this.hW[i] = t, "undefined" != typeof this.hW[i].options.type && this.JW.push(this.hW[i]), t.KE = this, t.vE && t.vE(this), this.sE(t.lE, t), this)
    }, removeLayer: function (t) {
        var i = T.d(t);
        return this.hW[i] ? (this.CW && t.onRemove(this), t.VE && this.cE && this.cE.NE(t.VE()), delete this.hW[i], this.CW && (this.wQ("layerremove", {layer: t}), t.wQ("remove")), t.jE = t.KE = null, this) : this
    }, getLayers: function () {
        var t = [];
        for (layer in this.hW) "function" == typeof this.hW[layer].getTileUrl && "tilePane" == this.hW[layer].options.hE && t.push(this.hW[layer]);
        return t
    }, clearLayers: function () {
        for (var t = 0; t < this.jW.length; t  ) this.removeOverLay(this.jW[t]);
        for (var t = this.jW.length - 1; t >= 0; t--) this.jW.splice(t, 1);
        return this
    }, addOverLay: function (t) {
        this.addLayer(t), this.wQ("addoverlay", {addoverlay: t})
    }, removeOverLay: function (t) {
        this.removeLayer(t), this.wQ("removeoverlay", {removeoverlay: t})
    }, clearOverLays: function () {
        for (var t = 0; t < this.JW.length; t  ) this.removeOverLay(this.JW[t]);
        return this.wQ("clearoverlays"), this
    }, setMapType: function (t) {
        t && (this.defaultMapType && this.clearMapType(this.defaultMapType), this.addLayer(t), this.defaultMapType = t), this.wQ("maptypechange", {mapType: t})
    }, clearMapType: function (t) {
        t && (this.removeLayer(t), this.defaultMapType = null)
    }, addMapType: function (t) {
    }, removeMapType: function (t) {
    }, getMapType: function () {
        return this.defaultMapType
    }, hasLayer: function (t) {
        return !!t && T.d(t) in this.hW
    }, bE: function (t, i) {
        for (var n in this.hW) t.call(i, this.hW[n]);
        return this
    }, lW: function (t) {
        if (t = t ? T.S.l(t) ? t : [t] : [], 0 == t.length) this.defaultMapType = TMAP_NORMAL_MAP, t = [TMAP_NORMAL_MAP]; else for (var i = 0, n = t.length; i < n; i  ) if (t[i] instanceof T.MapType) {
            this.defaultMapType = t[i];
            break
        }
        for (var i = 0, n = t.length; i < n; i  ) this.addLayer(t[i])
    }, ME: function (t) {
        !isNaN(t.options.maxZoom) && isNaN(t.options.minZoom) || (this.KW[T.d(t)] = t, this.nE())
    }, _E: function (t) {
        var i = T.d(t);
        this.KW[i] && (delete this.KW[i], this.nE())
    }, nE: function () {
        var t = 1 / 0, i = -(1 / 0), n = this.eE();
        for (var e in this.KW) {
            var o = this.KW[e].options;
            t = void 0 === o.minZoom ? t : Math.min(t, o.minZoom), i = void 0 === o.maxZoom ? i : Math.max(i, o.maxZoom)
        }
        this.Gw = i === -(1 / 0) ? void 0 : i, this.fw = t === 1 / 0 ? void 0 : t, n !== this.eE() && this.wQ("zoomlevelschange")
    }
}), T.Overlay = T.HE.extend({
    options: {type: 0}, show: function () {
        this.getElement().style.display = "block"
    }, hide: function () {
        this.getElement().style.display = "none"
    }, isHidden: function () {
        return "none" == this.getElement().style.display
    }, CE: function () {
        var t = {zoom: this.update, viewreset: this.update};
        return t
    }, update: function () {
    }, getPane: function (t) {
        return this.jE.getPane(t ? this.options[t] || t : this.options.hE)
    }, setOptions: function (t) {
        T.S.extend(this.options, t)
    }
}), T.ScriptLoader = function () {
}, T.ScriptLoader.prototype = {
    load: function (t, i, n, e) {
        if (this.objName = "tdt_loadResult", this.win = window, this.charset = i ? i : "utf-8", this.src = t ? t : null, null != this.src) {
            this.callback = e ? T.ScriptLoader.mE(n, e) : null;
            var o = this.win;
            o[this.objName] = null, this.oScript = document.createElement("script"), this.oScript.type = "text/javascript", this.oScript.async = !0, this.oScript.charset = this.charset, this.oScript.src = this.src, this.running = !0;
            var n = this;
            this.oScript.onload = this.oScript.onreadystatechange = function () {
                this.readyState && "loaded" != this.readyState && "complete" !== this.readyState || (n.oScript.onload = n.oScript.onreadystatechange = null, n.Qe())
            }, o.document.body.insertBefore(this.oScript, o.document.body.firstChild)
        }
    }, Qe: function (t) {
        var i = this.win;
        if (i[this.objName]) {
            var n = i[this.objName];
            i[this.objName] = null, this.callback && this.callback(n)
        } else this.callback && this.callback("");
        !document.all && this.oScript && this.oScript.parentNode == i.document.body && (this.oScript.removeAttribute("src"), i.document.body.removeChild(this.oScript), delete this.oScript), this.running = !1
    }
}, T.ScriptLoader.getObject = function () {
    var t, i = i ? i : window;
    i.scriptLoader_obj || (i.scriptLoader_obj = []);
    for (var n = 0; n < i.scriptLoader_obj.length; n  ) if (0 == i.scriptLoader_obj[n].running) {
        t = i.scriptLoader_obj[n], delete t;
        break
    }
    return t ? (t.running = !0, t) : t = new T.ScriptLoader
}, T.ScriptLoader.qe = function (t) {
    return t && t.ownerDocument && t.ownerDocument.parentWindow ? t.ownerDocument.parentWindow : window
}, T.ScriptLoader.We = function (t) {
    return t || (t = []), t[0] || (t[0] = T.ScriptLoader.qe().event), t[0] && !t[0].target && t[0].srcElement && (t[0].target = t[0].srcElement), t
}, T.ScriptLoader.mE = function (t, i) {
    return function () {
        i.apply(t, T.ScriptLoader.We(arguments))
    }
}, T.bq.we = {
    R: 6378137,
    Ee: 6356752.314245179,
    bounds: T.cQ([-20037508.34279, -15496570.73972], [20037508.34279, 18764656.23138]),
    nq: function (t) {
        var i = Math.PI / 180, n = this.R, e = t.lat * i, o = this.Ee / n, s = Math.sqrt(1 - o * o),
            r = s * Math.sin(e), h = Math.tan(Math.PI / 4 - e / 2) / Math.pow((1 - r) / (1   r), s / 2);
        return e = -n * Math.log(Math.max(h, 1e-10)), new T.Point(t.lng * i * n, e)
    },
    _q: function (t) {
        for (var i, n = 180 / Math.PI, e = this.R, o = this.Ee / e, s = Math.sqrt(1 - o * o), r = Math.exp(-t.y / e), h = Math.PI / 2 - 2 * Math.atan(r), a = 0, u = .1; a < 15 && Math.abs(u) > 1e-7; a  ) i = s * Math.sin(h), i = Math.pow((1 - i) / (1   i), s / 2), u = Math.PI / 2 - 2 * Math.atan(r * i) - h, h  = u;
        return new T.dq(h * n, t.x * n / e)
    }
}, T.gq.ee = T.extend({}, T.gq.Gq, {
    code: "Re", projection: T.bq.we, WW: function () {
        var t = .5 / (Math.PI * T.bq.we.R);
        return new T.NQ(t, .5, -t, .5)
    }()
}), T.re = T.HE.extend({
    options: {
        hE: "tilePane",
        Te: 256,
        opacity: 1,
        zIndex: 1,
        te: T.oQ.mobile,
        updateWhenZooming: !0,
        Ye: 200,
        Ue: null,
        bounds: null,
        minZoom: 0,
        maxZoom: void 0,
        ue: !1,
        className: "",
        keepBuffer: 2
    }, initialize: function (t) {
        t = T.setOptions(this, t)
    }, onAdd: function () {
        this.sW(), this.Ie = {}, this.ie = {}, this.ZW(), this.Oe()
    }, vE: function (t) {
        t.ME(this)
    }, onRemove: function (t) {
        this.oe(), T._Q.Qq(this.Ow), t._E(this), this.Ow = null, this.Pe = null
    }, pe: function () {
        return this.jE && (T._Q.Wq(this.Ow), this.Ae(Math.max)), this
    }, ae: function () {
        return this.jE && (T._Q.wq(this.Ow), this.Ae(Math.min)), this
    }, VE: function () {
        return this.options.Ue
    }, getContainer: function () {
        return this.Ow
    }, setOpacity: function (t) {
        return this.options.opacity = t, this.Se(), this
    }, setZIndex: function (t) {
        return this.options.zIndex = t, this.se(), this
    }, De: function () {
        return this.de
    }, redraw: function () {
        return this.jE && (this.oe(), this.Oe()), this
    }, refresh: function () {
        this.redraw()
    }, CE: function () {
        var t = {viewprereset: this.Fe, viewreset: this.ZW, zoom: this.ZW, moveend: this.TE};
        return this.options.te || (this.fe || (this.fe = T.S.G(this.TE, this.options.Ye, this)), t.move = this.fe), this.ZE && (t.Ge = this.ge), t
    }, He: function () {
        return document.createElement("div")
    }, he: function () {
        var t = this.options.Te;
        return t instanceof T.Point ? t : new T.Point(t, t)
    }, se: function () {
        this.Ow && void 0 !== this.options.zIndex && null !== this.options.zIndex && (this.Ow.style.zIndex = this.options.zIndex)
    }, Ae: function (t) {
        for (var i, n = this.getPane().children, e = -t(-(1 / 0), 1 / 0), o = 0, s = n.length; o < s; o  ) i = n[o].style.zIndex, n[o] !== this.Ow && i && (e = t(e,  i));
        isFinite(e) && (this.options.zIndex = e   t(-1, 1), this.se())
    }, Se: function () {
        if (this.jE && !T.oQ.ielt9) {
            T._Q.setOpacity(this.Ow, this.options.opacity);
            var t =  new Date, i = !1, n = !1;
            for (var e in this.ie) {
                var o = this.ie[e];
                if (o.Je && o.loaded) {
                    var s = Math.min(1, (t - o.loaded) / 200);
                    T._Q.setOpacity(o.el, s), s < 1 ? i = !0 : (o.active && (n = !0), o.active = !0)
                }
            }
            n && !this.je && this.Ke(), i && (T.S.V(this.ke), this.ke = T.S.C(this.Se, this))
        }
    }, sW: function () {
        this.Ow || (this.Ow = T._Q.s("div", "tdt-layer "   (this.options.className || "")), this.se(), this.options.opacity < 1 && this.Se(), this.getPane().appendChild(this.Ow))
    }, Le: function () {
        var t = this.Pe, i = this.options.maxZoom;
        if (void 0 !== t) {
            for (var n in this.Ie) this.Ie[n].el.children.length || n === t ? this.Ie[n].el.style.zIndex = i - Math.abs(t - n) : (T._Q.Qq(this.Ie[n].el), this.le(n), delete this.Ie[n]);
            var e = this.Ie[t], o = this.jE;
            return e || (e = this.Ie[t] = {}, e.el = T._Q.s("div", "tdt-tile-container tdt-zoom-animated", this.Ow), e.el.style.zIndex = i, e.origin = o.nq(o._q(o.Jw()), t).hQ(), e.zoom = t, this.Ze(e, o.getCenter(), o.getZoom()), T.S.H(e.el.offsetWidth)), this.Ce = e, e
        }
    }, Ke: function () {
        if (this.jE) {
            var t, i, n = this.jE.getZoom();
            if (n > this.options.maxZoom || n < this.options.minZoom) return void this.oe();
            for (t in this.ie) i = this.ie[t], i.retain = i.Je;
            for (t in this.ie) if (i = this.ie[t], i.Je && !i.active) {
                var e = i.coords;
                this.Ve(e.x, e.y, e.z, e.z - 5) || this.ce(e.x, e.y, e.z, e.z   2)
            }
            for (t in this.ie) this.ie[t].retain || this.Be(t)
        }
    }, le: function (t) {
        for (var i in this.ie) this.ie[i].coords.z === t && this.Be(i)
    }, oe: function () {
        for (var t in this.ie) this.Be(t)
    }, Fe: function () {
        for (var t in this.Ie) T._Q.Qq(this.Ie[t].el), delete this.Ie[t];
        this.oe(), this.Pe = null
    }, Ve: function (t, i, n, e) {
        var o = Math.floor(t / 2), s = Math.floor(i / 2), r = n - 1, h = new T.Point( o,  s);
        h.z =  r;
        var a = this.ve(h), u = this.ie[a];
        return u && u.active ? (u.retain = !0, !0) : (u && u.loaded && (u.retain = !0), r > e && this.Ve(o, s, r, e))
    }, ce: function (t, i, n, e) {
        for (var o = 2 * t; o < 2 * t   2; o  ) for (var s = 2 * i; s < 2 * i   2; s  ) {
            var r = new T.Point(o, s);
            r.z = n   1;
            var h = this.ve(r), a = this.ie[h];
            a && a.active ? a.retain = !0 : (a && a.loaded && (a.retain = !0), n   1 < e && this.ce(o, s, n   1, e))
        }
    }, ZW: function (t) {
        var i = t && (t.pinch || t.Ne);
        this.be(this.jE.getCenter(), this.jE.getZoom(), i, i)
    }, ge: function (t) {
        this.be(t.center, t.zoom, !0, t.noUpdate)
    }, be: function (t, i, n, e) {
        var o = Math.round(i);
        (void 0 !== this.options.maxZoom && o > this.options.maxZoom || void 0 !== this.options.minZoom && o < this.options.minZoom) && (o = void 0);
        var s = this.options.updateWhenZooming && o !== this.Pe;
        e && !s || (this.Pe = o, this.Me && this.Me(), this.Le(), this.ne(), void 0 !== o && this.Oe(t), n || this.Ke(), this.je = !!n), this._e(t, i)
    }, _e: function (t, i) {
        for (var n in this.Ie) this.Ze(this.Ie[n], t, i)
    }, Ze: function (t, i, n) {
        var e = this.jE.cW(n, t.zoom), o = t.origin.fQ(e).sQ(this.jE.WE(i, n)).hQ();
        T.oQ.any3d ? T._Q.Uq(t.el, o, e) : T._Q.setPosition(t.el, o)
    }, ne: function () {
        var t = this.jE, i = t.options.IW, n = this.me = this.he(), e = this.Pe, o = this.jE.Kw(this.Pe);
        o && (this.QR = this.qR(o)), this.WR = i.rW && !this.options.ue && [Math.floor(t.nq([0, i.rW[0]], e).x / n.x), Math.ceil(t.nq([0, i.rW[1]], e).x / n.y)], this.wR = i.wrapLat && !this.options.ue && [Math.floor(t.nq([i.wrapLat[0], 0], e).y / n.x), Math.ceil(t.nq([i.wrapLat[1], 0], e).y / n.y)]
    }, TE: function () {
        this.jE && !this.jE.ER && this.Oe()
    }, eR: function (t) {
        var i = this.jE, n = i.ER ? Math.max(i.RR, i.getZoom()) : i.getZoom(), e = i.cW(n, this.Pe),
            o = i.nq(t, this.Pe).jQ(), s = i.getSize().dQ(2 * e);
        return new T.ZQ(o.sQ(s), o.AQ(s))
    }, Oe: function (t) {
        var i = this.jE;
        if (i) {
            var n = i.getZoom();
            if (void 0 === t && (t = i.getCenter()), void 0 !== this.Pe) {
                var e = this.eR(t), o = this.qR(e), s = o.getCenter(), r = [], h = this.options.keepBuffer,
                    a = new T.ZQ(o.CQ().sQ([h, -h]), o.VQ().AQ([h, -h]));
                for (var u in this.ie) {
                    var c = this.ie[u].coords;
                    c.z === this.Pe && a.contains(T.SQ(c.x, c.y)) || (this.ie[u].Je = !1)
                }
                if (Math.abs(n - this.Pe) > 1) return void this.be(t, n);
                for (var l = o.min.y; l <= o.max.y; l  ) for (var f = o.min.x; f <= o.max.x; f  ) {
                    var d = new T.Point(f, l);
                    if (d.z = this.Pe, this.rR(d)) {
                        var p = this.ie[this.ve(d)];
                        p ? p.Je = !0 : r.push(d)
                    }
                }
                if (r.sort(function (t, i) {
                    return t.distanceTo(s) - i.distanceTo(s)
                }), 0 !== r.length) {
                    this.de || (this.de = !0, this.wQ("loading"));
                    var m = document.createDocumentFragment();
                    for (f = 0; f < r.length; f  ) this.TR(r[f], m);
                    this.Ce.el.appendChild(m)
                }
            }
        }
    }, rR: function (t) {
        var i = this.jE.options.IW;
        if (!i.RW) {
            var n = this.QR;
            if (!i.rW && (t.x < n.min.x || t.x > n.max.x) || !i.wrapLat && (t.y < n.min.y || t.y > n.max.y)) return !1
        }
        if (!this.options.bounds) return !0;
        var e = this.tR(t);
        return T.jq(this.options.bounds).BQ(e)
    }, YR: function (t) {
        return this.tR(this.UR(t))
    }, tR: function (t) {
        var i = this.jE, n = this.he(), e = t.gQ(n), o = e.AQ(n), s = i.hq(i._q(e, t.z)), r = i.hq(i._q(o, t.z));
        return new T.Kq(s, r)
    }, ve: function (t) {
        return t.x   ":"   t.y   ":"   t.z
    }, UR: function (t) {
        var i = t.split(":"), n = new T.Point( i[0],  i[1]);
        return n.z =  i[2], n
    }, Be: function (t) {
        var i = this.ie[t];
        i && (T._Q.Qq(i.el), delete this.ie[t], this.wQ("tileunload", {tile: i.el, coords: this.UR(t)}))
    }, uR: function (t) {
        T._Q.Rq(t, "tdt-tile");
        var i = this.he();
        t.style.width = i.x   "px", t.style.height = i.y   "px", t.onselectstart = T.S.H, t.onmousemove = T.S.H, T.oQ.ielt9 && this.options.opacity < 1 && T._Q.setOpacity(t, this.options.opacity), T.oQ.android && !T.oQ.android23 && (t.style.WebkitBackfaceVisibility = "hidden")
    }, TR: function (t, i) {
        var n = this.IR(t), e = this.ve(t), o = this.He(this.iR(t), T.D(this.OR, this, t));
        this.uR(o), this.He.length < 2 && T.S.C(T.D(this.OR, this, t, null, o)), T._Q.setPosition(o, n), this.ie[e] = {
            el: o,
            coords: t,
            Je: !0
        }, i.appendChild(o), this.wQ("tileloadstart", {tile: o, coords: t})
    }, OR: function (t, i, n) {
        if (this.jE) {
            i && this.wQ("tileerror", {error: i, tile: n, coords: t});
            var e = this.ve(t);
            n = this.ie[e], n && (n.loaded =  new Date, this.jE.Nw ? (T._Q.setOpacity(n.el, 0), T.S.V(this.ke), this.ke = T.S.C(this.Se, this)) : (n.active = !0, this.Ke()), T._Q.Rq(n.el, "tdt-tile-loaded"), this.wQ("tileload", {
                tile: n.el,
                coords: t
            }), this.oR() && (this.de = !1, this.wQ("load"), T.oQ.ielt9 || !this.jE.Nw ? T.S.C(this.Ke, this) : setTimeout(T.D(this.Ke, this), 250)))
        }
    }, IR: function (t) {
        return t.gQ(this.he()).sQ(this.Ce.origin)
    }, iR: function (t) {
        var i = new T.Point(this.WR ? T.S.g(t.x, this.WR) : t.x, this.wR ? T.S.g(t.y, this.wR) : t.y);
        return i.z = t.z, i
    }, qR: function (t) {
        var i = this.he();
        return new T.ZQ(t.min.HQ(i).jQ(), t.max.HQ(i).kQ().sQ([1, 1]))
    }, oR: function () {
        for (var t in this.ie) if (!this.ie[t].loaded) return !1;
        return !0
    }
}), T.PR = function (t) {
    return new T.re(t)
}, T.TileLayer = T.re.extend({
    options: {
        minZoom: 0,
        maxZoom: 18,
        pR: "abc",
        errorTileUrl: "",
        AR: 0,
        aR: null,
        SR: !1,
        sR: !1,
        DR: !1,
        dR: !1
    }, initialize: function (t, i) {
        this.FR = "", t && (this.FR = t), i = T.setOptions(this, i), i.DR && T.oQ.retina && i.maxZoom > 0 && (i.Te = Math.floor(i.Te / 2), i.sR ? (i.AR--, i.minZoom  ) : (i.AR  , i.maxZoom--), i.minZoom = Math.max(0, i.minZoom)), "string" == typeof i.pR && (i.pR = i.pR.split("")), T.oQ.android || this.on("tileunload", this.fR)
    }, setUrl: function (t, i) {
        return this.FR = t, i || this.redraw(), this
    }, He: function (t, i) {
        var n = document.createElement("img");
        return T.oq.on(n, "load", T.D(this.GR, this, i, n)), T.oq.on(n, "error", T.D(this.gR, this, i, n)), this.options.dR && (n.dR = ""), n.Fq = "", n.src = this.getTileUrl(t), n
    }, getTileUrl: function (t) {
        var i = {r: T.oQ.retina ? "@2x" : "", s: this.HR(t), x: t.x, y: t.y, z: this.hR()};
        if (this.jE && !this.jE.options.IW.RW) {
            var n = this.QR.max.y - t.y;
            this.options.SR && (i.y = n), i["-y"] = n
        }
        return this._url_temp = this.FR, T.S.k(this._url_temp, T.extend(i, this.options))
    }, GR: function (t, i) {
        T.oQ.ielt9 ? setTimeout(T.D(t, this, null, i), 0) : t(null, i)
    }, gR: function (t, i, n) {
        var e = this.options.errorTileUrl;
        e && (i.src = e), t(n, i)
    }, he: function () {
        var t = this.jE, i = T.re.prototype.he.call(this), n = this.Pe   this.options.AR, e = this.options.aR;
        return null !== e && n > e ? i.dQ(t.cW(e, n)).hQ() : i
    }, fR: function (t) {
        t.tile.onload = null
    }, hR: function () {
        var t = this.options, i = this.Pe;
        return t.sR && (i = t.maxZoom - i), i  = t.AR, null !== t.aR ? Math.min(i, t.aR) : i
    }, HR: function (t) {
        var i = Math.abs(t.x   t.y) % this.options.pR.length;
        return this.options.pR[i]
    }, Me: function () {
        var t, i;
        for (t in this.ie) this.ie[t].coords.z !== this.Pe && (i = this.ie[t].el, i.onload = T.S.H, i.onerror = T.S.H, i.complete || (i.src = T.S.Z, T._Q.Qq(i)))
    }
}), T.JR = function (t, i) {
    return new T.TileLayer(t, i)
}, T.TileLayer.WMS = T.TileLayer.extend({
    defaultWmsParams: {
        service: "WMS",
        request: "GetMap",
        version: "1.1.1",
        layers: "",
        styles: "",
        format: "image/jpeg",
        transparent: !1
    }, options: {IW: null, srs: null, jR: !1}, initialize: function (t, i) {
        this.FR = t;
        var n = T.extend({}, this.defaultWmsParams);
        for (var e in i) e in this.options || (n[e] = i[e]);
        i = T.setOptions(this, i), this.wmsSrs = "EPSG:900913", i.srs ? "EPSG:4326" == i.srs ? (i.IW = T.gq.uW, this.wmsSrs = "EPSG:4326") : (i.IW = T.gq.UW, i.srs = "EPSG:900913", this.wmsSrs = "EPSG:900913") : i.srs = this.wmsSrs, n.width = n.height = i.Te * (i.DR && T.oQ.retina ? 2 : 1), this.KR = n
    }, onAdd: function (t) {
        this.kR = this.options.IW || t.options.IW, this.LR = parseFloat(this.KR.version);
        var i = this.LR >= 1.3 ? "IW" : "srs";
        this.KR[i] = this.kR.code, T.TileLayer.prototype.onAdd.call(this, t)
    }, getTileUrl: function (t) {
        var i = this.tR(t), n = this.kR.nq(i.Zq()), e = this.kR.nq(i.cq()),
            o = (this.LR >= 1.3 && this.kR === T.gq.uW ? [e.y, n.x, n.y, e.x] : [n.x, e.y, e.x, n.y]).join(","),
            s = T.TileLayer.prototype.getTileUrl.call(this, t);
        return s   T.S.K(this.KR, s, this.options.jR)   (this.options.jR ? "&BBOX=" : "&bbox=")   o
    }, setParams: function (t, i) {
        return T.extend(this.KR, t), i || this.redraw(), this
    }
}), T.JR.wms = function (t, i) {
    return new T.TileLayer.WMS(t, i)
}, T.TileLayer.TDT = T.TileLayer.extend({}), T.JR.tdt = function (t, i) {
    return new T.TileLayer.tdt(t, i)
}, T.lR = {
    ZR: "202206011524", CR: function (t, i, n) {
        if (window.localStorage) {
            var e, o = localStorage.getItem(t);
            null == o || 0 == o.length || this.ZR != localStorage.getItem("TDT_version") ? (document.write('<script type="text/javascript" src="https://blog.csdn.net/hui_54520/article/details/126170644'   i   '"></script>'), window.ActiveXObject ? e = new ActiveXObject("Microsoft.XMLHTTP") : window.XMLHttpRequest && (e = new XMLHttpRequest), null != e && (e.open("GET", i), e.send(null), e.onreadystatechange = function () {
                4 == e.readyState && 200 == e.status && (o = e.responseText, localStorage.setItem(t, o), localStorage.setItem("TDT_version", T.lR.ZR), null != n && n())
            })) : (T.lR.VR(o), null != n && n())
        } else T.lR.cR(i)
    }, BR: function (t, i) {
        if (T.oQ.ie8) return T.lR.vR(i), !1;
        if (window.localStorage) {
            var n, e = localStorage.getItem(t);
            null == e || 0 == e.length || this.ZR != localStorage.getItem("TDT_version") ? (window.ActiveXObject ? n = new ActiveXObject("Microsoft.XMLHTTP") : window.XMLHttpRequest && (n = new XMLHttpRequest), null != n && (n.open("GET", i), n.send(null), n.onreadystatechange = function () {
                4 == n.readyState && 200 == n.status && (e = n.responseText, localStorage.setItem(t, e), localStorage.setItem("TDT_version", T.lR.ZR), e = null == e ? "" : e, T.lR.NR(e))
            })) : T.lR.NR(e)
        } else T.lR.vR(i)
    }, VR: function (t) {
        var i = document.getElementsByTagName("HEAD").item(0), n = document.createElement("script");
        n.type = "text/javascript", n.text = t, i.appendChild(n)
    }, NR: function (t) {
        var i = document.getElementsByTagName("HEAD").item(0), n = document.createElement("style");
        n.type = "text/css", n.styleSheet ? n.styleSheet.cssText = t : n.innerHTML = t, i.appendChild(n)
    }, cR: function (t) {
        var i = document.getElementsByTagName("HEAD").item(0), n = document.createElement("script");
        n.type = "text/javascript", n.src = t, i.appendChild(n)
    }, vR: function (t) {
        var i = document.getElementsByTagName("HEAD").item(0), n = document.createElement("link");
        n.type = "text/css", n.rel = "stylesheet", n.href = t, i.appendChild(n)
    }, bR: function (t, i) {
        var n = document.createElement("script");
        i && (n.onload = n.onreadystatechange = function () {
            this.readyState && "loaded" != this.readyState && "complete" !== this.readyState || (n.onload = n.onreadystatechange = null, i())
        });
        var e = document.getElementsByTagName("head")[0];
        n.type = "text/javascript", n.src = t, e.appendChild(n)
    }, onLoadJsCallBack: function (t) {
        var i = T.ScriptLoader.getObject();
        i.load(t, "UTF-8", this, function () {
            i = null, delete i
        })
    }, MR: function (t, i) {
        if (T.oQ.ie8) return T.lR.vR(i), !1;
        if (window.localStorage) {
            var n = localStorage.getItem(t);
            null == n || 0 == n.length || this.ZR != localStorage.getItem("TDT_version") ? (T.lR.vR(i), i.indexOf("tianditu4.0") != -1 && (i = T.w.E   "/api?v=4.0&name=tianditu4.0"), T.lR.bR(i, function () {
                T.ObjectData && (n = T.ObjectData), localStorage.setItem(t, n), localStorage.setItem("TDT_version", T.lR.ZR), T.ObjectData = null
            })) : T.lR.NR(n)
        }
    }, nR: function (t, i) {
        if (T.oQ.ie8) return document.write('<script type="text/javascript" src="https://blog.csdn.net/hui_54520/article/details/126170644'   i   '"></script>'), !1;
        if (window.localStorage) {
            var n = localStorage.getItem(t);
            null == n || 0 == n.length || this.ZR != localStorage.getItem("TDT_version") ? (T.lR.cR(i), i.indexOf("components") != -1 && (i = T.w.E   "/api?v=4.0&name=components&tk="   T.w.TMAP_AUTHKEY), i.indexOf("service") != -1 && (i = T.w.E   "/api?v=4.0&name=service&tk="   T.w.TMAP_AUTHKEY), i.indexOf("military") != -1 && (i = T.w.E   "/api?v=4.0&name=military&tk="   T.w.TMAP_AUTHKEY), T.lR.bR(i, function () {
                T.ObjectData && (n = T.ObjectData), localStorage.setItem(t, n), localStorage.setItem("TDT_version", T.lR.ZR), T.ObjectData = null
            })) : T.lR.VR(n)
        }
    }
}, T.qv = function (t) {
    if (t && 0 !== t.code) {
        T = {};
        var i = "天地图密钥错误,可能是因为您提供的Key不是有效的天地图开放平台Key,或此Key未对本应用授予JavaScriptAPI权限。您可以访问如下网址了解如何获得有效的Key:http://console.tianditu.com/api/key";
        alert(i)
    }
}, T._R = T.HE.extend({
    options: {opacity: 1, Fq: "", mR: !1, Ue: null, dR: !1}, initialize: function (t, i, n) {
        this.FR = t, this.Qr = T.jq(i), T.setOptions(this, n)
    }, onAdd: function () {
        this.qr || (this.Wr(), this.options.opacity < 1 && this.Se()), this.options.mR && (T._Q.Rq(this.qr, "tdt-interactive"), this.kE(this.qr)), this.getPane().appendChild(this.qr), this.wr()
    }, onRemove: function () {
        T._Q.Qq(this.qr), this.options.mR && this.LE(this.qr)
    }, setOpacity: function (t) {
        return this.options.opacity = t, this.qr && this.Se(), this
    }, setStyle: function (t) {
        return t.opacity && this.setOpacity(t.opacity), this
    }, pe: function () {
        return this.jE && T._Q.Wq(this.qr), this
    }, ae: function () {
        return this.jE && T._Q.wq(this.qr), this
    }, setUrl: function (t) {
        return this.FR = t, this.qr && (this.qr.src = t), this
    }, setBounds: function (t) {
        return this.Qr = t, this.jE && this.wr(), this
    }, VE: function () {
        return this.options.Ue
    }, CE: function () {
        var t = {zoom: this.wr, viewreset: this.wr};
        return this.ZE && (t.Ge = this.ge), t
    }, getBounds: function () {
        return this.Qr
    }, getElement: function () {
        return this.qr
    }, Wr: function () {
        var t = this.qr = T._Q.s("img", "tdt-image-layer "   (this.ZE ? "tdt-zoom-animated" : ""));
        t.onselectstart = T.S.H, t.onmousemove = T.S.H, t.onload = T.D(this.wQ, this, "load"), this.options.dR && (t.dR = ""), t.src = this.FR, t.Fq = this.options.Fq
    }, ge: function (t) {
        var i = this.jE.cW(t.zoom), n = this.jE.DE(this.Qr.Zq(), t.zoom, t.center);
        T._Q.Uq(this.qr, n, i)
    }, wr: function () {
        var t = this.qr, i = new T.ZQ(this.jE.kw(this.Qr.Zq()), this.jE.kw(this.Qr.cq())), n = i.getSize();
        T._Q.setPosition(t, i.min), t.style.width = n.x   "px", t.style.height = n.y   "px"
    }, Se: function () {
        T._Q.setOpacity(this.qr, this.options.opacity)
    }
}), T.Er = function (t, i, n) {
    return new T._R(t, i, n)
}, T.Icon = T.c.extend({
    initialize: function (t) {
        T.setOptions(this, t)
    }, setIconUrl: function (t) {
        this.options.iconUrl = t, this.img && (this.img.src = t)
    }, getIconUrl: function (t) {
        if (this.img) return this.img.src
    }, setIconSize: function (t) {
        this.options.iconSize = t, this.img && (this.img.style.width = t.x   "px", this.img.style.height = t.y   "px")
    }, getIconSize: function () {
        return this.options.iconSize
    }, setIconAnchor: function (t) {
        this.options.iconAnchor = t, this.er(this.img, "icon")
    }, getIconAnchor: function (t) {
        return this.options.iconAnchor
    }, Rr: function (t) {
        return this.rr("icon", t)
    }, Tr: function (t) {
        return this.rr("shadow", t)
    }, rr: function (t, i) {
        var n = this.tr(t);
        return n ? (this.img = this.Yr(n, i && "IMG" === i.tagName ? i : null), this.er(this.img, t), this.img) : null
    }, er: function (t, i) {
        var n = this.options, e = n[i   "Size"];
        T.S.l(e) || e instanceof T.Point || (e = [e, e]);
        var o = T.SQ(e), s = T.SQ("shadow" === i && n.Ur || n.iconAnchor || o && o.dQ(2, !0));
        t.className = "tdt-marker-"   i   " "   (n.className || ""), s && (t.style.marginLeft = -s.x   "px", t.style.marginTop = -s.y   "px"), o && (t.style.width = o.x   "px", t.style.height = o.y   "px")
    }, Yr: function (t, i) {
        return i = i || document.createElement("img"), i.src = t, i
    }, tr: function (t) {
        return T.oQ.retina && this.options[t   "RetinaUrl"] || this.options[t   "Url"]
    }
}), T.ur = function (t) {
    return new T.Icon(t)
}, T.Icon.Default = T.Icon.extend({
    options: {
        iconSize: [25, 41],
        iconAnchor: [12, 41],
        popupAnchor: [1, -41],
        shadowSize: [41, 41]
    }, tr: function (t) {
        var i = t   "Url";
        if (this.options[i]) return this.options[i];
        var n = T.Icon.Default.imagePath;
        return n   "/marker-"   t   (T.oQ.retina && "icon" === t ? "-2x" : "")   ".png"
    }
}), T.Icon.Default.imagePath = function () {
    var t, i, n, e, o = document.getElementsByTagName("script"), s = /[\/^]tdt[\-\._]?([\w\-\._]*)\.js\??/;
    for (t = 0, i = o.length; t < i; t  ) if (n = o[t].src || "", n.match(s)) return e = n.split(s)[0], (e ? e   "/" : "")   "image"
}(), T.Icon.Default.imagePath = T.w.e, T.Marker = T.Overlay.extend({
    options: {
        icon: new T.Icon.Default,
        mR: !0,
        draggable: !1,
        Ir: !0,
        title: "",
        zIndexOffset: 0,
        opacity: 1,
        ir: !0,
        Or: 250,
        type: 2,
        hE: "markerPane",
        pE: ["click", "dblclick", "mouSEO((Search Engine Optimization))ver", "mouSEO((Search Engine Optimization))ut", "contextmenu"]
    }, initialize: function (t, i) {
        T.setOptions(this, i), this.or = T.fq(t), this.Pr = null
    }, onAdd: function (t) {
        this.ZE = this.ZE && t.options.PW, this.ZE && t.on("Ge", this.ge, this), this.pr(), this.update()
    }, onRemove: function (t) {
        this.AE && this.AE.aE() && (this.options.draggable = !0, this.AE.Ar()), this.ZE && t.off("Ge", this.ge, this), this.ar(), this.Sr(), this.Pr = null
    }, CE: function () {
        return {zoom: this.update, viewreset: this.update}
    }, getType: function () {
        return this.options.type
    }, getMap: function () {
        return this.jE
    }, getLngLat: function () {
        return this.PE()
    }, PE: function () {
        return this.or
    }, setLngLat: function (t) {
        this.sr(t)
    }, sr: function (t) {
        var i = this.or;
        return this.or = T.fq(t), this.update(), this.wQ("move", {oldLngLat: i, lnglat: this.or})
    }, setZIndexOffset: function (t) {
        return this.options.zIndexOffset = t, this.update()
    }, setIcon: function (t) {
        return this.options.icon = t, this.jE && (this.pr(), this.update()), this.Dr && this.dr(this.Dr, this.Dr.options), this
    }, getIcon: function () {
        return this.options.icon
    }, enableDragging: function () {
        this.AE.enable()
    }, disableDragging: function () {
        this.AE.disable()
    }, getElement: function () {
        return this.Fr
    }, update: function () {
        if (this.Fr) {
            var t = this.jE.kw(this.or).hQ();
            this.fr(t)
        }
        return this
    }, pr: function () {
        var t = this.options, i = "tdt-zoom-"   (this.ZE ? "animated" : "hide"), n = t.icon.Rr(this.Fr), e = !1;
        n !== this.Fr && (this.Fr && this.ar(), e = !0, t.title && (n.title = t.title), t.Fq && (n.Fq = t.Fq)), T._Q.Rq(n, i), t.Ir && (n.tabIndex = "0"), this.Fr = n, t.ir && this.on({
            mouSEO((Search Engine Optimization))ver: this.Gr,
            mouSEO((Search Engine Optimization))ut: this.gr
        });
        var o = t.icon.Tr(this.Hr), s = !1;
        o !== this.Hr && (this.Sr(), s = !0), o && T._Q.Rq(o, i), this.Hr = o, t.opacity < 1 && this.Se(), e && this.getPane().appendChild(this.Fr), this.hr(), o && s && this.getPane("_w").appendChild(this.Hr)
    }, ar: function () {
        this.options.ir && this.off({
            mouSEO((Search Engine Optimization))ver: this.Gr,
            mouSEO((Search Engine Optimization))ut: this.gr
        }), T._Q.Qq(this.Fr), this.LE(this.Fr), this.Fr = null
    }, Sr: function () {
        this.Hr && T._Q.Qq(this.Hr), this.Hr = null
    }, fr: function (t) {
        T._Q.setPosition(this.Fr, t), this.Hr && T._Q.setPosition(this.Hr, t), this.Jr = t.y   this.options.zIndexOffset, this.gr()
    }, se: function (t) {
        this.Fr.style.zIndex = this.Jr   t
    }, ge: function (t) {
        var i = this.jE.DE(this.or, t.zoom, t.center).hQ();
        this.fr(i)
    }, hr: function () {
        if (this.options.mR && (T._Q.Rq(this.Fr, "tdt-interactive"), this.kE(this.Fr), T.Kr.jr)) {
            var t = this.options.draggable;
            this.AE && (t = this.AE.aE(), this.AE.disable()), this.AE = new T.Kr.jr(this), t && this.AE.enable()
        }
    }, setOpacity: function (t) {
        return this.options.opacity = t, this.jE && this.Se(), this
    }, Se: function () {
        var t = this.options.opacity;
        T._Q.setOpacity(this.Fr, t), this.Hr && T._Q.setOpacity(this.Hr, t)
    }, Gr: function () {
        this.se(this.options.Or)
    }, gr: function () {
        this.se(0)
    }
}), T.kr = function (t, i) {
    return new T.Marker(t, i)
}, T.DivIcon = T.Icon.extend({
    options: {iconSize: [12, 12], html: !1, bgPos: null, className: "tdt-div-icon"},
    Rr: function (t) {
        var i = t && "DIV" === t.tagName ? t : document.createElement("div"), n = this.options;
        if (i.innerHTML = n.html !== !1 ? n.html : "", n.bgPos) {
            var e = T.SQ(n.bgPos);
            i.style.backgroundPosition = -e.x   "px "   -e.y   "px"
        }
        return this.er(i, "icon"), i
    },
    Tr: function () {
        return null
    }
}), T.Lr = function (t) {
    return new T.DivIcon(t)
}, T.Map.n({lr: !1}), T.Zr = T.HE.extend({
    options: {
        hE: "infoWindowPane",
        minWidth: 50,
        Cr: 300,
        maxHeight: null,
        offset: [0, 7],
        autoPan: !1,
        autoPanPadding: [5, 5],
        Vr: null,
        cr: null,
        closeButton: !0,
        Br: !0,
        vr: !1,
        Nr: !0
    }, initialize: function (t, i) {
        T.setOptions(this, t), this.br = i
    }, onAdd: function (t) {
        this.ZE = this.ZE && this.options.Nr, this.Ow || this.DW(), t.Nw && T._Q.setOpacity(this.Ow, 0), clearTimeout(this.Mr), this.getPane().appendChild(this.Ow), this.update(), t.Nw && T._Q.setOpacity(this.Ow, 1), t.wQ("nr", {_r: this}), this.wQ("open", {lnglat: this.or}), this.br && (this.br.wQ("nr", {_r: this}, !0), this.br.on("UE", T.oq.stopPropagation))
    }, mr: function (t) {
        return t.QT(this), this
    }, onRemove: function (t) {
        t.Nw ? (T._Q.setOpacity(this.Ow, 0), this.Mr = setTimeout(T.D(T._Q.Qq, T._Q, this.Ow), 200)) : T._Q.Qq(this.Ow), t.wQ("qT", {_r: this}), this.wQ("close", {
            lnglat: this.or,
            infowindow: this
        }), this.br && (this.br.wQ("qT", {_r: this}, !0), this.br.off("UE", T.oq.stopPropagation))
    }, PE: function () {
        return this.or
    }, sr: function (t) {
        return this.or = T.fq(t), this.jE && (this.WT(), this.wT()), this
    }, getContent: function () {
        return this.ET
    }, setContent: function (t) {
        return this.ET = t, this.update(), this
    }, getElement: function () {
        return this.Ow
    }, update: function () {
        this.jE && (this.Ow.style.visibility = "hidden", this.eT(), this.RT(), this.WT(), this.Ow.style.visibility = "", this.wT())
    }, CE: function () {
        var t = {zoom: this.WT, viewreset: this.WT};
        return this.ZE && (t.Ge = this.ge), ("closeOnClick" in this.options ? this.options.closeOnClick : this.jE.options.lr) && (t.UE = this.rT), this.options.vr && (t.moveend = this.wT), t
    }, isOpen: function () {
        return !!this.jE && this.jE.hasLayer(this)
    }, pe: function () {
        return this.jE && T._Q.Wq(this.Ow), this
    }, ae: function () {
        return this.jE && T._Q.wq(this.Ow), this
    }, rT: function () {
        this.jE && (this.wQ("clickclose", {}), this.jE.TT(this))
    }, DW: function () {
        var t = "tdt-infowindow",
            i = this.Ow = T._Q.s("div", t   " "   (this.options.className || "")   " tdt-zoom-"   (this.ZE ? "animated" : "hide"));
        if (this.options.closeButton) {
            var n = this.tT = T._Q.s("a", t   "-close-button", i);
            n.href = "https://blog.csdn.net/hui_54520/article/details/126170644", n.innerHTML = "&#215;", T.oq.on(n, "click", this.YT, this)
        }
        var e = this.UT = T._Q.s("div", t   "-content-wrapper", i);
        this.uT = T._Q.s("div", t   "-content", e), T.oq.iT(e).IT(this.uT).on(e, "contextmenu", T.oq.stopPropagation), this.OT = T._Q.s("div", t   "-tip-container", i), this.oT = T._Q.s("div", t   "-tip", this.OT)
    }, eT: function () {
        if (this.ET) {
            var t = this.uT, i = "function" == typeof this.ET ? this.ET(this.br || this) : this.ET;
            if ("string" == typeof i) t.innerHTML = i; else {
                for (; t.hasChildNodes();) t.removeChild(t.firstChild);
                t.appendChild(i)
            }
            this.wQ("contentupdate")
        }
    }, RT: function () {
        var t = this.uT, i = t.style;
        i.width = "", i.whiteSpace = "nowrap";
        var n = t.offsetWidth;
        n = Math.min(n, this.options.Cr), n = Math.max(n, this.options.minWidth), i.width = n   1   "px", i.whiteSpace = "", i.height = "";
        var e = t.offsetHeight, o = this.options.maxHeight, s = "tdt-infowindow-scrolled";
        o && e > o ? (i.height = o   "px", T._Q.Rq(t, s)) : T._Q.Tq(t, s), this.PT = this.Ow.offsetWidth
    }, WT: function () {
        if (this.jE) {
            var t = this.jE.kw(this.or), i = T.SQ(this.options.offset), n = this._getAnchor();
            this.ZE ? T._Q.setPosition(this.Ow, t.AQ(n)) : i = i.AQ(t).AQ(n);
            var e = this.pT = -i.y, o = this.AT = -Math.round(this.PT / 2)   i.x;
            this.Ow.style.bottom = e   "px", this.Ow.style.left = o   "px"
        }
    }, ge: function (t) {
        var i = this.jE.DE(this.or, t.zoom, t.center), n = this._getAnchor();
        T._Q.setPosition(this.Ow, i.AQ(n))
    }, wT: function () {
        if (!(!this.options.autoPan || this.jE.EE && this.jE.EE.aT)) {
            var t = this.jE, i = this.Ow.offsetHeight, n = this.PT, e = new T.Point(this.AT, -i - this.pT);
            this.ZE && e.aQ(T._Q.getPosition(this.Ow));
            var o = t.Zw(e), s = T.SQ(this.options.autoPanPadding), r = T.SQ(this.options.Vr || s),
                h = T.SQ(this.options.cr || s), a = t.getSize(), u = 0, c = 0;
            o.x   n   h.x > a.x && (u = o.x   n - a.x   h.x), o.x - u - r.x < 0 && (u = o.x - r.x), o.y   i   h.y > a.y && (c = o.y   i - a.y   h.y), o.y - c - r.y < 0 && (c = o.y - r.y), (u || c) && t.wQ("ST").panBy([u, c])
        }
    }, YT: function (t) {
        this.rT(), T.oq.uw(t)
    }, _getAnchor: function () {
        return T.SQ(this.br && this.br.sT ? this.br.sT() : [0, 0])
    }
}), T._r = function (t, i) {
    return new T.Zr(t, i)
}, T.Map.M({
    QT: function (t, i, n) {
        return t instanceof T.Zr || (t = new T.Zr(n).setContent(t)), i && t.sr(i), this.hasLayer(t) ? this : (this.Dr && this.Dr.options.Br && this.TT(), this.Dr = t, this.addLayer(t))
    }, openInfoWindow: function (t, i, n) {
        this.QT(t, i, n)
    }, closeInfoWindow: function (t) {
        this.TT(t)
    }, TT: function (t) {
        return t && t !== this.Dr || (t = this.Dr, this.Dr = null), t && this.removeLayer(t), this
    }, closeInfoWindow: function (t) {
        this.TT(t)
    }
}), T.HE.M({
    dr: function (t, i) {
        return t instanceof T.Zr ? (T.setOptions(t, i), this.Dr = t, t.br = this) : (this.Dr && !i || (this.Dr = new T.Zr(i, this)), this.Dr.setContent(t)), this.DT || (this.on({
            Qq: this.TT,
            move: this.dT
        }), this.DT = !0), this
    }, FT: function () {
        return this.Dr && (this.off({Qq: this.TT, move: this.dT}), this.DT = !1, this.Dr = null), this
    }, openInfoWindow: function (t, i) {
        this.QT(), this.Pr || (this.Pr = this.dr(t, i), this.QT())
    }, closeInfoWindow: function () {
        this.TT()
    }, QT: function (t, i) {
        if (t instanceof T.HE || (i = t, t = this), t instanceof T.fT) for (var n in this.hW) {
            t = this.hW[n];
            break
        }
        return i || (i = t.getCenter ? t.getCenter() : t.PE()), this.Dr && this.jE && (this.Dr.br = t, this.Dr.update(), this.jE.QT(this.Dr, i)), this
    }, TT: function () {
        return this.Dr && this.Dr.rT(), this
    }, GT: function (t) {
        return this.Dr && (this.Dr.jE ? this.TT() : this.QT(t)), this
    }, gT: function () {
        return this.Dr.isOpen()
    }, isOpen: function () {
        this.gT()
    }, HT: function (t) {
        return this.Dr && this.Dr.setContent(t), this
    }, hT: function () {
        return this.Dr
    }, JT: function (t) {
        var i = t.layer || t.target;
        if (this.Dr && this.jE) return T.oq.uw(t), i instanceof T.jT ? void this.QT(t.layer || t.target, t.KT) : void (this.jE.hasLayer(this.Dr) && this.Dr.br === i ? this.TT() : this.QT(i, t.KT))
    }, dT: function (t) {
        this.Dr.sr(t.KT)
    }
}), T.Marker.M({
    sT: function () {
        return this.options.icon.options.popupAnchor || (this.options.icon.options.iconAnchor ? T.S.l(this.options.icon.options.iconAnchor) ? this.options.icon.options.popupAnchor = [0, -this.options.icon.options.iconAnchor[1]] : this.options.icon.options.popupAnchor = [0, -this.options.icon.options.iconAnchor.y] : this.options.icon.options.popupAnchor = [0, 0]), this.options.icon.options.popupAnchor
    }
}), T.InfoWindow = T.Zr.extend({
    options: {type: 3}, initialize: function (t, i, n) {
        this.ET = t, T.setOptions(this, i), this.br = n
    }, getType: function () {
        return this.options.type
    }, setMinWidth: function (t) {
        this.options.minWidth = t, this.update()
    }, setMaxWidth: function (t) {
        this.options.Cr = t, this.update()
    }, setMaxHeight: function (t) {
        this.options.maxHeight = t, this.update()
    }, setLngLat: function (t) {
        this.sr(t)
    }, setOffset: function (t) {
        this.options.offset = t, this.update()
    }, getOffset: function () {
        return this.options.offset
    }, closeInfoWindow: function () {
        this.rT()
    }
}), T.LayerGroup = T.HE.extend({
    initialize: function (t) {
        this.hW = {};
        var i, n;
        if (t) for (i = 0, n = t.length; i < n; i  ) this.addLayer(t[i])
    }, addLayer: function (t) {
        var i = this.getLayerId(t);
        return this.hW[i] = t, this.jE && this.jE.addLayer(t), this
    }, removeLayer: function (t) {
        var i = t in this.hW ? t : this.getLayerId(t);
        return this.jE && this.hW[i] && this.jE.removeLayer(this.hW[i]), delete this.hW[i], this
    }, hasLayer: function (t) {
        return !!t && (t in this.hW || this.getLayerId(t) in this.hW)
    }, clearLayers: function () {
        for (var t in this.hW) this.removeLayer(this.hW[t]);
        return this
    }, kT: function (t) {
        var i, n, e = Array.prototype.slice.call(arguments, 1);
        for (i in this.hW) n = this.hW[i], n[t] && n[t].apply(n, e);
        return this
    }, onAdd: function (t) {
        for (var i in this.hW) t.addLayer(this.hW[i])
    }, onRemove: function (t) {
        for (var i in this.hW) t.removeLayer(this.hW[i])
    }, bE: function (t, i) {
        for (var n in this.hW) t.call(i, this.hW[n]);
        return this
    }, getLayer: function (t) {
        return this.hW[t]
    }, getLayers: function () {
        var t = [];
        for (var i in this.hW) t.push(this.hW[i]);
        return t
    }, setZIndex: function (t) {
        return this.kT("setZIndex", t)
    }, getLayerId: function (t) {
        return T.d(t)
    }
}), T.LT = function (t) {
    return new T.LayerGroup(t)
}, T.fT = T.LayerGroup.extend({
    addLayer: function (t) {
        return this.hasLayer(t) ? this : (t.TQ(this), T.LayerGroup.prototype.addLayer.call(this, t), this.wQ("layeradd", {layer: t}))
    }, removeLayer: function (t) {
        return this.hasLayer(t) ? (t in this.hW && (t = this.hW[t]), t.tQ(this), T.LayerGroup.prototype.removeLayer.call(this, t), this.wQ("layerremove", {layer: t})) : this
    }, setStyle: function (t) {
        return this.kT("setStyle", t)
    }, pe: function () {
        return this.kT("pe")
    }, ae: function () {
        return this.kT("ae")
    }, getBounds: function () {
        var t = new T.Kq;
        for (var i in this.hW) {
            var n = this.hW[i];
            t.extend(n.getBounds ? n.getBounds() : n.PE())
        }
        return t
    }
}), T.lT = function (t) {
    return new T.fT(t)
}, T.MapType = T.LayerGroup.extend({
    initialize: function (t, i, n) {
        this.name = i, this.hW = {};
        var e, o;
        if (t) for (e = 0, o = t.length; e < o; e  ) this.addLayer(t[e])
    }, getName: function () {
        return this.name
    }
}), T.Map.M({
    LW: function (t) {
        var i = new T.TileLayer("", {minZoom: 1, maxZoom: 18});
        i.getTileUrl = function (t) {
            return 0 == T.gq.EW ? T.w.t()   "TILECOL="   t.x   "&TILEROW="   t.y   "&TILEMATRIX="   t.z : T.w.r()   "TILECOL="   t.x   "&TILEROW="   t.y   "&TILEMATRIX="   t.z
        };
        var n = new T.TileLayer("", {minZoom: 1, maxZoom: 18});
        n.getTileUrl = function (t) {
            return 0 == T.gq.EW ? T.w.Y()   "TILECOL="   t.x   "&TILEROW="   t.y   "&TILEMATRIX="   t.z : T.w.T()   "TILECOL="   t.x   "&TILEROW="   t.y   "&TILEMATRIX="   t.z
        }, TMAP_NORMAL_MAP = new T.MapType([i, n], "TMAP_NORMAL_MAP", {a: 1});
        var e = new T.TileLayer("", {minZoom: 1, maxZoom: 18});
        e.getTileUrl = function (t) {
            return 0 == T.gq.EW ? T.w.I()   "TILECOL="   t.x   "&TILEROW="   t.y   "&TILEMATRIX="   t.z : T.w.U()   "TILECOL="   t.x   "&TILEROW="   t.y   "&TILEMATRIX="   t.z
        };
        var o = new T.TileLayer("", {minZoom: 1, maxZoom: 18});
        o.getTileUrl = function (t) {
            return 0 == T.gq.EW ? T.w.i()   "TILECOL="   t.x   "&TILEROW="   t.y   "&TILEMATRIX="   t.z : T.w.u()   "TILECOL="   t.x   "&TILEROW="   t.y   "&TILEMATRIX="   t.z
        }, TMAP_SATELLITE_MAP = new T.MapType([e], "TMAP_SATELLITE_MAP"), TMAP_HYBRID_MAP = new T.MapType([e, o], "TMAP_HYBRID_MAP");
        var s = new T.TileLayer("", {minZoom: 1, maxZoom: 18});
        s.getTileUrl = function (t) {
            return 0 == T.gq.EW ? T.w.P()   "TILECOL="   t.x   "&TILEROW="   t.y   "&TILEMATRIX="   t.z : T.w.O()   "TILECOL="   t.x   "&TILEROW="   t.y   "&TILEMATRIX="   t.z
        };
        var r = new T.TileLayer("", {minZoom: 1, maxZoom: 18});
        r.getTileUrl = function (t) {
            return 0 == T.gq.EW ? T.w.p()   "TILECOL="   t.x   "&TILEROW="   t.y   "&TILEMATRIX="   t.z : T.w.o()   "TILECOL="   t.x   "&TILEROW="   t.y   "&TILEMATRIX="   t.z
        }, TMAP_TERRAIN_MAP = new T.MapType([s], "TMAP_TERRAIN_MAP"), TMAP_TERRAIN_HYBRID_MAP = new T.MapType([s, r], "TMAP_TERRAIN_HYBRID_MAP")
    }
}), T.ZT = T.HE.extend({
    options: {MW: .1}, initialize: function (t) {
        T.setOptions(this, t), T.d(this)
    }, onAdd: function () {
        this.Ow || (this.sW(), this.ZE && T._Q.Rq(this.Ow, "tdt-zoom-animated")), this.getPane().appendChild(this.Ow), this.Oe()
    }, onRemove: function () {
        T._Q.Qq(this.Ow)
    }, CE: function () {
        var t = {viewreset: this.wr, zoom: this.CT, moveend: this.Oe};
        return this.ZE && (t.Ge = this.VT), t
    }, VT: function (t) {
        this.cT(t.center, t.zoom)
    }, CT: function () {
        this.cT(this.jE.getCenter(), this.jE.getZoom())
    }, cT: function (t, i) {
        var n = this.jE.cW(i, this.fW), e = T._Q.getPosition(this.Ow),
            o = this.jE.getSize().fQ(.5   this.options.MW), s = this.jE.nq(this.BT, i), r = this.jE.nq(t, i),
            h = r.sQ(s), a = o.fQ(-n).AQ(e).AQ(o).sQ(h);
        T.oQ.any3d ? T._Q.Uq(this.Ow, a, n) : T._Q.setPosition(this.Ow, a)
    }, wr: function () {
        this.Oe(), this.cT(this.BT, this.fW)
    }, Oe: function () {
        var t = this.options.MW, i = this.jE.getSize(), n = this.jE.Lw(i.fQ(-t)).hQ();
        this.Qr = new T.ZQ(n, n.AQ(i.fQ(1   2 * t)).hQ()), this.BT = this.jE.getCenter(), this.fW = this.jE.getZoom()
    }
}), T.Map.M({
    vT: function (t) {
        var i = t.options.iW || this.NT(t.options.hE) || this.options.iW || this.bT;
        return i || (i = this.bT = this.options._T && T.nT() || T.MT()), this.hasLayer(i) || this.addLayer(i), i
    }, NT: function (t) {
        if ("overlayPane" === t || void 0 === t) return !1;
        var i = this.nw[t];
        return void 0 === i && (i = T.SVG && T.MT({hE: t}) || T.mT && T.nT({hE: t}), this.nw[t] = i), i
    }
}), T.jT = T.Overlay.extend({
    options: {
        stroke: !0,
        color: "#0000FF",
        weight: 3,
        opacity: .5,
        Qt: "round",
        qt: "round",
        dashArray: null,
        dashOffset: null,
        fill: !1,
        fillColor: null,
        fillOpacity: .2,
        Wt: "evenodd",
        mR: !0
    }, vE: function (t) {
        this.bT = t.vT(this)
    }, onAdd: function () {
        this.bT.wt(this), this.wr(), this.bT.Et(this)
    }, onRemove: function () {
        this.bT.et(this)
    }, CE: function () {
        return {zoomend: this.Rt, moveend: this.Oe, viewreset: this.wr}
    }, redraw: function () {
        return this.jE && this.bT.rt(this), this
    }, setStyle: function (t) {
        return T.setOptions(this, t), this.bT && this.bT.Tt(this), this
    }, pe: function () {
        return this.bT && this.bT.Gr(this), this
    }, ae: function () {
        return this.bT && this.bT.tt(this), this
    }, getElement: function () {
        return this.Yt
    }, wr: function () {
        this.Rt(), this.Oe()
    }, Ut: function () {
        return (this.options.stroke ? this.options.weight / 2 : 0)   (T.oQ.touch ? 10 : 0)
    }
}), T.ut = {
    It: function (t, i) {
        if (!i || !t.length) return t.slice();
        var n = i * i;
        return t = this.it(t, n), t = this.Ot(t, n)
    }, ot: function (t, i, n) {
        return Math.sqrt(this.Pt(t, i, n, !0))
    }, pt: function (t, i, n) {
        return this.Pt(t, i, n)
    }, Ot: function (t, i) {
        var n = t.length, e = typeof Uint8Array != void 0   "" ? Uint8Array : Array, o = new e(n);
        o[0] = o[n - 1] = 1, this.At(t, o, i, 0, n - 1);
        var s, r = [];
        for (s = 0; s < n; s  ) o[s] && r.push(t[s]);
        return r
    }, At: function (t, i, n, e, o) {
        var s, r, h, a = 0;
        for (r = e   1; r <= o - 1; r  ) h = this.Pt(t[r], t[e], t[o], !0), h > a && (s = r, a = h);
        a > n && (i[s] = 1, this.At(t, i, n, e, s), this.At(t, i, n, s, o))
    }, it: function (t, i) {
        for (var n = [t[0]], e = 1, o = 0, s = t.length; e < s; e  ) this.at(t[e], t[o]) > i && (n.push(t[e]), o = e);
        return o < s - 1 && n.push(t[s - 1]), n
    }, St: function (t, i, n, e, o) {
        var s, r, h, a = e ? this.st : this.Dt(t, n), u = this.Dt(i, n);
        for (this.st = u; ;) {
            if (!(a | u)) return [t, i];
            if (a & u) return !1;
            s = a || u, r = this.dt(t, i, s, n, o), h = this.Dt(r, n), s === a ? (t = r, a = h) : (i = r, u = h)
        }
    }, dt: function (t, i, n, e, o) {
        var s, r, h = i.x - t.x, a = i.y - t.y, u = e.min, c = e.max;
        return 8 & n ? (s = t.x   h * (c.y - t.y) / a, r = c.y) : 4 & n ? (s = t.x   h * (u.y - t.y) / a, r = u.y) : 2 & n ? (s = c.x, r = t.y   a * (c.x - t.x) / h) : 1 & n && (s = u.x, r = t.y   a * (u.x - t.x) / h), new T.Point(s, r, o)
    }, Dt: function (t, i) {
        var n = 0;
        return t.x < i.min.x ? n |= 1 : t.x > i.max.x && (n |= 2), t.y < i.min.y ? n |= 4 : t.y > i.max.y && (n |= 8), n
    }, at: function (t, i) {
        var n = i.x - t.x, e = i.y - t.y;
        return n * n   e * e
    }, Pt: function (t, i, n, e) {
        var o, s = i.x, r = i.y, h = n.x - s, a = n.y - r, u = h * h   a * a;
        return u > 0 && (o = ((t.x - s) * h   (t.y - r) * a) / u, o > 1 ? (s = n.x, r = n.y) : o > 0 && (s  = h * o, r  = a * o)), h = t.x - s, a = t.y - r, e ? h * h   a * a : new T.Point(s, r)
    }
}, T.Polyline = T.jT.extend({
    options: {Ft: 1, type: 4, ft: !1}, initialize: function (t, i) {
        T.setOptions(this, i), this.Gt(t), this.gt = "solid", this.options.lineStyle && this.setLineStyle(this.options.lineStyle)
    }, getType: function () {
        return this.options.type
    }, Ht: function () {
        return this.ht
    }, getLngLats: function () {
        return this.Ht()
    }, Jt: function (t) {
        return this.Gt(t), this.redraw()
    }, setLngLats: function (t) {
        this.Jt(t)
    }, setColor: function (t) {
        this.setStyle({color: t})
    }, getColor: function () {
        return this.options.color
    }, setWeight: function (t) {
        this.setStyle({weight: t})
    }, getWeight: function () {
        return this.options.weight
    }, setOpacity: function (t) {
        this.setStyle({opacity: t})
    }, getOpacity: function () {
        return this.options.opacity
    }, setLineStyle: function (t) {
        "dashed" == t ? (this.gt = "dashed", T.oQ.ie8 || T.oQ.ie7 ? this.setStyle({dashArray: "2,2"}) : this.setStyle({dashArray: "4"})) : (this.gt = "solid", this.setStyle({dashArray: ""}))
    }, getLineStyle: function () {
        return this.gt
    }, getMap: function () {
        return this.jE
    }, enableEdit: function () {
        this.jt && this.jt.enable()
    }, disableEdit: function () {
        this.jt && this.jt.disable()
    }, isEditable: function () {
        return this.jt.aE()
    }, Kt: function () {
        return !this.ht.length
    }, kt: function (t) {
        for (var i, n, e = 1 / 0, o = null, s = T.ut.Pt, r = 0, h = this.Lt.length; r < h; r  ) for (var a = this.Lt[r], u = 1, c = a.length; u < c; u  ) {
            i = a[u - 1], n = a[u];
            var l = s(t, i, n, !0);
            l < e && (e = l, o = s(t, i, n))
        }
        return o && (o.distance = Math.sqrt(e)), o
    }, getCenter: function () {
        var t, i, n, e, o, s, r, h = this.lt[0], a = h.length;
        if (!a) return null;
        for (t = 0, i = 0; t < a - 1; t  ) i  = h[t].distanceTo(h[t   1]) / 2;
        if (0 === i) return this.jE.Dw(h[0]);
        for (t = 0, e = 0; t < a - 1; t  ) if (o = h[t], s = h[t   1], n = o.distanceTo(s), e  = n, e > i) return r = (e - i) / n, this.jE.Dw([s.x - r * (s.x - o.x), s.y - r * (s.y - o.y)])
    }, getBounds: function () {
        return this.Qr
    }, Zt: function (t, i) {
        return i = i || this.Ct(), t = T.fq(t), i.push(t), this.Qr.extend(t), this.redraw()
    }, Gt: function (t) {
        this.Qr = new T.Kq, this.ht = this.Vt(t)
    }, Ct: function () {
        return T.Polyline.ct(this.ht) ? this.ht : this.ht[0]
    }, Vt: function (t) {
        for (var i = [], n = T.Polyline.ct(t), e = 0, o = t.length; e < o; e  ) n ? (i[e] = T.fq(t[e]), this.Qr.extend(i[e])) : i[e] = this.Vt(t[e]);
        return i
    }, Rt: function () {
        var t = new T.ZQ;
        this.lt = [], this.Bt(this.ht, this.lt, t);
        var i = this.Ut(), n = new T.Point(i, i);
        this.Qr.vQ() && t.vQ() && (t.min.DQ(n), t.max.aQ(n), this.vt = t)
    }, Bt: function (t, i, n) {
        var e, o, s = t[0] instanceof T.dq, r = t.length;
        if (s) {
            for (o = [], e = 0; e < r; e  ) o[e] = this.jE.kw(t[e]), n.extend(o[e]);
            i.push(o)
        } else for (e = 0; e < r; e  ) this.Bt(t[e], i, n)
    }, Nt: function () {
        var t = this.bT.Qr;
        if (this.Lt = [], this.vt && this.vt.intersects(t)) {
            if (this.options.ft) return void (this.Lt = this.lt);
            var i, n, e, o, s, r, h, a = this.Lt;
            for (i = 0, e = 0, o = this.lt.length; i < o; i  ) for (h = this.lt[i], n = 0, s = h.length; n < s - 1; n  ) r = T.ut.St(h[n], h[n   1], t, n, !0), r && (a[e] = a[e] || [], a[e].push(r[0]), r[1] === h[n   1] && n !== s - 2 || (a[e].push(r[1]), e  ))
        }
    }, bt: function () {
        for (var t = this.Lt, i = this.options.Ft, n = 0, e = t.length; n < e; n  ) t[n] = T.ut.It(t[n], i)
    }, Oe: function () {
        this.jE && (this.Nt(), this.bt(), this.rt())
    }, rt: function () {
        this.bT.Mt(this)
    }, show: function () {
        this.getElement().style.display = "block"
    }, hide: function () {
        this.getElement().style.display = "none"
    }, isHidden: function () {
        return "none" == this.getElement().style.display
    }
}), T.nt = function (t, i) {
    return new T.Polyline(t, i)
}, T.Polyline.ct = function (t) {
    return !T.S.l(t[0]) || "object" != typeof t[0][0] && "undefined" != typeof t[0][0]
}, T._t = {}, T._t.mt = function (t, i, n) {
    var e, o, s, r, h, a, u, c, l, f = [1, 4, 2, 8], d = T.ut;
    for (o = 0, u = t.length; o < u; o  ) t[o]._code = d.Dt(t[o], i);
    for (r = 0; r < 4; r  ) {
        for (c = f[r], e = [], o = 0, u = t.length, s = u - 1; o < u; s = o  ) h = t[o], a = t[s], h._code & c ? a._code & c || (l = d.dt(a, h, c, i, n), l._code = d.Dt(l, i), e.push(l)) : (a._code & c && (l = d.dt(a, h, c, i, n), l._code = d.Dt(l, i), e.push(l)), e.push(h));
        t = e
    }
    return t
}, T.Polygon = T.Polyline.extend({
    options: {fill: !0, type: 5}, setFillColor: function (t) {
        this.setStyle({fillColor: t})
    }, getFillColor: function () {
        return this.options.fillColor
    }, setFillOpacity: function (t) {
        this.setStyle({fillOpacity: t})
    }, getFillOpacity: function () {
        return this.options.fillOpacity
    }, Kt: function () {
        return !this.ht.length || !this.ht[0].length
    }, getCenter: function () {
        var t, i, n, e, o, s, r, h, a, u = this.lt[0], c = u.length;
        if (!c) return null;
        for (s = r = h = 0, t = 0, i = c - 1; t < c; i = t  ) n = u[t], e = u[i], o = n.y * e.x - e.y * n.x, r  = (n.x   e.x) * o, h  = (n.y   e.y) * o, s  = 3 * o;
        return a = 0 === s ? u[0] : [r / s, h / s], this.jE.Dw(a)
    }, Vt: function (t) {
        var i = T.Polyline.prototype.Vt.call(this, t), n = i.length;
        return n >= 2 && i[0] instanceof T.dq && i[0].equals(i[n - 1]) && i.pop(), i
    }, Gt: function (t) {
        T.Polyline.prototype.Gt.call(this, t), T.Polyline.ct(this.ht) && (this.ht = [this.ht])
    }, Ct: function () {
        return T.Polyline.ct(this.ht[0]) ? this.ht[0] : this.ht[0][0]
    }, Nt: function () {
        var t = this.bT.Qr, i = this.options.weight, n = new T.Point(i, i);
        if (t = new T.ZQ(t.min.sQ(n), t.max.AQ(n)), this.Lt = [], this.vt && this.vt.intersects(t)) {
            if (this.options.ft) return void (this.Lt = this.lt);
            for (var e, o = 0, s = this.lt.length; o < s; o  ) e = T._t.mt(this.lt[o], t, !0), e.length && this.Lt.push(e)
        }
    }, rt: function () {
        this.bT.Mt(this, !0)
    }
}), T.QY = function (t, i) {
    return new T.Polygon(t, i)
}, T.Rectangle = T.Polygon.extend({
    options: {type: 6}, initialize: function (t, i) {
        T.Polygon.prototype.initialize.call(this, this.qY(t), i)
    }, setBounds: function (t) {
        return this.Jt(this.qY(t))
    }, qY: function (t) {
        return t = T.jq(t), [t.getSouthWest(), t.Zq(), t.getNorthEast(), t.cq()]
    }
}), T.WY = function (t, i) {
    return new T.Rectangle(t, i)
}, T.wY = T.jT.extend({
    options: {fill: !0, radius: 10, type: 8}, initialize: function (t, i) {
        T.setOptions(this, i), this.or = T.fq(t), this.EY = this.options.radius
    }, sr: function (t) {
        return this.or = T.fq(t), this.redraw(), this.wQ("move", {KT: this.or})
    }, PE: function () {
        return this.or
    }, setRadius: function (t) {
        return this.options.radius = this.EY = t, this.redraw()
    }, getRadius: function () {
        return this.EY
    }, setStyle: function (t) {
        var i = t && t.radius || this.EY;
        return T.jT.prototype.setStyle.call(this, t), this.setRadius(i), this
    }, Rt: function () {
        this.eY = this.jE.kw(this.or), this.RY()
    }, RY: function () {
        var t = this.EY, i = this.rY || t, n = this.Ut(), e = [t   n, i   n];
        this.vt = new T.ZQ(this.eY.sQ(e), this.eY.AQ(e))
    }, Oe: function () {
        this.jE && this.rt()
    }, rt: function () {
        this.bT.TY(this)
    }, tY: function () {
        return this.EY && !this.bT.Qr.intersects(this.vt)
    }
}), T.YY = function (t, i) {
    return new T.wY(t, i)
}, T.Circle = T.wY.extend({
    initialize: function (t, i, n) {
        "number" == typeof i && (i = T.extend({}, n, {radius: i})), T.setOptions(this, i), this.or = T.fq(t), isNaN(this.options.radius), this.UY = this.options.radius, this.gt = "solid", this.options.lineStyle && this.setLineStyle(this.options.lineStyle)
    }, getType: function () {
        return this.options.type
    }, setCenter: function (t) {
        this.sr(t)
    }, getCenter: function () {
        return this.PE()
    }, setColor: function (t) {
        this.setStyle({color: t})
    }, getColor: function () {
        return this.options.color
    }, setWeight: function (t) {
        this.setStyle({weight: t})
    }, getWeight: function () {
        return this.options.weight
    }, setOpacity: function (t) {
        this.setStyle({opacity: t})
    }, getOpacity: function () {
        return this.options.opacity
    }, setFillColor: function (t) {
        this.setStyle({fillColor: t})
    }, getFillColor: function () {
        return this.options.fillColor
    }, setFillOpacity: function (t) {
        this.setStyle({fillOpacity: t})
    }, getFillOpacity: function () {
        return this.options.fillOpacity
    }, setLineStyle: function (t) {
        "dashed" == t ? (this.gt = "dashed", T.oQ.ie8 || T.oQ.ie7 ? this.setStyle({dashArray: "2,2"}) : this.setStyle({dashArray: "4"})) : (this.gt = "solid", this.setStyle({dashArray: ""}))
    }, getLineStyle: function () {
        return this.gt
    }, enableEdit: function () {
        this.jt && this.jt.enable()
    }, isEditable: function () {
        return this.jt.aE()
    }, disableEdit: function () {
        this.jt && this.jt.disable()
    }, getMap: function () {
        return this.jE
    }, setRadius: function (t) {
        return this.UY = t, this.redraw()
    }, getRadius: function () {
        return this.UY
    }, getBounds: function () {
        var t = [this.EY, this.rY || this.EY];
        return new T.Kq(this.jE.Dw(this.eY.sQ(t)), this.jE.Dw(this.eY.AQ(t)))
    }, setStyle: T.jT.prototype.setStyle, Rt: function () {
        var t = this.or.lng, i = this.or.lat, n = this.jE, e = n.options.IW;
        if (e.distance === T.gq.Gq.distance) {
            var o = Math.PI / 180, s = this.UY / T.gq.Gq.R / o, r = n.nq([i   s, t]), h = n.nq([i - s, t]),
                a = r.AQ(h).dQ(2), u = n._q(a).lat,
                c = Math.acos((Math.cos(s * o) - Math.sin(i * o) * Math.sin(u * o)) / (Math.cos(i * o) * Math.cos(u * o))) / o;
            (isNaN(c) || 0 === c) && (c = s / Math.cos(Math.PI / 180 * i)), this.eY = a.sQ(n.Jw()), this.EY = isNaN(c) ? 0 : Math.max(Math.round(a.x - n.nq([u, t - c]).x), 1), this.rY = Math.max(Math.round(a.y - r.y), 1)
        } else {
            var l = e._q(e.nq(this.or).sQ([this.UY, 0]));
            this.eY = n.kw(this.or), this.EY = this.eY.x - n.kw(l).x
        }
        this.RY()
    }
}), T.uY = function (t, i, n) {
    return new T.Circle(t, i, n)
}, T.SVG = T.ZT.extend({
    CE: function () {
        var t = T.ZT.prototype.CE.call(this);
        return t.zoomstart = this.IY, t
    }, sW: function () {
        this.Ow = T.SVG.s("svg"), this.Ow.setAttribute("pointer-events", "none"), this._rootGroup = T.SVG.s("g"), this.Ow.appendChild(this._rootGroup)
    }, IY: function () {
        this.Oe()
    }, Oe: function () {
        if (!this.jE.ER || !this.Qr) {
            T.ZT.prototype.Oe.call(this);
            var t = this.Qr, i = t.getSize(), n = this.Ow;
            this._svgSize && this._svgSize.equals(i) || (this._svgSize = i, n.setAttribute("width", i.x), n.setAttribute("height", i.y)), T._Q.setPosition(n, t.min), n.setAttribute("viewBox", [t.min.x, t.min.y, i.x, i.y].join(" "))
        }
    }, wt: function (t) {
        var i = t.Yt = T.SVG.s("path");
        t.options.className && T._Q.Rq(i, t.options.className), t.options.mR && T._Q.Rq(i, "tdt-interactive"), this.Tt(t)
    }, Et: function (t) {
        this._rootGroup.appendChild(t.Yt), t.kE(t.Yt)
    }, et: function (t) {
        T._Q.Qq(t.Yt), t.LE(t.Yt)
    }, rt: function (t) {
        t.Rt(), t.Oe()
    }, Tt: function (t) {
        var i = t.Yt, n = t.options;
        i && (n.stroke ? (i.setAttribute("stroke", n.color), i.setAttribute("stroke-opacity", n.opacity), i.setAttribute("stroke-width", n.weight), i.setAttribute("stroke-linecap", n.Qt), i.setAttribute("stroke-linejoin", n.qt), n.dashArray ? i.setAttribute("stroke-dasharray", n.dashArray) : i.removeAttribute("stroke-dasharray"), n.dashOffset ? i.setAttribute("stroke-dashoffset", n.dashOffset) : i.removeAttribute("stroke-dashoffset")) : i.setAttribute("stroke", "none"), n.fill ? (i.setAttribute("fill", n.fillColor || n.color), i.setAttribute("fill-opacity", n.fillOpacity), i.setAttribute("fill-rule", n.Wt || "evenodd")) : i.setAttribute("fill", "none"))
    }, Mt: function (t, i) {
        this.iY(t, T.SVG.OY(t.Lt, i))
    }, TY: function (t) {
        var i = t.eY, n = t.EY, e = t.rY || n, o = "a"   n   ","   e   " 0 1,0 ",
            s = t.tY() ? "M0 0" : "M"   (i.x - n)   ","   i.y   o   2 * n   ",0 "   o   2 * -n   ",0 ";
        this.iY(t, s)
    }, iY: function (t, i) {
        t.Yt.setAttribute("d", i)
    }, Gr: function (t) {
        T._Q.Wq(t.Yt)
    }, tt: function (t) {
        T._Q.wq(t.Yt)
    }
}), T.extend(T.SVG, {
    s: function (t) {
        return document.createElementNS("http://www.w3.org/2000/svg", t)
    }, OY: function (t, i) {
        var n, e, o, s, r, h, a = "";
        for (n = 0, o = t.length; n < o; n  ) {
            for (r = t[n], e = 0, s = r.length; e < s; e  ) h = r[e], a  = (e ? "L" : "M")   h.x   " "   h.y;
            a  = i ? T.oQ.MT ? "z" : "x" : ""
        }
        return a || "M0 0"
    }
}), T.oQ.MT = !(!document.createElementNS || !T.SVG.s("svg").createSVGRect),T.MT = function (t) {
    return T.oQ.MT || T.oQ.vml ? new T.SVG(t) : null
},T.oQ.vml = !T.oQ.MT && function () {
    try {
        var t = document.createElement("div");
        t.innerHTML = '<v:shape adj="1"/>';
        var i = t.firstChild;
        return i.style.behavior = "url(#default#VML)", i && "object" == typeof i.adj
    } catch (AO) {
        return !1
    }
}(),T.SVG.M(T.oQ.vml ? {
    sW: function () {
        this.Ow = T._Q.s("div", "tdt-vml-container")
    }, Oe: function () {
        this.jE.ER || T.ZT.prototype.Oe.call(this)
    }, wt: function (t) {
        var i = t.Ow = T.SVG.s("shape");
        T._Q.Rq(i, "tdt-vml-shape "   (this.options.className || "")), i.coordsize = "1 1", t.Yt = T.SVG.s("path"), i.appendChild(t.Yt), this.Tt(t)
    }, Et: function (t) {
        var i = t.Ow;
        this.Ow.appendChild(i), t.options.mR && t.kE(i)
    }, et: function (t) {
        var i = t.Ow;
        T._Q.Qq(i), t.LE(i)
    }, Tt: function (t) {
        var i = t._stroke, n = t._fill, e = t.options, o = t.Ow;
        o.stroked = !!e.stroke, o.filled = !!e.fill, e.stroke ? (i || (i = t._stroke = T.SVG.s("stroke")), o.appendChild(i), i.weight = e.weight   "px", i.color = e.color, i.opacity = e.opacity, e.dashArray ? i.dashStyle = T.S.l(e.dashArray) ? e.dashArray.join(" ") : e.dashArray.replace(/( *, *)/g, " ") : i.dashStyle = "", i.endcap = e.Qt.replace("butt", "flat"), i.joinstyle = e.qt) : i && (o.removeChild(i), t._stroke = null), e.fill ? (n || (n = t._fill = T.SVG.s("fill")), o.appendChild(n), n.color = e.fillColor || e.color, n.opacity = e.fillOpacity) : n && (o.removeChild(n), t._fill = null)
    }, TY: function (t) {
        var i = t.eY.hQ(), n = Math.round(t.EY), e = Math.round(t.rY || n);
        this.iY(t, t.tY() ? "M0 0" : "AL "   i.x   ","   i.y   " "   n   ","   e   " 0,23592600")
    }, iY: function (t, i) {
        t.Yt.v = i
    }, Gr: function (t) {
        T._Q.Wq(t.Ow)
    }, tt: function (t) {
        T._Q.wq(t.Ow)
    }
} : {}),T.oQ.vml && (T.SVG.s = function () {
    try {
        return document.namespaces.AQ("lvml", "urn:schemas-microsoft-com:vml"), function (t) {
            return document.createElement("<lvml:"   t   ' class="lvml">')
        }
    } catch (AO) {
        return function (t) {
            return document.createElement("<"   t   ' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')
        }
    }
}()),T.mT = T.ZT.extend({
    onAdd: function () {
        T.ZT.prototype.onAdd.call(this), this.hW = this.hW || {}, this.oY()
    }, sW: function () {
        var t = this.Ow = document.createElement("canvas");
        T.oq.on(t, "mousemove", T.S.G(this.PY, 32, this), this).on(t, "click dblclick mousedown mouseup contextmenu", this.pY, this).on(t, "mouSEO((Search Engine Optimization))ut", this.AY, this), this.aY = t.getContext("2d")
    }, Oe: function () {
        if (!this.jE.ER || !this.Qr) {
            this.SY = {}, T.ZT.prototype.Oe.call(this);
            var t = this.Qr, i = this.Ow, n = t.getSize(), e = T.oQ.retina ? 2 : 1;
            T._Q.setPosition(i, t.min), i.width = e * n.x, i.height = e * n.y, i.style.width = n.x   "px", i.style.height = n.y   "px", T.oQ.retina && this.aY.scale(2, 2), this.aY.translate(-t.min.x, -t.min.y)
        }
    }, wt: function (t) {
        this._updateDashArray(t), this.hW[T.d(t)] = t
    }, Et: T.S.H, et: function (t) {
        t.sY = !0, this.DY(t)
    }, rt: function (t) {
        this.dY = t.vt, this.oY(!0), t.Rt(), t.Oe(), this.oY(), this.dY = null
    }, Tt: function (t) {
        this._updateDashArray(t), this.DY(t)
    }, _updateDashArray: function (t) {
        if (t.options.dashArray) {
            var i, n = t.options.dashArray.split(","), e = [];
            for (i = 0; i < n.length; i  ) e.push(Number(n[i]));
            t.options._dashArray = e
        }
    }, DY: function (t) {
        if (this.jE) {
            var i = (t.options.weight || 0)   1;
            this.dY = this.dY || new T.ZQ, this.dY.extend(t.vt.min.sQ([i, i])), this.dY.extend(t.vt.max.AQ([i, i])), this.FY = this.FY || T.S.C(this.fY, this)
        }
    }, fY: function () {
        this.FY = null, this.oY(!0), this.oY(), this.dY = null
    }, oY: function (t) {
        this.GY = t;
        var i, n = this.dY;
        this.aY.save(), n && (this.aY.beginPath(), this.aY.rect(n.min.x, n.min.y, n.max.x - n.min.x, n.max.y - n.min.y), this.aY.clip());
        for (var e in this.hW) i = this.hW[e], (!n || i.vt && i.vt.intersects(n)) && i.rt(), t && i.sY && (delete i.sY, delete this.hW[e]);
        this.aY.restore()
    }, Mt: function (t, i) {
        var n, e, o, s, r = t.Lt, h = r.length, a = this.aY;
        if (h) {
            for (this.SY[t.F] = t, a.beginPath(), a.setLineDash && a.setLineDash(t.options && t.options._dashArray || []), n = 0; n < h; n  ) {
                for (e = 0, o = r[n].length; e < o; e  ) s = r[n][e], a[e ? "lineTo" : "moveTo"](s.x, s.y);
                i && a.closePath()
            }
            this.gY(a, t)
        }
    }, TY: function (t) {
        if (!t.tY()) {
            var i = t.eY, n = this.aY, e = t.EY, o = (t.rY || e) / e;
            this.SY[t.F] = t, 1 !== o && (n.save(), n.scale(1, o)), n.beginPath(), n.arc(i.x, i.y / o, e, 0, 2 * Math.PI, !1), 1 !== o && n.restore(), this.gY(n, t)
        }
    }, gY: function (t, i) {
        var n = this.GY, e = i.options;
        t.globalCompositeOperation = n ? "destination-out" : "source-over", e.fill && (t.globalAlpha = n ? 1 : e.fillOpacity, t.fillStyle = e.fillColor || e.color, t.fill(e.Wt || "evenodd")), e.stroke && 0 !== e.weight && (t.globalAlpha = n ? 1 : e.opacity, i._prevWeight = t.lineWidth = n ? i._prevWeight   1 : e.weight, t.strokeStyle = e.color, t.Qt = e.Qt, t.qt = e.qt, t.stroke())
    }, pY: function (t) {
        var i, n = this.jE.cw(t), e = [];
        for (var o in this.hW) i = this.hW[o], i.options.mR && i.HY(n) && !this.jE.IE(i) && (T.oq.hY(t), e.push(i));
        e.length && this.JY(e, t)
    }, PY: function (t) {
        if (this.jE && !this.jE.AE.moving() && !this.jE.ER) {
            var i = this.jE.cw(t);
            this.AY(t, i), this.jY(t, i)
        }
    }, AY: function (t, i) {
        var n = this.KY;
        !n || "mouSEO((Search Engine Optimization))ut" !== t.type && n.HY(i) || (T._Q.Tq(this.Ow, "tdt-interactive"), this.JY([n], t, "mouSEO((Search Engine Optimization))ut"), this.KY = null)
    }, jY: function (t, i) {
        var n, e;
        for (n in this.SY) e = this.SY[n], e.options.mR && e.HY(i) && (T._Q.Rq(this.Ow, "tdt-interactive"), this.JY([e], t, "mouSEO((Search Engine Optimization))ver"), this.KY = e);
        this.KY && this.JY([this.KY], t)
    }, JY: function (t, i, n) {
        this.jE.oE(i, n || i.type, t)
    }, Gr: T.S.H, tt: T.S.H
}),T.oQ.nT = function () {
    return !!document.createElement("canvas").getContext
}(),T.nT = function (t) {
    return T.oQ.nT ? new T.mT(t) : null
},T.Polyline.prototype.HY = function (t, i) {
    var n, e, o, s, r, h, a = this.Ut();
    if (!this.vt.contains(t)) return !1;
    for (n = 0, s = this.Lt.length; n < s; n  ) for (h = this.Lt[n], e = 0, r = h.length, o = r - 1; e < r; o = e  ) if ((i || 0 !== e) && T.ut.ot(t, h[o], h[e]) <= a) return !0;
    return !1
},T.Polygon.prototype.HY = function (t) {
    var i, n, e, o, s, r, h, a, u = !1;
    if (!this.vt.contains(t)) return !1;
    for (o = 0, h = this.Lt.length; o < h; o  ) for (i = this.Lt[o], s = 0, a = i.length, r = a - 1; s < a; r = s  ) n = i[s], e = i[r], n.y > t.y != e.y > t.y && t.x < (e.x - n.x) * (t.y - n.y) / (e.y - n.y)   n.x && (u = !u);
    return u || T.Polyline.prototype.HY.call(this, t, !0)
},T.wY.prototype.HY = function (t) {
    return t.distanceTo(this.eY) <= this.EY   this.Ut()
},T.GeoJSON = T.fT.extend({
    initialize: function (t, i) {
        T.setOptions(this, i), this.hW = {}, t && this.addData(t)
    }, addData: function (t) {
        var i, n, e, o = T.S.l(t) ? t : t.features;
        if (o) {
            for (i = 0, n = o.length; i < n; i  ) e = o[i], (e.geometries || e.geometry || e.features || e.coordinates) && this.addData(e);
            return this
        }
        var s = this.options;
        if (s.filter && !s.filter(t)) return this;
        var r = T.GeoJSON.geometryToLayer(t, s);
        return r ? (r.feature = T.GeoJSON.kY(t), r.defaultOptions = r.options, this.resetStyle(r), s.onEachFeature && s.onEachFeature(t, r), this.addLayer(r)) : this
    }, resetStyle: function (t) {
        return t.options = T.S.extend({}, t.defaultOptions), this.LY(t, this.options.style), this
    }, setStyle: function (t) {
        return this.bE(function (i) {
            this.LY(i, t)
        }, this)
    }, LY: function (t, i) {
        "function" == typeof i && (i = i(t.feature)), t.setStyle && t.setStyle(i)
    }
}),T.extend(T.GeoJSON, {
    geometryToLayer: function (t, i) {
        var n, e, o, s, r = "Feature" === t.type ? t.geometry : t, h = r ? r.coordinates : null, a = [],
            u = i && i.pointToLayer, c = i && i.coordsToLatLng || this.coordsToLatLng;
        if (!h && !r) return null;
        switch (r.type) {
            case"Point":
                return n = c(h), u ? u(t, n) : new T.Marker(n);
            case"MultiPoint":
                for (o = 0, s = h.length; o < s; o  ) n = c(h[o]), a.push(u ? u(t, n) : new T.Marker(n));
                return new T.fT(a);
            case"LineString":
            case"MultiLineString":
                return e = this.coordsToLatLngs(h, "LineString" === r.type ? 0 : 1, c), new T.Polyline(e, i);
            case"Polygon":
            case"MultiPolygon":
                return e = this.coordsToLatLngs(h, "Polygon" === r.type ? 1 : 2, c), new T.Polygon(e, i);
            case"GeometryCollection":
                for (o = 0, s = r.geometries.length; o < s; o  ) {
                    var l = this.geometryToLayer({
                        geometry: r.geometries[o],
                        type: "Feature",
                        properties: t.properties
                    }, i);
                    l && a.push(l)
                }
                return new T.fT(a)
        }
    }, coordsToLatLng: function (t) {
        return new T.dq(t[1], t[0], t[2])
    }, coordsToLatLngs: function (t, i, n) {
        for (var e, o = [], s = 0, r = t.length; s < r; s  ) e = i ? this.coordsToLatLngs(t[s], i - 1, n) : (n || this.coordsToLatLng)(t[s]), o.push(e);
        return o
    }, lY: function (t) {
        return void 0 !== t.Fq ? [t.lng, t.lat, t.Fq] : [t.lng, t.lat]
    }, ZY: function (t, i, n) {
        for (var e = [], o = 0, s = t.length; o < s; o  ) e.push(i ? T.GeoJSON.ZY(t[o], i - 1, n) : T.GeoJSON.lY(t[o]));
        return !i && n && e.push(e[0]), e
    }, CY: function (t, i) {
        return t.feature ? T.extend({}, t.feature, {geometry: i}) : T.GeoJSON.kY(i)
    }, kY: function (t) {
        return "Feature" === t.type ? t : {type: "Feature", properties: {}, geometry: t}
    }
});
var PointToGeoJSON = {
    toGeoJSON: function () {
        return T.GeoJSON.CY(this, {type: "Point", coordinates: T.GeoJSON.lY(this.PE())})
    }
};
T.Marker.M(PointToGeoJSON), T.Circle.M(PointToGeoJSON), T.wY.M(PointToGeoJSON), T.Polyline.prototype.toGeoJSON = function () {
    var t = !T.Polyline.ct(this.ht), i = T.GeoJSON.ZY(this.ht, t ? 1 : 0);
    return T.GeoJSON.CY(this, {type: (t ? "Multi" : "")   "LineString", coordinates: i})
}, T.Polygon.prototype.toGeoJSON = function () {
    var t = !T.Polyline.ct(this.ht), i = t && !T.Polyline.ct(this.ht[0]),
        n = T.GeoJSON.ZY(this.ht, i ? 2 : t ? 1 : 0, !0);
    return t || (n = [n]), T.GeoJSON.CY(this, {type: (i ? "Multi" : "")   "Polygon", coordinates: n})
}, T.LayerGroup.M({
    VY: function () {
        var t = [];
        return this.bE(function (i) {
            t.push(i.toGeoJSON().geometry.coordinates)
        }), T.GeoJSON.CY(this, {type: "MultiPoint", coordinates: t})
    }, toGeoJSON: function () {
        var t = this.feature && this.feature.geometry && this.feature.geometry.type;
        if ("MultiPoint" === t) return this.VY();
        var i = "GeometryCollection" === t, n = [];
        return this.bE(function (t) {
            if (t.toGeoJSON) {
                var e = t.toGeoJSON();
                n.push(i ? e.geometry : T.GeoJSON.kY(e))
            }
        }), i ? T.GeoJSON.CY(this, {geometries: n, type: "GeometryCollection"}) : {
            type: "FeatureCollection",
            features: n
        }
    }
}), T.cY = function (t, i) {
    return new T.GeoJSON(t, i)
}, T.BY = T.cY;
var eventsKey = "_tdt_events";
T.oq = {
    on: function (t, i, n, e) {
        if ("object" == typeof i) for (var o in i) this.QQ(t, o, i[o], n); else {
            i = T.S.j(i);
            for (var s = 0, r = i.length; s < r; s  ) this.QQ(t, i[s], n, e)
        }
        return this
    }, off: function (t, i, n, e) {
        if ("object" == typeof i) for (var o in i) this.WQ(t, o, i[o], n); else {
            i = T.S.j(i);
            for (var s = 0, r = i.length; s < r; s  ) this.WQ(t, i[s], n, e)
        }
        return this
    }, QQ: function (t, i, n, e) {
        var o = i   T.d(n)   (e ? "_"   T.d(e) : "");
        if (t[eventsKey] && t[eventsKey][o]) return this;
        var s = function (i) {
            return n.call(e || t, i || window.event)
        }, r = s;
        return T.oQ.pointer && 0 === i.indexOf("touch") ? this.vY(t, i, s, o) : T.oQ.touch && "dblclick" === i && this.NY ? this.NY(t, s, o) : "addEventListener" in t ? "mousewheel" === i ? t.addEventListener("onwheel" in t ? "wheel" : "mousewheel", s, !1) : "mouseenter" === i || "mouseleave" === i ? (s = function (i) {
            i = i || window.event, T.oq.iE(t, i) && r(i)
        }, t.addEventListener("mouseenter" === i ? "mouSEO((Search Engine Optimization))ver" : "mouSEO((Search Engine Optimization))ut", s, !1)) : ("click" === i && T.oQ.android && (s = function (t) {
            return T.oq.bY(t, r)
        }), t.addEventListener(i, s, !1)) : "attachEvent" in t && t.attachEvent("on"   i, s), t[eventsKey] = t[eventsKey] || {}, t[eventsKey][o] = s, this
    }, WQ: function (t, i, n, e) {
        var o = i   T.d(n)   (e ? "_"   T.d(e) : ""), s = t[eventsKey] && t[eventsKey][o];
        return s ? (T.oQ.pointer && 0 === i.indexOf("touch") ? this.removePointerListener(t, i, o) : T.oQ.touch && "dblclick" === i && this.MY ? this.MY(t, o) : "removeEventListener" in t ? "mousewheel" === i ? t.removeEventListener("onwheel" in t ? "wheel" : "mousewheel", s, !1) : t.removeEventListener("mouseenter" === i ? "mouSEO((Search Engine Optimization))ver" : "mouseleave" === i ? "mouSEO((Search Engine Optimization))ut" : i, s, !1) : "detachEvent" in t && t.detachEvent("on"   i, s), t[eventsKey][o] = null, this) : this
    }, stopPropagation: function (t) {
        return t.stopPropagation ? t.stopPropagation() : t.originalEvent ? t.originalEvent._stopped = !0 : t.cancelBubble = !0, T.oq.OE(t), this
    }, IT: function (t) {
        return T.oq.on(t, "mousewheel", T.oq.stopPropagation)
    }, iT: function (t) {
        var i = T.oq.stopPropagation;
        return T.oq.on(t, T.nY.START.join(" "), i), T.oq.on(t, {click: T.oq.hY, dblclick: i})
    }, preventDefault: function (t) {
        return t.preventDefault ? t.preventDefault() : t.returnValue = !1, this
    }, uw: function (t) {
        return T.oq.preventDefault(t).stopPropagation(t)
    }, Vw: function (t, i) {
        if (!i) return new T.Point(t.clientX, t.clientY);
        var n = i.getBoundingClientRect();
        return new T.Point(t.clientX - n.left - i.clientLeft, t.clientY - n.top - i.clientTop)
    }, _wheelPxFactor: T.oQ.win && T.oQ.chrome ? 2 : T.oQ.gecko ? window.PQ : 1, _Y: function (t) {
        return T.oQ.edge ? t.wheelDeltaY / 2 : t.deltaY && 0 === t.deltaMode ? -t.deltaY / T.oq._wheelPxFactor : t.deltaY && 1 === t.deltaMode ? 20 * -t.deltaY : t.deltaY && 2 === t.deltaMode ? 60 * -t.deltaY : t.deltaX || t.deltaZ ? 0 : t.wheelDelta ? (t.wheelDeltaY || t.wheelDelta) / 2 : t.detail && Math.abs(t.detail) < 32765 ? 20 * -t.detail : t.detail ? t.detail / -32765 * 60 : 0
    }, mY: {}, hY: function (t) {
        T.oq.mY[t.type] = !0
    }, OE: function (t) {
        var i = this.mY[t.type];
        return this.mY[t.type] = !1, i
    }, iE: function (t, i) {
        var n = i.relatedTarget;
        if (!n) return !0;
        try {
            for (; n && n !== t;) n = n.parentNode
        } catch (AO) {
            return !1
        }
        return n !== t
    }, bY: function (t, i) {
        var n = t.timeStamp || t.originalEvent && t.originalEvent.timeStamp, e = T.oq.QU && n - T.oq.QU;
        return e && e > 100 && e < 500 || t.target.qU && !t.uE ? void T.oq.uw(t) : (T.oq.QU = n, void i(t))
    }
}, T.oq.addListener = T.oq.on, T.oq.removeListener = T.oq.off, T.nY = T.m.extend({
    options: {clickTolerance: 3},
    v: {
        START: T.oQ.touch ? ["touchstart", "mousedown"] : ["mousedown"],
        END: {mousedown: "mouseup", touchstart: "touchend", pointerdown: "touchend", MSPointerDown: "touchend"},
        MOVE: {
            mousedown: "mousemove",
            touchstart: "touchmove",
            pointerdown: "touchmove",
            MSPointerDown: "touchmove"
        }
    },
    initialize: function (t, i, n) {
        this.WU = t, this.wU = i || t, this.EU = n
    },
    enable: function () {
        this.eU || (T.oq.on(this.wU, T.nY.START.join(" "), this.RU, this), this.eU = !0)
    },
    disable: function () {
        this.eU && (T.oq.off(this.wU, T.nY.START.join(" "), this.RU, this), this.eU = !1, this.sw = !1)
    },
    RU: function (t) {
        if (!t.uE && this.eU && (this.sw = !1, !T._Q.Eq(this.WU, "tdt-zoom-anim") && !(T.nY._dragging || t.shiftKey || 1 !== t.which && 1 !== t.button && !t.touches) && this.eU && (T.nY._dragging = !0, this.EU && T._Q.Sq(this.WU), T._Q.Aq(), T._Q.Oq(), !this.rU))) {
            this.wQ("down");
            var i = t.touches ? t.touches[0] : t;
            this.TU = new T.Point(i.clientX, i.clientY), T.oq.on(document, T.nY.MOVE[t.type], this.fe, this).on(document, T.nY.END[t.type], this.tU, this)
        }
    },
    fe: function (t) {
        if (!t.uE && this.eU) {
            if (t.touches && t.touches.length > 1) return void (this.sw = !0);
            var i = t.touches && 1 === t.touches.length ? t.touches[0] : t, n = new T.Point(i.clientX, i.clientY),
                e = n.sQ(this.TU);
            (e.x || e.y) && (Math.abs(e.x)   Math.abs(e.y) < this.options.clickTolerance || (T.oq.preventDefault(t), this.sw || (this.wQ("dragstart"), this.sw = !0, this.YU = T._Q.getPosition(this.WU).sQ(e), T._Q.Rq(document.body, "tdt-dragging"), this.UU = t.target || t.srcElement, window.SVGElementInstance && this.UU instanceof SVGElementInstance && (this.UU = this.UU.correspondingUseElement), T._Q.Rq(this.UU, "tdt-drag-target")), this.uU = this.YU.AQ(e), this.rU = !0, T.S.V(this.IU), this.iU = t, this.IU = T.S.C(this.WT, this, !0)))
        }
    },
    WT: function () {
        var t = {originalEvent: this.iU};
        this.wQ("OU", t), T._Q.setPosition(this.WU, this.uU), this.wQ("drag", t)
    },
    tU: function (t) {
        if (!t.uE && this.eU) {
            T._Q.Tq(document.body, "tdt-dragging"), this.UU && (T._Q.Tq(this.UU, "tdt-drag-target"), this.UU = null);
            for (var i in T.nY.MOVE) T.oq.off(document, T.nY.MOVE[i], this.fe, this).off(document, T.nY.END[i], this.tU, this);
            T._Q.aq(), T._Q.Pq(), this.sw && this.rU && (T.S.V(this.IU), this.wQ("dragend", {})), this.rU = !1, T.nY._dragging = !1
        }
    }
}), T.Kr = T.c.extend({
    initialize: function (t) {
        this.jE = t
    }, enable: function () {
        return this.eU ? this : (this.eU = !0, this.oU(), this)
    }, disable: function () {
        return this.eU ? (this.eU = !1, this.Ar(), this) : this
    }, aE: function () {
        return !!this.eU
    }
}), T.Map.n({AE: !0, PU: !T.oQ.android23, pU: 3400, AU: 1 / 0, aU: .2, SU: !0, sU: 0}), T.Map.DU = T.Kr.extend({
    oU: function () {
        if (!this.dU) {
            var t = this.jE;
            this.dU = new T.nY(t.ow, t.Ow), this.dU.on({
                down: this.RU,
                dragstart: this.FU,
                drag: this.fU,
                dragend: this.GU
            }, this), this.dU.on("OU", this.gU, this), t.options.SU && (this.dU.on("OU", this.HU, this), t.on("zoomend", this.hU, this), t.sE(this.hU, this))
        }
        T._Q.Rq(this.jE.Ow, "tdt-grab tdt-touch-drag"), this.dU.enable(), this.JU = [], this.jU = []
    }, Ar: function () {
        T._Q.Tq(this.jE.Ow, "tdt-grab"), T._Q.Tq(this.jE.Ow, "tdt-touch-drag"), this.dU.disable()
    }, moved: function () {
        return this.dU && this.dU.sw
    }, moving: function () {
        return this.dU && this.dU.rU
    }, RU: function () {
        this.jE.Iw()
    }, FU: function () {
        var t = this.jE;
        if (this.jE.options.maxBounds && this.jE.options.sU) {
            var i = T.jq(this.jE.options.maxBounds);
            this.KU = T.cQ(this.jE.BW(i.Zq()).fQ(-1), this.jE.BW(i.cq()).fQ(-1).AQ(this.jE.getSize())), this.kU = Math.min(1, Math.max(0, this.jE.options.sU))
        } else this.KU = null;
        t.wQ("movestart").wQ("dragstart"), t.options.PU && (this.JU = [], this.jU = [])
    }, fU: function (t) {
        if (this.jE.options.PU) {
            var i = this.LU =  new Date, n = this.lU = this.dU.ZU || this.dU.uU;
            this.JU.push(n), this.jU.push(i), i - this.jU[0] > 50 && (this.JU.shift(), this.jU.shift())
        }
        this.jE.wQ("move", t).wQ("drag", t)
    }, hU: function () {
        var t = this.jE.getSize().dQ(2), i = this.jE.kw([0, 0]);
        this.CU = i.sQ(t).x, this.VU = this.jE.Kw().getSize().x
    }, cU: function (t, i) {
        return t - (t - i) * this.kU
    }, gU: function () {
        if (this.kU && this.KU) {
            var t = this.dU.uU.sQ(this.dU.YU), i = this.KU;
            t.x < i.min.x && (t.x = this.cU(t.x, i.min.x)), t.y < i.min.y && (t.y = this.cU(t.y, i.min.y)), t.x > i.max.x && (t.x = this.cU(t.x, i.max.x)), t.y > i.max.y && (t.y = this.cU(t.y, i.max.y)), this.dU.uU = this.dU.YU.AQ(t)
        }
    }, HU: function () {
        var t = this.VU, i = Math.round(t / 2), n = this.CU, e = this.dU.uU.x, o = (e - i   n) % t   i - n,
            s = (e   i   n) % t - i - n, r = Math.abs(o   n) < Math.abs(s   n) ? o : s;
        this.dU.ZU = this.dU.uU.pQ(), this.dU.uU.x = r
    }, GU: function (t) {
        var i = this.jE, n = i.options, e = !n.PU || this.jU.length < 2;
        if (i.wQ("dragend", t), e) i.wQ("moveend"); else {
            var o = this.lU.sQ(this.JU[0]), s = (this.LU - this.jU[0]) / 1e3, r = n.aU, h = o.fQ(r / s),
                a = h.distanceTo([0, 0]), u = Math.min(n.AU, a), c = h.fQ(u / a), l = u / (n.pU * r),
                f = c.fQ(-l / 2).hQ();
            f.x || f.y ? (f = i.fE(f, i.options.maxBounds), T.S.C(function () {
                i.panBy(f, {duration: l, aU: r, BU: !0, Tw: !0})
            })) : i.wQ("moveend")
        }
    }
}), T.Map.M({
    enableDrag: function () {
        this.AE.enable()
    }, disableDrag: function () {
        this.AE.disable()
    }, isDrag: function () {
        return this.AE.eU
    }, enableInertia: function () {
        this.options.PU = !0
    }, disableInertia: function () {
        this.options.PU = !1
    }, isInertia: function () {
        return this.options.PU
    }
}), T.Map._("iw", "AE", T.Map.DU), T.Map.n({vU: !0}), T.Map.NU = T.Kr.extend({
    initialize: function (t) {
        this.jE = t, this.Ow = t.Ow, this.overlayPane = t.aw.overlayPane, this._w = t.aw._w, this.markerPane = t.aw.markerPane, this.infoWindowPane = t.aw.infoWindowPane
    }, oU: function () {
        T.oq.on(this.jE, "zoomstart", this.IY, this), T.oq.on(this.jE, "zoomend", this.hU, this)
    }, Ar: function () {
        T.oq.off(this.jE, "zoomstart", this.IY), T.oq.off(this.jE, "zoomend", this.hU)
    }, IY: function (t) {
        this.jE.CW && (this.overlayPane.style.visibility = "hidden", this._w.style.visibility = "hidden", this.markerPane.style.visibility = "hidden", this.infoWindowPane.style.visibility = "hidden")
    }, hU: function (t) {
        this.jE.CW && (this.overlayPane.style.visibility = "inherit", this._w.style.visibility = "inherit", this.markerPane.style.visibility = "inherit", this.infoWindowPane.style.visibility = "inherit")
    }
}), T.Map._("iw", "vU", T.Map.NU), T.Map.n({bU: !0}), T.Map.MU = T.Kr.extend({
    oU: function () {
        this.jE.on("dblclick", this.nU, this)
    }, Ar: function () {
        this.jE.off("dblclick", this.nU, this)
    }, nU: function (t) {
        var i = this.jE, n = i.getZoom(), e = i.options.aW, o = t.originalEvent.shiftKey ? n - e : n   e;
        return !(o > i.getMaxZoom()) && void ("center" === i.options.bU ? i.setZoom(o) : i.VW(t.containerPoint, o))
    }
}), T.Map.M({
    enableDoubleClickZoom: function () {
        this.bU.enable()
    }, disableDoubleClickZoom: function () {
        this.bU.disable()
    }, isDoubleClickZoom: function () {
        return this.bU.eU
    }
}), T.Map._("iw", "bU", T.Map.MU), T.Map.n({_U: !0, mU: 40, Qu: 70}), T.Map.qu = T.Kr.extend({
    oU: function () {
        T.oq.on(this.jE.Ow, "mousewheel", this.Wu, this), this.wu = 0
    }, Ar: function () {
        T.oq.off(this.jE.Ow, "mousewheel", this.Wu, this)
    }, Wu: function (t) {
        var i = T.oq._Y(t), n = this.jE.options.mU;
        this.wu  = i, this.Eu = this.jE.Cw(t), this.eu || (this.eu =  new Date);
        var e = Math.max(n - ( new Date - this.eu), 0);
        clearTimeout(this.Ru), this.Ru = setTimeout(T.D(this.ru, this), e), T.oq.uw(t)
    }, ru: function () {
        var t = this.jE, i = t.getZoom(), n = this.jE.options.AW || 0;
        t.Iw();
        var e = this.wu / (4 * this.jE.options.Qu), o = 4 * Math.log(2 / (1   Math.exp(-Math.abs(e)))) / Math.LN2,
            s = n ? Math.ceil(o / n) * n : o, r = t.GW(i   (this.wu > 0 ? s : -s)) - i;
        this.wu = 0, this.eu = null, r && ("center" === t.options._U ? t.setZoom(i   r) : t.VW(this.Eu, i   r))
    }
}), T.Map.M({
    enableScrollWheelZoom: function () {
        this._U.enable()
    }, disableScrollWheelZoom: function () {
        this._U.disable()
    }, isScrollWheelZoom: function () {
        return this._U.eU
    }
}), T.Map._("iw", "_U", T.Map.qu), T.extend(T.oq, {
    Tu: T.oQ.msPointer ? "MSPointerDown" : T.oQ.pointer ? "pointerdown" : "touchstart",
    tu: T.oQ.msPointer ? "MSPointerUp" : T.oQ.pointer ? "pointerup" : "touchend",
    NY: function (t, i, n) {
        function e(t) {
            var i;
            if (i = T.oQ.pointer ? T.oq.Yu : t.touches.length, !(i > 1)) {
                var n = Date.now(), e = n - (s || n);
                r = t.touches ? t.touches[0] : t, h = e > 0 && e <= a, s = n
            }
        }

        function o() {
            if (h && !r.cancelBubble) {
                if (T.oQ.pointer) {
                    var t, n, e = {};
                    for (n in r) t = r[n], e[n] = t && t.D ? t.D(r) : t;
                    r = e
                }
                r.type = "dblclick", i(r), s = null
            }
        }

        var s, r, h = !1, a = 250, u = "_tdt_", c = this.Tu, l = this.tu;
        return t[u   c   n] = e, t[u   l   n] = o, t[u   "dblclick"   n] = i, t.addEventListener(c, e, !1), t.addEventListener(l, o, !1), T.oQ.edge || t.addEventListener("dblclick", i, !1), this
    },
    MY: function (t, i) {
        var n = "_tdt_", e = t[n   this.Tu   i], o = t[n   this.tu   i], s = t[n   "dblclick"   i];
        return t.removeEventListener(this.Tu, e, !1), t.removeEventListener(this.tu, o, !1), T.oQ.edge || t.removeEventListener("dblclick", s, !1), this
    }
}), T.extend(T.oq, {
    Uu: T.oQ.msPointer ? "MSPointerDown" : "pointerdown",
    uu: T.oQ.msPointer ? "MSPointerMove" : "pointermove",
    Iu: T.oQ.msPointer ? "MSPointerUp" : "pointerup",
    iu: T.oQ.msPointer ? "MSPointerCancel" : "pointercancel",
    TAG_WHITE_LIST: ["INPUT", "SELECT", "OPTION"],
    Ou: {},
    Yu: 0,
    vY: function (t, i, n, e) {
        return "touchstart" === i ? this.ou(t, n, e) : "touchmove" === i ? this.Pu(t, n, e) : "touchend" === i && this.pu(t, n, e), this
    },
    removePointerListener: function (t, i, n) {
        var e = t["_tdt_"   i   n];
        return "touchstart" === i ? t.removeEventListener(this.Uu, e, !1) : "touchmove" === i ? t.removeEventListener(this.uu, e, !1) : "touchend" === i && (t.removeEventListener(this.Iu, e, !1), t.removeEventListener(this.iu, e, !1)), this
    },
    ou: function (t, i, n) {
        var e = T.D(function (t) {
            if ("mouse" !== t.pointerType && t.pointerType !== t.MSPOINTER_TYPE_MOUSE) {
                if (!(this.TAG_WHITE_LIST.indexOf(t.target.tagName) < 0)) return;
                T.oq.preventDefault(t)
            }
            this.Au(t, i)
        }, this);
        if (t["_tdt_touchstart"   n] = e, t.addEventListener(this.Uu, e, !1), !this.au) {
            var o = T.D(this.Su, this);
            document.documentElement.addEventListener(this.Uu, T.D(this.su, this), !0), document.documentElement.addEventListener(this.uu, T.D(this.Du, this), !0), document.documentElement.addEventListener(this.Iu, o, !0), document.documentElement.addEventListener(this.iu, o, !0), this.au = !0
        }
    },
    su: function (t) {
        this.Ou[t.pointerId] = t, this.Yu  
    },
    Du: function (t) {
        this.Ou[t.pointerId] && (this.Ou[t.pointerId] = t)
    },
    Su: function (t) {
        delete this.Ou[t.pointerId], this.Yu--
    },
    Au: function (t, i) {
        t.touches = [];
        for (var n in this.Ou) t.touches.push(this.Ou[n]);
        t.changedTouches = [t], i(t)
    },
    Pu: function (t, i, n) {
        var e = T.D(function (t) {
            (t.pointerType !== t.MSPOINTER_TYPE_MOUSE && "mouse" !== t.pointerType || 0 !== t.buttons) && this.Au(t, i)
        }, this);
        t["_tdt_touchmove"   n] = e, t.addEventListener(this.uu, e, !1)
    },
    pu: function (t, i, n) {
        var e = T.D(function (t) {
            this.Au(t, i)
        }, this);
        t["_tdt_touchend"   n] = e, t.addEventListener(this.Iu, e, !1), t.addEventListener(this.iu, e, !1)
    }
}), T.Map.n({du: !0}), T.Map.Fu = T.Kr.extend({
    initialize: function (t) {
        this.jE = t, this.Ow = t.Ow, this.fu = t.aw.overlayPane
    }, oU: function () {
        T.oq.on(this.Ow, "touchstart", this.Gu, this), T.oq.on(this.Ow, "touchmove", this.gu, this), T.oq.on(this.Ow, "touchend", this.Hu, this)
    }, Ar: function () {
        T.oq.off(this.Ow, "touchstart", this.Gu), T.oq.off(this.Ow, "touchmove", this.gu), T.oq.off(this.Ow, "touchend", this.Hu)
    }, Gu: function (t) {
        if (this.jE.CW) {
            var i = "touchstart";
            this.jE.wQ(i, this.hu(t));
            var n = this;
            return this.timer = setTimeout(function () {
                n.jE.wQ("longpress", n.hu(t))
            }, 600), !1
        }
    }, gu: function (t) {
        if (this.jE.CW) {
            var i = "touchmove";
            this.jE.wQ(i, this.hu(t))
        }
    }, Hu: function (t) {
        if (this.jE.CW) {
            var i = "touchend";
            return this.jE.wQ(i, this.hu(t)), clearTimeout(this.timer), !1
        }
    }, hu: function (t) {
        if (t.touches && 0 != t.changedTouches.length) {
            var i = this.jE.Cw(t.changedTouches[0]), n = this.jE.Lw(i), e = this.jE.Dw(n),
                o = {lnglat: e, layerPoint: n, containerPoint: i, originalEvent: t};
            return o
        }
    }
}), T.Map._("iw", "du", T.Map.Fu), T.Map.n({Ju: T.oQ.touch && !T.oQ.android23, ju: !1}), T.Map.Ku = T.Kr.extend({
    oU: function () {
        T._Q.Rq(this.jE.Ow, "tdt-touch-zoom"), T.oq.on(this.jE.Ow, "touchstart", this.Gu, this)
    }, Ar: function () {
        T._Q.Tq(this.jE.Ow, "tdt-touch-zoom"), T.oq.off(this.jE.Ow, "touchstart", this.Gu, this)
    }, Gu: function (t) {
        var i = this.jE;
        if (t.touches && 2 === t.touches.length && !i.ER && !this.ku) {
            var n = i.Cw(t.touches[0]), e = i.Cw(t.touches[1]);
            this.Lu = i.getSize().FQ(2), this.lu = i.vW(this.Lu), "center" !== i.options.Ju && (this._pinchStartLatLng = i.vW(n.AQ(e).FQ(2))), this._startDist = n.distanceTo(e), this.Zu = i.getZoom(), this.sw = !1, this.ku = !0, i.Iw(), T.oq.on(document, "touchmove", this.gu, this).on(document, "touchend", this.Hu, this), T.oq.preventDefault(t)
        }
    }, gu: function (t) {
        if (t.touches && 2 === t.touches.length && this.ku) {
            var i = this.jE, n = i.Cw(t.touches[0]), e = i.Cw(t.touches[1]), o = n.distanceTo(e) / this._startDist;
            if (this.fW = i.gw(o, this.Zu), !i.options.ju && (this.fW < i.getMinZoom() && o < 1 || this.fW > i.getMaxZoom() && o > 1) && (this.fW = i.GW(this.fW)), "center" === i.options.Ju) {
                if (this.BT = this.lu, 1 === o) return
            } else {
                var s = n.aQ(e).FQ(2).DQ(this.Lu);
                if (1 === o && 0 === s.x && 0 === s.y) return;
                this.BT = i._q(i.nq(this._pinchStartLatLng, this.fW).sQ(s), this.fW)
            }
            this.sw || (i.qE(!0), this.sw = !0), T.S.V(this.IU);
            var r = T.D(i.QE, i, this.BT, this.fW, {pinch: !0, hQ: !1});
            this.IU = T.S.C(r, this, !0), T.oq.preventDefault(t)
        }
    }, Hu: function () {
        return this.sw && this.ku ? (this.ku = !1, T.S.V(this.IU), T.oq.off(document, "touchmove", this.gu).off(document, "touchend", this.Hu), void (this.jE.options.Nr ? this.jE.ge(this.BT, this.jE.GW(this.fW), !0, this.jE.options.snapZoom) : this.jE.ZW(this.BT, this.jE.GW(this.fW)))) : void (this.ku = !1)
    }
}), T.Map.M({
    enablePinchToZoom: function () {
        this.Ju.enable()
    }, disablePinchToZoom: function () {
        this.Ju.disable()
    }, isPinchToZoom: function () {
        return this.Ju.eU
    }
}), T.Map._("iw", "Ju", T.Map.Ku), T.Map.n({Cu: !0, Vu: 15}), T.Map.cu = T.Kr.extend({
    oU: function () {
        T.oq.on(this.jE.Ow, "touchstart", this.RU, this)
    }, Ar: function () {
        T.oq.off(this.jE.Ow, "touchstart", this.RU, this)
    }, RU: function (t) {
        if (t.touches) {
            if (T.oq.preventDefault(t), this.Bu = !0, t.touches.length > 1) return this.Bu = !1, void clearTimeout(this.vu);
            var i = t.touches[0], n = i.target;
            this.YU = this.uU = new T.Point(i.clientX, i.clientY), n.tagName && "a" === n.tagName.toLowerCase() && T._Q.Rq(n, "tdt-active"), this.vu = setTimeout(T.D(function () {
                this.Nu() && (this.Bu = !1, this.tU(), this.bu("contextmenu", i))
            }, this), 1e3), this.bu("mousedown", i), T.oq.on(document, {
                touchmove: this.fe,
                touchend: this.tU
            }, this)
        }
    }, tU: function (t) {
        if (clearTimeout(this.vu), T.oq.off(document, {
            touchmove: this.fe,
            touchend: this.tU
        }, this), this.Bu && t && t.changedTouches) {
            var i = t.changedTouches[0], n = i.target;
            n && n.tagName && "a" === n.tagName.toLowerCase() && T._Q.Tq(n, "tdt-active"), this.bu("mouseup", i), this.Nu() && this.bu("click", i)
        }
    }, Nu: function () {
        return this.uU.distanceTo(this.YU) <= this.jE.options.Vu
    }, fe: function (t) {
        var i = t.touches[0];
        this.uU = new T.Point(i.clientX, i.clientY), this.bu("mousemove", i)
    }, bu: function (t, i) {
        var n = document.createEvent("MouseEvents");
        n.uE = !0, i.target.qU = !0, n.initMouseEvent(t, !0, !0, window, 1, i.screenX, i.screenY, i.clientX, i.clientY, !1, !1, !1, !1, 0, null), i.target.dispatchEvent(n)
    }
}), T.oQ.touch && !T.oQ.pointer && T.Map._("iw", "Cu", T.Map.cu), T.Map.n({SE: !0}), T.Map.Mu = T.Kr.extend({
    initialize: function (t) {
        this.jE = t, this.Ow = t.Ow, this.fu = t.aw.overlayPane
    }, oU: function () {
        T.oq.on(this.Ow, "mousedown", this.nu, this)
    }, Ar: function () {
        T.oq.off(this.Ow, "mousedown", this.nu, this)
    }, moved: function () {
        return this.sw
    }, _u: function () {
        this.sw = !1
    }, nu: function (t) {
        return !(!t.shiftKey || 1 !== t.which && 1 !== t.button) && (this._u(), T._Q.Oq(), T._Q.Aq(), this.TU = this.jE.Cw(t), void T.oq.on(document, {
            contextmenu: T.oq.uw,
            mousemove: this.PY,
            mouseup: this.mu,
            keydown: this.QI
        }, this))
    }, PY: function (t) {
        this.sw || (this.sw = !0, this.qI = T._Q.s("div", "tdt-zoom-box", this.Ow), T._Q.Rq(this.Ow, "tdt-crosshair"), this.jE.wQ("boxzoomstart")), this.eY = this.jE.Cw(t);
        var i = new T.ZQ(this.eY, this.TU), n = i.getSize();
        T._Q.setPosition(this.qI, i.min), this.qI.style.width = n.x   "px", this.qI.style.height = n.y   "px"
    }, WI: function () {
        this.sw && (T._Q.Qq(this.qI), T._Q.Tq(this.Ow, "tdt-crosshair")), T._Q.Pq(), T._Q.aq(), T.oq.off(document, {
            contextmenu: T.oq.uw,
            mousemove: this.PY,
            mouseup: this.mu,
            keydown: this.QI
        }, this)
    }, mu: function (t) {
        if ((1 === t.which || 1 === t.button) && (this.WI(), this.sw)) {
            setTimeout(T.D(this._u, this), 0);
            var i = new T.Kq(this.jE.vW(this.TU), this.jE.vW(this.eY));
            this.jE._W(i).wQ("boxzoomend", {boxZoomBounds: i})
        }
    }, QI: function (t) {
        27 === t.keyCode && this.WI()
    }
}), T.Map._("iw", "SE", T.Map.Mu), T.Map.n({Ir: !0, wI: 80}), T.Map.EI = T.Kr.extend({
    keyCodes: {
        left: [37],
        right: [39],
        down: [40],
        up: [38],
        zoomIn: [187, 107, 61, 171],
        zoomOut: [189, 109, 54, 173]
    }, initialize: function (t) {
        this.jE = t, this.eI(t.options.wI), this.RI(t.options.aW)
    }, oU: function () {
        var t = this.jE.Ow;
        t.tabIndex <= 0 && (t.tabIndex = "0"), T.oq.on(t, {
            focus: this.rI,
            blur: this.TI,
            mousedown: this.nu
        }, this), this.jE.on({focus: this.tI, blur: this.YI}, this)
    }, Ar: function () {
        this.YI(), T.oq.off(this.jE.Ow, {
            focus: this.rI,
            blur: this.TI,
            mousedown: this.nu
        }, this), this.jE.off({focus: this.tI, blur: this.YI}, this)
    }, nu: function () {
        if (!this.UI) {
            var t = document.body, i = document.documentElement, n = t.scrollTop || i.scrollTop,
                e = t.scrollLeft || i.scrollLeft;
            this.jE.Ow.focus(), window.scrollTo(e, n)
        }
    }, rI: function () {
        this.UI = !0, this.jE.wQ("focus")
    }, TI: function () {
        this.UI = !1, this.jE.wQ("blur")
    }, eI: function (t) {
        var i, n, e = this._panKeys = {}, o = this.keyCodes;
        for (i = 0, n = o.left.length; i < n; i  ) e[o.left[i]] = [-1 * t, 0];
        for (i = 0, n = o.right.length; i < n; i  ) e[o.right[i]] = [t, 0];
        for (i = 0, n = o.down.length; i < n; i  ) e[o.down[i]] = [0, t];
        for (i = 0, n = o.up.length; i < n; i  ) e[o.up[i]] = [0, -1 * t]
    }, RI: function (t) {
        var i, n, e = this.uI = {}, o = this.keyCodes;
        for (i = 0, n = o.zoomIn.length; i < n; i  ) e[o.zoomIn[i]] = t;
        for (i = 0, n = o.zoomOut.length; i < n; i  ) e[o.zoomOut[i]] = -t
    }, tI: function () {
        T.oq.on(document, "keydown", this.QI, this)
    }, YI: function () {
        T.oq.off(document, "keydown", this.QI, this)
    }, QI: function (t) {
        if (!(t.altKey || t.ctrlKey || t.metaKey)) {
            var i, n = t.keyCode, e = this.jE;
            if (n in this._panKeys) {
                if (e.EE && e.EE.aT) return;
                i = this._panKeys[n], t.shiftKey && (i = T.SQ(i).fQ(3)), e.panBy(i), e.options.maxBounds && e.Ew(e.options.maxBounds)
            } else if (n in this.uI) e.setZoom(e.getZoom()   (t.shiftKey ? 3 : 1) * this.uI[n]); else {
                if (27 !== n) return;
                e.TT()
            }
            T.oq.uw(t)
        }
    }
}), T.Map.M({
    enableKeyboard: function () {
        this.Ir.enable()
    }, disableKeyboard: function () {
        this.Ir.disable()
    }, isKeyboard: function () {
        return this.Ir.eU
    }
}), T.Map._("iw", "Ir", T.Map.EI), T.Kr.jr = T.Kr.extend({
    initialize: function (t) {
        this.II = t
    }, oU: function () {
        var t = this.II.Fr;
        this.dU || (this.dU = new T.nY(t, t, !0)), this.dU.on({
            dragstart: this.FU,
            drag: this.fU,
            dragend: this.GU
        }, this).enable(), T._Q.Rq(t, "tdt-marker-draggable")
    }, Ar: function () {
        this.dU.off({
            dragstart: this.FU,
            drag: this.fU,
            dragend: this.GU
        }, this).disable(), this.II.Fr && T._Q.Tq(this.II.Fr, "tdt-marker-draggable")
    }, moved: function () {
        return this.dU && this.dU.sw
    }, FU: function () {
        this.II.TT().wQ("movestart").wQ("dragstart")
    }, fU: function (t) {
        var i = this.II, n = i.Hr, e = T._Q.getPosition(i.Fr), o = i.jE.Dw(e);
        n && T._Q.setPosition(n, e), i.or = o, t.lnglat = o, i.wQ("move", t).wQ("drag", t)
    }, GU: function (t) {
        var i = (this.II.Hr, T._Q.getPosition(this.II.Fr)), n = this.II.jE.Dw(i);
        this.II.or = n, t.lnglat = n, this.II.wQ("moveend").wQ("dragend", t)
    }
}), T.Control = T.c.extend({
    options: {position: T_ANCHOR_TOP_RIGHT}, initialize: function (t) {
        T.setOptions(this, t)
    }, getPosition: function () {
        return this.options.position
    }, setPosition: function (t) {
        var i = this.jE;
        return i && i.removeControl(this), this.options.position = t, i && i.addControl(this), this
    }, getContainer: function () {
        return this.Ow
    }, show: function () {
        this.Ow.style.display = "block"
    }, hide: function () {
        this.Ow.style.display = "none"
    }, isHidden: function () {
        return "none" == this.Ow.style.display
    }, setOptions: function (t) {
        T.S.extend(this.options, t)
    }, setOffset: function (t) {
        this.point = t, this.Ow.style.left = t.x   "px", this.Ow.style.top = t.y   "px"
    }, getOffset: function () {
        return this.point
    }, addTo: function (t) {
        this.Qq(), this.jE = t;
        var i = this.Ow = this.onAdd(t), n = this.getPosition(), e = t.iI[n];
        return T._Q.Rq(i, "tdt-control"), n.indexOf("bottom") !== -1 ? e.insertBefore(i, e.firstChild) : e.appendChild(i), this
    }, Qq: function () {
        return this.jE ? (T._Q.Qq(this.Ow), this.onRemove && this.onRemove(this.jE), this.jE = null, this) : this
    }, OI: function (t) {
        this.jE && t && t.screenX > 0 && t.screenY > 0 && this.jE.getContainer().focus()
    }
}), T.oI = function (t) {
    return new T.Control(t)
}, T.Map.M({
    addControl: function (t) {
        return t.addTo(this), this.wQ("addcontrol", {addcontrol: t}), this
    }, removeControl: function (t) {
        return t.Qq(), this.wQ("removecontrol", {removecontrol: t}), this
    }, Mw: function () {
        function t(t, o) {
            var s = n   t   " "   n   o;
            i[t   o] = T._Q.s("div", s, e)
        }

        var i = this.iI = {}, n = "tdt-", e = this.PI = T._Q.s("div", n   "control-container", this.Ow);
        t("top", "left"), t("top", "right"), t("bottom", "left"), t("bottom", "right")
    }, Pw: function () {
        T._Q.Qq(this.PI)
    }
}), T.Control.Zoom = T.Control.extend({
    options: {
        position: T_ANCHOR_TOP_LEFT,
        zoomInText: " ",
        zoomInTitle: "放大",
        zoomOutText: "-",
        zoomOutTitle: "缩小"
    }, onAdd: function (t) {
        var i = "tdt-control-zoom", n = T._Q.s("div", i   " tdt-bar"), e = this.options;
        return this.pI = this.AI(e.zoomInText, e.zoomInTitle, i   "-in", n, this.aI), this.SI = this.AI(e.zoomOutText, e.zoomOutTitle, i   "-out", n, this.sI), this.DI(), t.on("zoomend zoomlevelschange", this.DI, this), t.on("minzoom", this.DI, this), t.on("maxzoom", this.DI, this), n
    }, onRemove: function (t) {
        t.off("zoomend zoomlevelschange", this.DI, this), t.off("minzoom", this.DI, this), t.off("maxzoom", this.DI, this)
    }, disable: function () {
        return this.dI = !0, this.DI(), this
    }, enable: function () {
        return this.dI = !1, this.DI(), this
    }, aI: function (t) {
        this.dI || this.jE.zoomIn(this.jE.options.aW * (t.shiftKey ? 3 : 1))
    }, sI: function (t) {
        this.dI || this.jE.zoomOut(this.jE.options.aW * (t.shiftKey ? 3 : 1))
    }, AI: function (t, i, n, e, o) {
        var s = T._Q.s("a", n, e);
        return s.innerHTML = t, s.href = "https://blog.csdn.net/hui_54520/article/details/126170644", s.title = i, T.oq.on(s, "mousedown dblclick", T.oq.stopPropagation).on(s, "click", T.oq.uw).on(s, "click", o, this).on(s, "click", this.OI, this), s
    }, DI: function () {
        var t = this.jE, i = "tdt-disabled";
        T._Q.Tq(this.pI, i), T._Q.Tq(this.SI, i), (this.dI || t.fW === t.getMinZoom()) && T._Q.Rq(this.SI, i), (this.dI || t.fW === t.getMaxZoom()) && T._Q.Rq(this.pI, i)
    }
}), T.Map.n({FI: !1}), T.Map._(function () {
    this.options.FI && (this.FI = new T.Control.Zoom, this.addControl(this.FI))
}), T.oI.zoom = function (t) {
    return new T.Control.Zoom(t)
}, T.Control.fI = T.Control.extend({
    options: {
        position: T_ANCHOR_BOTTOM_LEFT,
        GI: '<div style="height:24px"><img style="background-color:transparent;background-image:url('   T.w.e   "/logo.png);filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=image,src="https://blog.csdn.net/hui_54520/article/details/   T.w.e   '/logo.png);MozOpacity:1;opacity:1;" src="https://blog.csdn.net/hui_54520/article/details/126170644'   T.w.e   '/logo.png" width="53px" height="22px" opacity="0"/><div style="display:inline;position:relative;bottom:4px;white-space:nowrap;padding:0 0 0 3px;">GS(2022)3124号 - 甲测资字1100471</div></div>'
    }, initialize: function (t) {
        T.setOptions(this, t), this.gI = {}
    }, onAdd: function (t) {
        t.cE = this, this.Ow = T._Q.s("div", "tdt-control-copyright"), T.oq && T.oq.iT(this.Ow);
        for (var i in t.hW) t.hW[i].VE && this.BE(t.hW[i].VE());
        return this.Oe(), this.Ow
    }, HI: function (t) {
        return this.options.GI = t, this.Oe(), this
    }, BE: function (t) {
        return t ? (this.gI[t] || (this.gI[t] = 0), this.gI[t]  , this.Oe(), this) : this
    }, NE: function (t) {
        return t ? (this.gI[t] && (this.gI[t]--, this.Oe()), this) : this
    }, Oe: function () {
        if (this.jE) {
            var t = [];
            for (var i in this.gI) this.gI[i] && t.push(i);
            var n = [];
            this.options.GI && n.push(this.options.GI), t.length && n.push(t.join(", ")), this.Ow.innerHTML = n.join(" | ")
        }
    }
}), T.Map.n({cE: !0}), T.Map._(function () {
    this.options.cE && (new T.Control.fI).addTo(this)
}), T.oI.Ue = function (t) {
    return new T.Control.fI(t)
}, T.Control.Copyright = T.Control.fI.extend({
    options: {position: T_ANCHOR_BOTTOM_RIGHT, GI: ""}, initialize: function (t) {
        T.setOptions(this, t), this.hI = []
    }, addCopyright: function (t) {
        if (this.hI["str"   t.id]) return void alert("copyright id 重复");
        this.hI.push(t), this.hI["str"   t.id] = t;
        var i = T._Q.s("div", "tdt-control-copyright");
        T.oq && T.oq.iT(i), i.innerHTML = t.content, t._span = i, this.Ow.appendChild(i);
        var n = this.jE.getCenter();
        this.JI(n)
    }, removeCopyright: function (t) {
        this.Ow.removeChild(this.hI["str"   t.id]._span), this.hI["str"   t.id] = null;
        for (var i = 0; i < this.hI.length; i  ) if (this.hI[i].id == t.id) {
            this.hI.splice(i, 1);
            break
        }
    }, JI: function (t) {
        if (this.jE) {
            if (t instanceof T.dq) var i = t; else var i = t.target.getCenter();
            for (var n = 0; n < this.hI.length; n  ) this.hI[n].bounds && (this.hI[n].bounds.contains(i) ? "none" == this.hI[n]._span.style.display && (this.hI[n]._span.style.display = "") : this.hI[n]._span.style.display = "none")
        }
    }, getCopyright: function (t) {
        return this.hI["str"   t]
    }, getCopyrightCollection: function () {
        return this.hI
    }, onAdd: function (t) {
        return this.jE = t, t.cE = this, this.Ow = T._Q.s("div", "tdt-control-copyright"), T.oq && T.oq.iT(this.Ow), this.Oe(), this.jI = t.on("move", this.JI, this), this.Ow
    }, onRemove: function (t) {
        T._Q.Qq(this.Ow), this.Ow = null, t.off("move"), this.jI = null
    }
}), T.Control.DataSources = T.Control.extend({
    options: {position: T_ANCHOR_BOTTOM_LEFT}, initialize: function (t) {
        T.setOptions(this, t), this.dataSources = new T.DataSources
    }, onAdd: function (t) {
        return this.jE = t, this.Ow = T._Q.s("div", "tdt-control-datasources"), T.oq && T.oq.iT(this.Ow), this.Ow.innerHTML = '<div style="height:24px">数据来源:国家地理信息公共服务平台</div>', this.Oe(), t.on("moveend", this.Oe, this), this.Ow
    }, onRemove: function () {
        T._Q.Qq(this.Ow), map.off("moveend", this.Oe, this), this.Ow = null
    }, getLayerArray: function () {
        for (var t = this.jE.getPanes().tilePane, i = ["vec", "cva", "ter", "cta", "img", "cia"], n = [], e = 0; e < i.length; e  ) t.innerHTML.indexOf(i[e]) !== -1 && n.push(i[e]);
        return n.join(",")
    }, Oe: function () {
        if (this.jE) {
            var t = this.jE, i = this, n = t.getBounds(), e = n.getSouthWest(), o = n.getNorthEast(), s = "c";
            "EPSG:4326" != t.getCode() && (s = "w");
            var r = {
                level: t.getZoom(),
                bound: "'"   e.lng   ","   e.lat   ","   o.lng   ","   o.lat   "'",
                layers: this.getLayerArray(),
                projection: s
            };
            this.dataSourcesInfo = "", this.dataSources.search(r, function (t) {
                var n = "";
                null != t.ds && "null" != t.ds && (n = " & "   t.ds), i.dataSourcesInfo = "国家地理信息公共服务平台"   n, i.Ow.innerHTML = '<div style="height:24px">数据来源:国家地理信息公共服务平台'   n   "</div>"
            }), this.dataSourcesInfo = i.dataSourcesInfo
        }
    }, setColor: function (t) {
        return this.options.color = t, this.Ow.style.color = t, this
    }, getDataSources: function () {
        return this.dataSourcesInfo
    }
}), T.oI.datasources = function (t) {
    return new T.Control.DataSources(t)
}, T.Control.Scale = T.Control.extend({
    options: {position: T_ANCHOR_BOTTOM_LEFT, Cr: 100, KI: !0, kI: !0, type: 1}, onAdd: function (t) {
        var i = "tdt-control-scale", n = T._Q.s("div", i), e = this.options;
        return this.LI(e, i   "-line", n), t.on(e.te ? "moveend" : "move", this.Oe, this), t.sE(this.Oe, this), n
    }, onRemove: function (t) {
        t.off(this.options.te ? "moveend" : "move", this.Oe, this)
    }, setColor: function (t) {
        this.lI && (this.lI.style.borderColor = t, this.ZI.style.color = t), this.CI && 1 == this.type && (this.CI.style.borderColor = t, this.VI.style.color = t)
    }, LI: function (t, i, n) {
        this.type = t.type, t.KI && (this.lI = T._Q.s("div", i, n), this.ZI = T._Q.s("div", "tdt-control-scale-m", this.lI)), t.kI && 1 == t.type && (this.CI = T._Q.s("div", "tdt-control-scale-linebottom", n), this.VI = T._Q.s("div", "tdt-control-scale-i", this.CI))
    }, Oe: function () {
        var t = this.jE, i = t.getSize().y / 2, n = t.distance(t.vW([0, i]), t.vW([this.options.Cr, i]));
        this.cI(n)
    }, cI: function (t) {
        this.options.KI && t && this.BI(t), this.options.kI && t && 1 == this.type && this.vI(t)
    }, BI: function (t) {
        var i = this.NI(t), n = i < 1e3 ? i   " 米" : i / 1e3   " 公里";
        this.bI(this.ZI, n, i / t, this.lI)
    }, vI: function (t) {
        var i, n, e, o = 3.2808399 * t;
        o > 5280 ? (i = o / 5280, n = this.NI(i), this.bI(this.VI, n   " 英里", n / i, this.CI)) : (e = this.NI(o), this.bI(this.VI, e   " 英尺", e / o, this.CI))
    }, bI: function (t, i, n, e) {
        e.style.width = Math.round(this.options.Cr * n)   "px", t.innerHTML = i
    }, NI: function (t) {
        var i = Math.pow(10, (Math.floor(t)   "").length - 1), n = t / i;
        return n = n >= 10 ? 10 : n >= 5 ? 5 : n >= 3 ? 3 : n >= 2 ? 2 : 1, i * n
    }
}), T.oI.scale = function (t) {
    return new T.Control.Scale(t)
}, T.Control.MI = T.Control.extend({
    options: {nI: !0, position: T_ANCHOR_TOP_RIGHT, _I: !0, mI: !1}, initialize: function (t, i, n) {
        T.setOptions(this, n), this.hW = [], this.Qi = 0, this.qi = !1;
        for (var e in t) this.Wi(t[e], e);
        for (e in i) this.Wi(i[e], e, !0)
    }, onAdd: function (t) {
        return this.DW(), this.Oe(), this.jE = t, t.on("zoomend", this.wi, this), this.Ow
    }, onRemove: function () {
        this.jE.off("zoomend", this.wi, this);
        for (var t = 0; t < this.hW.length; t  ) this.hW[t].layer.off("add remove", this.Ei, this)
    }, addBaseLayer: function (t, i) {
        return this.Wi(t, i), this.jE ? this.Oe() : this
    }, addOverlay: function (t, i) {
        return this.Wi(t, i, !0), this.jE ? this.Oe() : this
    }, removeLayer: function (t) {
        t.off("add remove", this.Ei, this);
        var i = this._getLayer(T.d(t));
        return i && this.hW.splice(this.hW.indexOf(i), 1), this.jE ? this.Oe() : this
    }, expand: function () {
        T._Q.Rq(this.Ow, "tdt-control-layers-expanded"), this.ei.style.height = null;
        var t = this.jE.getSize().y - (this.Ow.offsetTop   50);
        return t < this.ei.clientHeight ? (T._Q.Rq(this.ei, "tdt-control-layers-scrollbar"), this.ei.style.height = t   "px") : T._Q.Tq(this.ei, "tdt-control-layers-scrollbar"), this.wi(), this
    }, collapse: function () {
        return L.DomUtil.Tq(this.Ow, "tdt-control-layers-expanded"), this
    }, DW: function () {
        var t = "tdt-control-layers", i = this.Ow = T._Q.s("div", t);
        i.setAttribute("aria-haspopup", !0), T.oq.iT(i), T.oQ.touch || T.oq.IT(i);
        var n = this.ei = T._Q.s("form", t   "-list");
        if (this.options.nI) {
            T.oQ.android || T.oq.on(i, {mouseenter: this.expand, mouseleave: this.collapse}, this);
            var e = this.Ri = T._Q.s("a", t   "-toggle", i);
            e.href = "https://blog.csdn.net/hui_54520/article/details/126170644", e.title = "MI", T.oQ.touch ? T.oq.on(e, "click", T.oq.uw).on(e, "click", this.expand, this) : T.oq.on(e, "focus", this.expand, this), T.oq.on(n, "click", function () {
                setTimeout(T.D(this.ri, this), 0)
            }, this), this.jE.on("click", this.collapse, this)
        } else this.expand();
        this.Ti = T._Q.s("div", t   "-base", n), this.ti = T._Q.s("div", t   "-separator", n), this.Yi = T._Q.s("div", t   "-overlays", n), i.appendChild(n)
    }, _getLayer: function (t) {
        for (var i = 0; i < this.hW.length; i  ) if (this.hW[i] && T.d(this.hW[i].layer) === t) return this.hW[i]
    }, Wi: function (t, i, n) {
        t.on("add remove", this.Ei, this), this.hW.push({
            layer: t,
            name: i,
            overlay: n
        }), this.options._I && t.setZIndex && (this.Qi  , t.setZIndex(this.Qi))
    }, Oe: function () {
        if (!this.Ow) return this;
        T._Q.qq(this.Ti), T._Q.qq(this.Yi);
        var t, i, n, e, o = 0;
        for (n = 0; n < this.hW.length; n  ) e = this.hW[n], this.Ui(e), i = i || e.overlay, t = t || !e.overlay, o  = e.overlay ? 0 : 1;
        return this.options.mI && (t = t && o > 1, this.Ti.style.display = t ? "" : "none"), this.ti.style.display = i && t ? "" : "none", this
    }, Ei: function (t) {
        this.qi || this.Oe();
        var i = this._getLayer(T.d(t.target)),
            n = i.overlay ? "AQ" === t.type ? "overlayadd" : "overlayremove" : "AQ" === t.type ? "baselayerchange" : null;
        n && this.jE.wQ(n, i)
    }, ui: function (t, i) {
        var n = '<input type="radio" class="tdt-control-layers-selector" name="'   t   '"'   (i ? ' checked="checked"' : "")   "/>",
            e = document.createElement("div");
        return e.innerHTML = n, e.firstChild
    }, Ui: function (t) {
        var i, n = document.createElement("label"), e = this.jE.hasLayer(t.layer);
        t.overlay ? (i = document.createElement("input"), i.type = "checkbox", i.className = "tdt-control-layers-selector", i.defaultChecked = e) : i = this.ui("tdt-base-layers", e), i.layerId = T.d(t.layer), T.oq.on(i, "click", this.ri, this);
        var o = document.createElement("span");
        o.innerHTML = " "   t.name;
        var s = document.createElement("div");
        n.appendChild(s), s.appendChild(i), s.appendChild(o);
        var r = t.overlay ? this.Yi : this.Ti;
        return r.appendChild(n), this.wi(), n
    }, ri: function () {
        var t, i, n, e = this.ei.getElementsByTagName("input"), o = [], s = [];
        this.qi = !0;
        for (var r = e.length - 1; r >= 0; r--) t = e[r], i = this._getLayer(t.layerId).layer, n = this.jE.hasLayer(i), t.checked && !n ? o.push(i) : !t.checked && n && s.push(i);
        for (r = 0; r < s.length; r  ) this.jE.removeLayer(s[r]);
        for (r = 0; r < o.length; r  ) this.jE.addLayer(o[r]);
        this.qi = !1, this.OI()
    }, wi: function () {
        for (var t, i, n = this.ei.getElementsByTagName("input"), e = this.jE.getZoom(), o = n.length - 1; o >= 0; o--) t = n[o], i = this._getLayer(t.layerId).layer, t.disabled = void 0 !== i.options.minZoom && e < i.options.minZoom || void 0 !== i.options.maxZoom && e > i.options.maxZoom
    }, Ii: function () {
        return this.expand()
    }, ii: function () {
        return this.collapse()
    }
}), T.oI.layers = function (t, i, n) {
    return new T.Control.MI(t, i, n)
}, T.Control.MapType = T.Control.extend({
    includes: T.iQ.OQ,
    options: {
        position: T_ANCHOR_TOP_RIGHT,
        behavior: "previous",
        expand: "horizontal",
        _I: !0,
        maxLayersInRow: 5,
        manageLayers: !0
    },
    initialize: function (t, i) {
        T.S.l(arguments[0]) || (i = t, this.Oi(), t = T.w.oi), T.setOptions(this, i), this._expandDirection = this.options.position.indexOf("left") != -1 ? "right" : "left", this.options.manageLayers && this.on("activelayerchange", this.Pi, this), this.pi(t)
    },
    Oi: function () {
        T.w.oi = [{
            title: "地图",
            icon: T.Icon.Default.imagePath   "/map/maptype/vector.png",
            layer: TMAP_NORMAL_MAP
        }, {
            title: "卫星",
            icon: T.Icon.Default.imagePath   "/map/maptype/satellite.png",
            layer: TMAP_SATELLITE_MAP
        }, {
            title: "卫星混合",
            icon: T.Icon.Default.imagePath   "/map/maptype/satellitepoi.png",
            layer: TMAP_HYBRID_MAP
        }, {
            title: "地形",
            icon: T.Icon.Default.imagePath   "/map/maptype/terrain.png",
            layer: TMAP_TERRAIN_MAP
        }, {
            title: "地形混合",
            icon: T.Icon.Default.imagePath   "/map/maptype/terrainpoi.png",
            layer: TMAP_TERRAIN_HYBRID_MAP
        }]
    },
    onAdd: function (t) {
        return this.Ow = T._Q.s("div", "tdt-iconLayers"), T._Q.Rq(this.Ow, "tdt-iconLayers_"   this.options.position), this.Ai(), t.on("click", this.collapse, this), this.options.manageLayers && this.Pi(), this.Ow
    },
    onRemove: function (t) {
        t.off("click", this.collapse, this)
    },
    pi: function (t) {
        this.hW = {}, t.map(function (t) {
            var i = T.d(t.layer);
            this.hW[i] = T.extend(t, {id: i})
        }.D(this)), this.Ow && this.Ai()
    },
    ai: function (t) {
        var i = t && this.hW[T.d(t)];
        i && i.id !== this._activeLayerId && (this._previousLayerId = this._activeLayerId, this._activeLayerId = i.id, this.Ow && this.Ai(), this.wQ("activelayerchange", {layer: t}))
    },
    expand: function () {
        this.Si().slice(1).map(function (t) {
            var i = this.si(t.id);
            T._Q.Tq(i, "tdt-iconLayers-layerCell_hidden")
        }.D(this))
    },
    collapse: function () {
        this.Si().slice(1).map(function (t) {
            var i = this.si(t.id);
            T._Q.Rq(i, "tdt-iconLayers-layerCell_hidden")
        }.D(this))
    },
    Di: function () {
        return this._activeLayerId ? this.hW[this._activeLayerId] : length(this.hW) ? first(this.hW) : null
    },
    di: function () {
        var t = this.Di();
        return t ? this._previousLayerId ? this.hW[this._previousLayerId] : find(this.hW, function (i) {
            return i.id !== t.id
        }.D(this)) || null : null
    },
    Fi: function () {
        var t = [], i = this.Di() ? this.Di().id : null, n = this.di() ? this.di().id : null;
        return each(this.hW, function (e) {
            e.id !== i && e.id !== n && t.push(e)
        }), t
    },
    Si: function () {
        var t = {};
        return t.previous = function () {
            var t = this.Fi();
            return this.Di() && t.unshift(this.Di()), this.di() && t.unshift(this.di()), t
        }, t[this.options.behavior].apply(this, arguments)
    },
    si: function (t) {
        if ("Microsoft Internet Explorer" != navigator.appName || "MSIE8.0" != navigator.appVersion.split(";")[1].replace(new RegExp("[ ]", "g"), "")) var i = this.Ow.getElementsByClassName("tdt-iconLayers-layerCell"); else var i = document.getElementsByClassName("tdt-iconLayers-layerCell", this.Ow);
        for (var n = 0; n < i.length; n  ) if (i[n].getAttribute("data-layerid") == t) return i[n]
    },
    fi: function (t) {
        var i = T._Q.s("div", "tdt-iconLayers-layer");
        if (i.setAttribute("data-layerid", t.id), t.title) {
            var n = T._Q.s("div", "tdt-iconLayers-layerTitleContainer"),
                e = T._Q.s("div", "tdt-iconLayers-layerTitle"), o = T._Q.s("div", "tdt-iconLayers-layerCheckIcon");
            e.innerHTML = t.title, n.appendChild(e), i.appendChild(n), i.appendChild(o)
        }
        return t.icon && i.setAttribute("style", "background-image: url('"   t.icon   "')"), i
    },
    Gi: function () {
        for (var t, i, n = this.Si(), e = this.Di() && this.Di().id, o = 0; o < n.length; o  ) o % this.options.maxLayersInRow === 0 && (t = T._Q.s("div", "tdt-iconLayers-layersRow"), this.options.position.indexOf("bottom") === -1 ? this.Ow.appendChild(t) : prepend(this.Ow, t)), i = T._Q.s("div", "tdt-iconLayers-layerCell"), i.setAttribute("data-layerid", n[o].id), 0 !== o && T._Q.Rq(i, "tdt-iconLayers-layerCell_hidden"), n[o].id === e && T._Q.Rq(i, "tdt-iconLayers-layerCell_active"), "left" === this._expandDirection ? T._Q.Rq(i, "tdt-iconLayers-layerCell_expandLeft") : T._Q.Rq(i, "tdt-iconLayers-layerCell_expandRight"), i.appendChild(this.fi(n[o])), this.options.position.indexOf("right") === -1 ? t.appendChild(i) : prepend(t, i)
    },
    gi: function (t) {
        T.oq.stopPropagation(t);
        var i = (t.target || t.srcElement, (t.currentTarget || t.target || t.srcElement).getAttribute("data-layerid")),
            n = this.hW[i];
        "undefined" != typeof n && (this.ai(n.layer), this.expand())
    },
    Hi: function () {
        if (each(this.hW, function (t) {
            var i = this.si(t.id);
            i && T.oq.on(i, "click", this.gi.D(this))
        }.D(this)), "Microsoft Internet Explorer" != navigator.appName || "MSIE8.0" != navigator.appVersion.split(";")[1].replace(new RegExp("[ ]", "g"), "")) var t = this.Ow.getElementsByClassName("tdt-iconLayers-layersRow"); else var t = document.getElementsByClassName("tdt-iconLayers-layersRow", this.Ow);
        for (var i = function (t) {
            T.oq.stopPropagation(t), this.expand()
        }.D(this), n = function (t) {
            T.oq.stopPropagation(t), this.collapse()
        }.D(this), e = function (t) {
            T.oq.stopPropagation(t)
        }, o = 0; o < t.length; o  ) {
            var s = t[o];
            T.oq.on(s, "mouseenter", i), T.oq.on(s, "mouseleave", n), T.oq.on(s, "mousemove", e)
        }
    },
    Ai: function () {
        this.Ow.innerHTML = "", this.Gi(), this.Hi()
    },
    Pi: function () {
        if (this.jE) {
            var t = this.Di(), i = this.di();
            i ? this.jE.clearMapType(i.layer) : each(this.hW, function (t) {
                var i = t.layer;
                this.jE.clearMapType(i)
            }.D(this)), t && this.jE.setMapType(t.layer)
        }
    }
}), T.oI.maptype = function (t, i) {
    return new T.Control.MapType(t, i)
}, Array.prototype.map || (Array.prototype.map = function (t, i) {
    var n, e, o;
    if (null == this) throw new TypeError(" this is null or not defined");
    var s = Object(this), r = s.length >>> 0;
    if ("[object Function]" != Object.prototype.toString.call(t)) throw new TypeError(t   " is not a function");
    for (i && (n = i), e = new Array(r), o = 0; o < r;) {
        var h, a;
        o in s && (h = s[o], a = t.call(n, h, o, s), e[o] = a), o  
    }
    return e
}), Function.prototype.D || (Function.prototype.D = function (t) {
    if ("function" != typeof this) throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");
    var i = Array.prototype.slice.call(arguments, 1), n = this, e = function () {
    }, o = function () {
        return n.apply(this instanceof e && t ? this : t, i.concat(Array.prototype.slice.call(arguments)))
    };
    return e.prototype = this.prototype, o.prototype = new e, o
}), Array.prototype.indexOf || (Array.prototype.indexOf = function (t) {
    var i = -1;
    if (0 == this.length) return i;
    for (var n = 0; n < this.length; n  ) if (this[n] === t) {
        i = n;
        break
    }
    return i
}), document.getElementsByClassName || (document.getElementsByClassName = function (t, i) {
    for (var n = [], e = (i || document).getElementsByTagName("*"), o = e.length, s = t.split(" "), r = s.length, h = 0; h < o; h  ) {
        for (var a = e[h].className.split(" "), u = (a.length, []), c = 0; c < r; c  ) a.indexOf(s[c]) !== -1 && u.push(!0);
        u.length === r && n.push(e[h])
    }
    return n
}), T.hi = T.m.extend({
    run: function (t, i, n, e) {
        this.uw(), this.Ji = t, this.aT = !0, this.ji = n || .25, this.Ki = 1 / Math.max(e || .5, .2), this.YU = T._Q.getPosition(t), this.ki = i.sQ(this.YU), this.eu =  new Date, this.wQ("start"), this.Li()
    }, uw: function () {
        this.aT && (this.li(!0), this.Zi())
    }, Li: function () {
        this.Ci = T.S.C(this.Li, this), this.li(!0)
    }, li: function (t) {
        var i =  new Date - this.eu, n = 1e3 * this.ji;
        i < n ? this.Vi(this.ci(i / n), t) : (this.Vi(1), this.Zi())
    }, Vi: function (t, i) {
        var n = this.YU.AQ(this.ki.fQ(t));
        i && n.JQ(), T._Q.setPosition(this.Ji, n), this.wQ("step")
    }, Zi: function () {
        T.S.V(this.Ci), this.aT = !1, this.wQ("end")
    }, ci: function (t) {
        return 1 - Math.pow(1 - t, this.Ki)
    }
}), T.Map.M({
    gW: function (t, i, n) {
        if (i = void 0 === i ? this.fW : this.GW(i), t = this.Rw(T.fq(t), i, this.options.maxBounds), n = n || {}, this.Iw(), this.CW && !n.reset && n !== !0) {
            void 0 !== n.Tw && (n.zoom = T.extend({Tw: n.Tw}, n.zoom), n.qw = T.extend({
                Tw: n.Tw,
                duration: n.duration
            }, n.qw));
            var e = this.fW !== i ? this.Bi && this.Bi(t, i, n.zoom) : this.vi(t, n.qw);
            if (e) return clearTimeout(this.Uw), this
        }
        return this.ZW(t, i), this
    }, centerAndZoom: function (t, i, n) {
        this.gW(t, i, n), this.options.datasourcesControl && "undefined" == typeof this.mapDataSources && (this.mapDataSources = (new T.Control.DataSources).addTo(this))
    }, getDataSources: function () {
        return this.mapDataSources
    }, panBy: function (t, i) {
        if (t = T.SQ(t).hQ(), i = i || {}, !t.x && !t.y) return this.wQ("moveend");
        if (i.Tw !== !0 && !this.getSize().contains(t)) return this.ZW(this._q(this.nq(this.getCenter()).AQ(t)), this.getZoom()), this;
        if (this.EE || (this.EE = new T.hi, this.EE.on({
            step: this.Ni,
            end: this.bi
        }, this)), i.BU || this.wQ("movestart"), i.Tw !== !1) {
            T._Q.Rq(this.ow, "tdt-pan-anim");
            var n = this.lw().sQ(t).hQ();
            this.EE.run(this.ow, n, i.duration || .25, i.aU)
        } else this.Ww(t), this.wQ("move").wQ("moveend");
        return this
    }, Ni: function () {
        this.wQ("move")
    }, bi: function () {
        T._Q.Tq(this.ow, "tdt-pan-anim"), this.wQ("moveend")
    }, vi: function (t, i) {
        var n = this.dE(t).KQ();
        return !((i && i.Tw) !== !0 && !this.getSize().contains(n)) && (this.panBy(n, i), !0)
    }
}), T.Map.n({Nr: !0, Mi: 4});
var zoomAnimated = T._Q.Iq && T.oQ.any3d && !T.oQ.mobileOpera;
zoomAnimated && T.Map._(function () {
    this.ZE = this.options.Nr, this.ZE && (this.ni(), T.oq.on(this._i, T._Q.iq, this.mi, this))
}), T.Map.M(zoomAnimated ? {
    ni: function () {
        var t = this._i = T._Q.s("div", "tdt-proxy tdt-zoom-animated");
        this.aw.mapPane.appendChild(t), this.on("Ge", function (i) {
            var n = T._Q.uq, e = t.style[n];
            T._Q.Uq(t, this.nq(i.center, i.zoom), this.cW(i.zoom, 1)), e === t.style[n] && this.ER && this.QO()
        }, this), this.on("load moveend", function () {
            var i = this.getCenter(), n = this.getZoom();
            T._Q.Uq(t, this.nq(i, n), this.cW(n, 1))
        }, this)
    }, mi: function (t) {
        this.ER && t.propertyName.indexOf("bQ") >= 0 && this.QO()
    }, qO: function () {
        return !this.Ow.getElementsByClassName("tdt-zoom-animated").length
    }, Bi: function (t, i, n) {
        if (this.ER) return !0;
        if (n = n || {}, !this.ZE || n.Tw === !1 || this.qO() || Math.abs(i - this.fW) > this.options.Mi) return !1;
        var e = this.cW(i), o = this.dE(t).FQ(1 - 1 / e);
        return !(n.Tw !== !0 && !this.getSize().contains(o)) && (T.S.C(function () {
            this.qE(!0).ge(t, i, !0)
        }, this), !0)
    }, ge: function (t, i, n, e) {
        n && (this.ER = !0, this.WO = t, this.RR = i, T._Q.Rq(this.ow, "tdt-zoom-anim")), this.wQ("Ge", {
            center: t,
            zoom: i,
            noUpdate: e
        }), setTimeout(T.D(this.QO, this), 250)
    }, QO: function () {
        this.ER && (T._Q.Tq(this.ow, "tdt-zoom-anim"), this.ER = !1, this.QE(this.WO, this.RR), T.S.C(function () {
            this.mw(!0)
        }, this))
    }
} : {}), T.Map.M({
    enableContinuousZoom: function () {
        this.options.Mi = 4
    }, disableContinuousZoom: function () {
        this.options.Mi = 0
    }, isContinuousZoom: function () {
        return 4 == this.options.Mi
    }
}), T.Map.M({
    Ne: function (t, i, n) {
        function e(t) {
            var i = t ? -1 : 1, n = t ? v : m, e = v * v - m * m   i * g * g * w * w, o = 2 * n * g * w, s = e / o,
                r = Math.sqrt(s * s   1) - s, h = r < 1e-9 ? -18 : Math.log(r);
            return h
        }

        function o(t) {
            return (Math.exp(t) - Math.exp(-t)) / 2
        }

        function s(t) {
            return (Math.exp(t)   Math.exp(-t)) / 2
        }

        function r(t) {
            return o(t) / s(t)
        }

        function h(t) {
            return m * (s(E) / s(E   y * t))
        }

        function a(t) {
            return m * (s(E) * r(E   y * t) - o(E)) / g
        }

        function u(t) {
            return 1 - Math.pow(1 - t, 1.5)
        }

        function c() {
            var n = (Date.now() - Q) / x, e = u(n) * q;
            n <= 1 ? (this.wE = T.S.C(c, this), this.QE(this._q(l.AQ(f.sQ(l).fQ(a(e) / w)), p), this.gw(m / h(e), p), {Ne: !0})) : this.QE(t, i).mw(!0)
        }

        if (n = n || {}, n.Tw === !1 || !T.oQ.any3d) return this.gW(t, i, n);
        this.Iw();
        var l = this.nq(this.getCenter()), f = this.nq(t), d = this.getSize(), p = this.fW;
        t = T.fq(t), i = void 0 === i ? p : i;
        var m = Math.max(d.x, d.y), v = m * this.cW(p, i), w = f.distanceTo(l) || 1, y = 1.42, g = y * y, E = e(0),
            Q = Date.now(), q = (e(1) - E) / y, x = n.duration ? 10 * n.duration : 10 * q * .8;
        return this.qE(!0), c.call(this), this
    }, wO: function (t, i) {
        var n = this.NW(t, i);
        return this.Ne(n.center, n.zoom, i)
    }
}), T.Map.M({
    EO: {eO: 1e4, watch: !1}, RO: function (t) {
        if (t = this.rO = T.extend({}, this.EO, t), !("geolocation" in navigator)) return this.TO({
            code: 0,
            message: "tO"
        }), this;
        var i = T.D(this.YO, this), n = T.D(this.TO, this);
        return t.watch ? this.UO = navigator.geolocation.watchPosition(i, n, t) : navigator.geolocation.getCurrentPosition(i, n, t), this
    }, uO: function () {
        return navigator.geolocation && navigator.geolocation.clearWatch && navigator.geolocation.clearWatch(this.UO), this.rO && (this.rO.gW = !1), this
    }, TO: function (t) {
        var i = t.code, n = t.message || (1 === i ? "IO" : 2 === i ? "iO" : "eO");
        this.rO.gW && !this.CW && this.mW(), this.wQ("OO", {code: i, message: "oO"   n   "."})
    }, YO: function (t) {
        var i = t.coords.latitude, n = t.coords.longitude, e = new T.dq(i, n), o = e.Jq(t.coords.accuracy),
            s = this.rO;
        if (s.gW) {
            var r = this.nW(o);
            this.gW(e, s.maxZoom ? Math.min(r, s.maxZoom) : r)
        }
        var h = {KT: e, bounds: o, PO: t.PO};
        for (var a in t.coords) "number" == typeof t.coords[a] && (h[a] = t.coords[a]);
        this.wQ("pO", h)
    }
});
for (var n = 0; n < T.w.a.length; n  ) T.lR.MR("TDT_style"   n, T.w.E   T.w.a[n]);
for (var m = 0; m < T.w.A.length; m  ) T.lR.nR("TDT_components"   m, T.w.E   T.w.A[m]);
T.lR.bR(T.w.E   "/qv?tk="   T.w.TMAP_AUTHKEY   "&t="   Math.random()   "&callback=T.qv");
学新通

})();

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhfkbcbg
系列文章
更多 icon
同类精品
更多 icon
继续加载