UNPKG

mapboxgl-tools

Version:

基于mapboxgl的一些实用工具

1 lines 139 kB
var __vite_style__=document.createElement("style");__vite_style__.innerHTML=".wbk-contextmenus{pointer-events:auto;box-shadow:0 0 3px 1px #8e8e8e;border-radius:5px}.wbk-contextmenus-item{padding:3px 10px;cursor:pointer;transition:all ease .3s;color:#666;fill:#666}.wbk-contextmenus-item:hover .wbk-contextmenus-submenu{display:block!important}.wbk-contextmenus-item:hover{background:#c9e0e0a8;fill:#1890ff}.wbk-contextmenus-item:hover>.wbk-menu-item{color:#1890ff}.wbk-drop-other-menu .ant-dropdown-menu{box-shadow:0 2px 8px #00000029;transform:translate(calc(100% + 10px)) translateY(-39px)}.aside-content{box-shadow:0 0 4px 1px #8e8e8e}.aside-hidden{transform:scale(0) translateY(-50%) translate(50%);transform-origin:right top}.btn-hidden{transform:scale(0) translate(50%) translateY(-50%);transform-origin:right top;opacity:0}.aside-visible{transform:scale(1) translateY(0) translate(0);opacity:1}.wbiokr-geoserver-modal{background:rgba(0,0,0,0);animation:opactiy-in .3s ease 1 forwards}.wbiokr-geoserver-modal>.wbiokr-geoserver-modal-wrappper{transform:scale(0);animation:scale-in .4s ease 1 forwards;width:700px}@-moz-keyframes opactiy-in{0%{background:rgba(0,0,0,0)}to{background:rgba(0,0,0,.5)}}@-webkit-keyframes opactiy-in{0%{background:rgba(0,0,0,0)}to{background:rgba(0,0,0,.5)}}@-o-keyframes opactiy-in{0%{background:rgba(0,0,0,0)}to{background:rgba(0,0,0,.5)}}@keyframes opactiy-in{0%{background:rgba(0,0,0,0)}to{background:rgba(0,0,0,.5)}}@-moz-keyframes scale-in{0%{transform:scale(0)}to{transform:scale(1)}}@-webkit-keyframes scale-in{0%{transform:scale(0)}to{transform:scale(1)}}@-o-keyframes scale-in{0%{transform:scale(0)}to{transform:scale(1)}}@keyframes scale-in{0%{transform:scale(0)}to{transform:scale(1)}}.wbiokr-com-checkbox.wbiokr-com-checked .wbiokr-com-checkbox-content{margin-bottom:1px}.wbiokr-com-checkbox .wbiokr-com-checkbox-content.w-5.h-5{width:7px;height:7px}.wbiokr-ctrl-main{transition:all ease .4s;transform:scale(0);opacity:0;background-color:#fff;box-shadow:0 0 3px 1px #8e8e8e;border-radius:4px;overflow:hidden;padding:0 10px}.wbiokr-ctrl-entry path{transition:all ease-in .5s}.wbiokr-ctrl-active .wbiokr-ctrl-main{transform:none;opacity:1}.wbiokr-ctrl-active .wbiokr-ctrl-entry path{fill:#189fff}.wbiokr-ctrl-close{cursor:pointer;background:rgba(241,37,37,.91)!important;color:#fff;font-size:16px}.mapboxgl-ctrl-top-left .wbiokr-ctrl-absolute{position:absolute!important;left:33px;top:0;transform-origin:left top}.mapboxgl-ctrl-bottom-left .wbiokr-ctrl-absolute{position:absolute!important;left:33px;bottom:0;transform-origin:left bottom}.mapboxgl-ctrl-top-right .wbiokr-ctrl-absolute{position:absolute!important;right:33px;top:0;transform-origin:right top}.mapboxgl-ctrl-bottom-right .wbiokr-ctrl-absolute{position:absolute!important;right:33px;bottom:0;transform-origin:right bottom}.wbiokr-control-measureDistance-result,.wbiokr-control-measureArea-result{padding:1px 5px;background:#ffffffe8;border-radius:5px;box-shadow:0 0 4px 1px #999}.wbiokr-control-pick .wbiokr-control-pick-main{min-width:115px;white-space:nowrap}.mapboxgl-wbkrect-control .mapboxgl-wbkrect-control-entry{transition:all ease .3s}.mapboxgl-wbkrect-control .mapboxgl-wbkrect-control-entry.wbk-show path{fill:#189fff}.wbiokr-control-positionControl-main textarea{border:1px solid #eee}.wbiokr-control-positionControl-main textarea:hover,.wbiokr-control-positionControl-main textarea:focus{border:1px solid #189fff}.wbiokr-control-positionControl-main textarea:focus{box-shadow:0 0 3px #189fff}.wbiokr-control-positionControl-main ul{max-height:200px}.wbiokr-control-positionControl-main ul li:hover .wbiokr-position-loc{color:#189fff}.wbiokr-control-positionControl-main .wbiokr-position-tag{color:#389e0d;height:24px;min-width:30px;background:#e6f7ff;border:1px solid #b7eb8f;border-radius:3px;padding:0 2px}.wbiokr-control-positionControl-main .wbokr-position-selected .wbiokr-position-tag{color:#096dd9;border-color:#91d5ff}.wbiokr-control-positionControl-main .wbokr-position-selected .wbiokr-position-loc{color:#189fff}.wbiokr-control-layersTree-main{background-color:#fffffff2}.wbiokr-control-layersTree-main-ul li{color:#ccc}.wbiokr-control-layersTree-main-ul li.wbiokr-active{color:#333}.wbiokr-control-layersTree-main-ul li:not(.wbiokr-active) svg{fill:#ccc!important}\n",document.head.appendChild(__vite_style__),function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@wbiokr/css-class"),require("@wbiokr/geo")):"function"==typeof define&&define.amd?define(["exports","@wbiokr/css-class","@wbiokr/geo"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).ui={},null,t.geo)}(this,(function(t,e,n){"use strict";var i="http://www.w3.org/1999/xhtml",r={svg:"http://www.w3.org/2000/svg",xhtml:i,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function s(t){var e=t+="",n=e.indexOf(":");return n>=0&&"xmlns"!==(e=t.slice(0,n))&&(t=t.slice(n+1)),r.hasOwnProperty(e)?{space:r[e],local:t}:t}function o(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===i&&e.documentElement.namespaceURI===i?e.createElement(t):e.createElementNS(n,t)}}function a(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function c(t){var e=s(t);return(e.local?a:o)(e)}function l(){}function h(t){return null==t?l:function(){return this.querySelector(t)}}function u(t){return null==t?[]:Array.isArray(t)?t:Array.from(t)}function d(){return[]}function p(t){return function(e){return e.matches(t)}}var m=Array.prototype.find;function f(){return this.firstElementChild}var g=Array.prototype.filter;function y(){return Array.from(this.children)}function b(t){return new Array(t.length)}function v(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}function w(t){return function(){return t}}function k(t,e,n,i,r,s){for(var o,a=0,c=e.length,l=s.length;a<l;++a)(o=e[a])?(o.__data__=s[a],i[a]=o):n[a]=new v(t,s[a]);for(;a<c;++a)(o=e[a])&&(r[a]=o)}function A(t,e,n,i,r,s,o){var a,c,l,h=new Map,u=e.length,d=s.length,p=new Array(u);for(a=0;a<u;++a)(c=e[a])&&(p[a]=l=o.call(c,c.__data__,a,e)+"",h.has(l)?r[a]=c:h.set(l,c));for(a=0;a<d;++a)l=o.call(t,s[a],a,s)+"",(c=h.get(l))?(i[a]=c,c.__data__=s[a],h.delete(l)):n[a]=new v(t,s[a]);for(a=0;a<u;++a)(c=e[a])&&h.get(p[a])===c&&(r[a]=c)}function _(t){return t.__data__}function C(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function L(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function E(t){return function(){this.removeAttribute(t)}}function x(t){return function(){this.removeAttributeNS(t.space,t.local)}}function S(t,e){return function(){this.setAttribute(t,e)}}function M(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function B(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttribute(t):this.setAttribute(t,n)}}function D(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,n)}}function I(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function N(t){return function(){this.style.removeProperty(t)}}function T(t,e,n){return function(){this.style.setProperty(t,e,n)}}function P(t,e,n){return function(){var i=e.apply(this,arguments);null==i?this.style.removeProperty(t):this.style.setProperty(t,i,n)}}function R(t,e){return t.style.getPropertyValue(e)||I(t).getComputedStyle(t,null).getPropertyValue(e)}function O(t){return function(){delete this[t]}}function F(t,e){return function(){this[t]=e}}function U(t,e){return function(){var n=e.apply(this,arguments);null==n?delete this[t]:this[t]=n}}function j(t){return t.trim().split(/^|\s+/)}function z(t){return t.classList||new K(t)}function K(t){this._node=t,this._names=j(t.getAttribute("class")||"")}function Q(t,e){for(var n=z(t),i=-1,r=e.length;++i<r;)n.add(e[i])}function V(t,e){for(var n=z(t),i=-1,r=e.length;++i<r;)n.remove(e[i])}function X(t){return function(){Q(this,t)}}function H(t){return function(){V(this,t)}}function W(t,e){return function(){(e.apply(this,arguments)?Q:V)(this,t)}}function G(){this.textContent=""}function J(t){return function(){this.textContent=t}}function q(t){return function(){var e=t.apply(this,arguments);this.textContent=null==e?"":e}}function Y(){this.innerHTML=""}function Z(t){return function(){this.innerHTML=t}}function $(t){return function(){var e=t.apply(this,arguments);this.innerHTML=null==e?"":e}}function tt(){this.nextSibling&&this.parentNode.appendChild(this)}function et(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function nt(){return null}function it(){var t=this.parentNode;t&&t.removeChild(this)}function rt(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function st(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function ot(t){return t.trim().split(/^|\s+/).map((function(t){var e="",n=t.indexOf(".");return n>=0&&(e=t.slice(n+1),t=t.slice(0,n)),{type:t,name:e}}))}function at(t){return function(){var e=this.__on;if(e){for(var n,i=0,r=-1,s=e.length;i<s;++i)n=e[i],t.type&&n.type!==t.type||n.name!==t.name?e[++r]=n:this.removeEventListener(n.type,n.listener,n.options);++r?e.length=r:delete this.__on}}}function ct(t,e,n){return function(){var i,r=this.__on,s=function(t){return function(e){t.call(this,e,this.__data__)}}(e);if(r)for(var o=0,a=r.length;o<a;++o)if((i=r[o]).type===t.type&&i.name===t.name)return this.removeEventListener(i.type,i.listener,i.options),this.addEventListener(i.type,i.listener=s,i.options=n),void(i.value=e);this.addEventListener(t.type,s,n),i={type:t.type,name:t.name,value:e,listener:s,options:n},r?r.push(i):this.__on=[i]}}function lt(t,e,n){var i=I(t),r=i.CustomEvent;"function"==typeof r?r=new r(e,n):(r=i.document.createEvent("Event"),n?(r.initEvent(e,n.bubbles,n.cancelable),r.detail=n.detail):r.initEvent(e,!1,!1)),t.dispatchEvent(r)}function ht(t,e){return function(){return lt(this,t,e)}}function ut(t,e){return function(){return lt(this,t,e.apply(this,arguments))}}v.prototype={constructor:v,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}},K.prototype={add:function(t){this._names.indexOf(t)<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var dt=[null];function pt(t,e){this._groups=t,this._parents=e}function mt(t){return"string"==typeof t?new pt([[document.querySelector(t)]],[document.documentElement]):new pt([[t]],dt)}pt.prototype={constructor:pt,select:function(t){"function"!=typeof t&&(t=h(t));for(var e=this._groups,n=e.length,i=new Array(n),r=0;r<n;++r)for(var s,o,a=e[r],c=a.length,l=i[r]=new Array(c),u=0;u<c;++u)(s=a[u])&&(o=t.call(s,s.__data__,u,a))&&("__data__"in s&&(o.__data__=s.__data__),l[u]=o);return new pt(i,this._parents)},selectAll:function(t){var e;"function"==typeof t?t=function(t){return function(){return u(t.apply(this,arguments))}}(t):t=null==(e=t)?d:function(){return this.querySelectorAll(e)};for(var n=this._groups,i=n.length,r=[],s=[],o=0;o<i;++o)for(var a,c=n[o],l=c.length,h=0;h<l;++h)(a=c[h])&&(r.push(t.call(a,a.__data__,h,c)),s.push(a));return new pt(r,s)},selectChild:function(t){return this.select(null==t?f:function(t){return function(){return m.call(this.children,t)}}("function"==typeof t?t:p(t)))},selectChildren:function(t){return this.selectAll(null==t?y:function(t){return function(){return g.call(this.children,t)}}("function"==typeof t?t:p(t)))},filter:function(t){var e;"function"!=typeof t&&(e=t,t=function(){return this.matches(e)});for(var n=this._groups,i=n.length,r=new Array(i),s=0;s<i;++s)for(var o,a=n[s],c=a.length,l=r[s]=[],h=0;h<c;++h)(o=a[h])&&t.call(o,o.__data__,h,a)&&l.push(o);return new pt(r,this._parents)},data:function(t,e){if(!arguments.length)return Array.from(this,_);var n=e?A:k,i=this._parents,r=this._groups;"function"!=typeof t&&(t=w(t));for(var s=r.length,o=new Array(s),a=new Array(s),c=new Array(s),l=0;l<s;++l){var h=i[l],u=r[l],d=u.length,p=C(t.call(h,h&&h.__data__,l,i)),m=p.length,f=a[l]=new Array(m),g=o[l]=new Array(m),y=c[l]=new Array(d);n(h,u,f,g,y,p,e);for(var b,v,L=0,E=0;L<m;++L)if(b=f[L]){for(L>=E&&(E=L+1);!(v=g[E])&&++E<m;);b._next=v||null}}return(o=new pt(o,i))._enter=a,o._exit=c,o},enter:function(){return new pt(this._enter||this._groups.map(b),this._parents)},exit:function(){return new pt(this._exit||this._groups.map(b),this._parents)},join:function(t,e,n){var i=this.enter(),r=this,s=this.exit();return"function"==typeof t?(i=t(i))&&(i=i.selection()):i=i.append(t+""),null!=e&&(r=e(r))&&(r=r.selection()),null==n?s.remove():n(s),i&&r?i.merge(r).order():r},merge:function(t){for(var e=t.selection?t.selection():t,n=this._groups,i=e._groups,r=n.length,s=i.length,o=Math.min(r,s),a=new Array(r),c=0;c<o;++c)for(var l,h=n[c],u=i[c],d=h.length,p=a[c]=new Array(d),m=0;m<d;++m)(l=h[m]||u[m])&&(p[m]=l);for(;c<r;++c)a[c]=n[c];return new pt(a,this._parents)},selection:function(){return this},order:function(){for(var t=this._groups,e=-1,n=t.length;++e<n;)for(var i,r=t[e],s=r.length-1,o=r[s];--s>=0;)(i=r[s])&&(o&&4^i.compareDocumentPosition(o)&&o.parentNode.insertBefore(i,o),o=i);return this},sort:function(t){function e(e,n){return e&&n?t(e.__data__,n.__data__):!e-!n}t||(t=L);for(var n=this._groups,i=n.length,r=new Array(i),s=0;s<i;++s){for(var o,a=n[s],c=a.length,l=r[s]=new Array(c),h=0;h<c;++h)(o=a[h])&&(l[h]=o);l.sort(e)}return new pt(r,this._parents).order()},call:function(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this},nodes:function(){return Array.from(this)},node:function(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var i=t[e],r=0,s=i.length;r<s;++r){var o=i[r];if(o)return o}return null},size:function(){let t=0;for(const e of this)++t;return t},empty:function(){return!this.node()},each:function(t){for(var e=this._groups,n=0,i=e.length;n<i;++n)for(var r,s=e[n],o=0,a=s.length;o<a;++o)(r=s[o])&&t.call(r,r.__data__,o,s);return this},attr:function(t,e){var n=s(t);if(arguments.length<2){var i=this.node();return n.local?i.getAttributeNS(n.space,n.local):i.getAttribute(n)}return this.each((null==e?n.local?x:E:"function"==typeof e?n.local?D:B:n.local?M:S)(n,e))},style:function(t,e,n){return arguments.length>1?this.each((null==e?N:"function"==typeof e?P:T)(t,e,null==n?"":n)):R(this.node(),t)},property:function(t,e){return arguments.length>1?this.each((null==e?O:"function"==typeof e?U:F)(t,e)):this.node()[t]},classed:function(t,e){var n=j(t+"");if(arguments.length<2){for(var i=z(this.node()),r=-1,s=n.length;++r<s;)if(!i.contains(n[r]))return!1;return!0}return this.each(("function"==typeof e?W:e?X:H)(n,e))},text:function(t){return arguments.length?this.each(null==t?G:("function"==typeof t?q:J)(t)):this.node().textContent},html:function(t){return arguments.length?this.each(null==t?Y:("function"==typeof t?$:Z)(t)):this.node().innerHTML},raise:function(){return this.each(tt)},lower:function(){return this.each(et)},append:function(t){var e="function"==typeof t?t:c(t);return this.select((function(){return this.appendChild(e.apply(this,arguments))}))},insert:function(t,e){var n="function"==typeof t?t:c(t),i=null==e?nt:"function"==typeof e?e:h(e);return this.select((function(){return this.insertBefore(n.apply(this,arguments),i.apply(this,arguments)||null)}))},remove:function(){return this.each(it)},clone:function(t){return this.select(t?st:rt)},datum:function(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function(t,e,n){var i,r,s=ot(t+""),o=s.length;if(!(arguments.length<2)){for(a=e?ct:at,i=0;i<o;++i)this.each(a(s[i],e,n));return this}var a=this.node().__on;if(a)for(var c,l=0,h=a.length;l<h;++l)for(i=0,c=a[l];i<o;++i)if((r=s[i]).type===c.type&&r.name===c.name)return c.value},dispatch:function(t,e){return this.each(("function"==typeof e?ut:ht)(t,e))},[Symbol.iterator]:function*(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var i,r=t[e],s=0,o=r.length;s<o;++s)(i=r[s])&&(yield i)}};const ft={"⇧":16,shift:16,"⌃":17,ctrl:17,"⌥":18,alt:18,option:18,"⌘":91,meta:91,cmd:91,super:91,win:91},gt={16:"shiftKey",17:"ctrlKey",18:"altKey",91:"metaKey"},yt={"⌫":"Backspace",backspace:"Backspace","⇥":"Tab","⇆":"Tab",tab:"Tab","↩":"Enter","↵":"Enter","⏎":"Enter",return:"Enter",enter:"Enter","⌅":"Enter",pause:"Pause","pause-break":"Pause","⇪":"CapsLock",caps:"CapsLock","caps-lock":"CapsLock","⎋":["Escape","Esc"],escape:["Escape","Esc"],esc:["Escape","Esc"],space:[" ","Spacebar"],"":"PageUp",pgup:"PageUp","page-up":"PageUp","":"PageDown",pgdown:"PageDown","page-down":"PageDown","⇟":"End",end:"End","⇞":"Home",home:"Home",ins:"Insert",insert:"Insert","⌦":["Delete","Del"],del:["Delete","Del"],delete:["Delete","Del"],"←":["ArrowLeft","Left"],left:["ArrowLeft","Left"],"arrow-left":["ArrowLeft","Left"],"↑":["ArrowUp","Up"],up:["ArrowUp","Up"],"arrow-up":["ArrowUp","Up"],"→":["ArrowRight","Right"],right:["ArrowRight","Right"],"arrow-right":["ArrowRight","Right"],"↓":["ArrowDown","Down"],down:["ArrowDown","Down"],"arrow-down":["ArrowDown","Down"],"*":["*","Multiply"],star:["*","Multiply"],asterisk:["*","Multiply"],multiply:["*","Multiply"],"+":["+","Add"],plus:["+","Add"],"-":["-","Subtract"],subtract:["-","Subtract"],dash:["-","Subtract"],semicolon:";",equals:"=",comma:",",period:".","full-stop":".",slash:"/","forward-slash":"/",tick:"`","back-quote":"`","open-bracket":"[","back-slash":"\\","close-bracket":"]",quote:"'",apostrophe:"'","num-0":"0","num-1":"1","num-2":"2","num-3":"3","num-4":"4","num-5":"5","num-6":"6","num-7":"7","num-8":"8","num-9":"9",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",f13:"F13",f14:"F14",f15:"F15",f16:"F16",f17:"F17",f18:"F18",f19:"F19",f20:"F20",f21:"F21",f22:"F22",f23:"F23",f24:"F24",f25:"F25"},bt={"⌫":8,backspace:8,"⇥":9,"⇆":9,tab:9,"↩":13,"↵":13,"⏎":13,return:13,enter:13,"⌅":13,pause:19,"pause-break":19,"⇪":20,caps:20,"caps-lock":20,"⎋":27,escape:27,esc:27,space:32,"":33,pgup:33,"page-up":33,"":34,pgdown:34,"page-down":34,"⇟":35,end:35,"⇞":36,home:36,ins:45,insert:45,"⌦":46,del:46,delete:46,"←":37,left:37,"arrow-left":37,"↑":38,up:38,"arrow-up":38,"→":39,right:39,"arrow-right":39,"↓":40,down:40,"arrow-down":40,ffequals:61,"*":106,star:106,asterisk:106,multiply:106,"+":107,plus:107,"-":109,subtract:109,"|":124,ffplus:171,ffminus:173,";":186,semicolon:186,"=":187,equals:187,",":188,comma:188,dash:189,".":190,period:190,"full-stop":190,"/":191,slash:191,"forward-slash":191,"`":192,tick:192,"back-quote":192,"[":219,"open-bracket":219,"\\":220,"back-slash":220,"]":221,"close-bracket":221,"'":222,quote:222,apostrophe:222};function vt(t){return Array.from(new Set(t))}class wt{constructor(t="global",e=document,n="keydown"){if("keydown"!==n&&"keyup"!==n)throw new Error(n,"事件类型仅支持keydown、keyup");this.eventType=n,this.namespace=t,this.selection=mt(e),this.bindedKeys=[],this.bindings=this.bindings.bind(this),this.capture=this.capture.bind(this),this.bubble=this.bubble.bind(this),this.init()}init(){return this.selection.on(`${this.eventType}.capture.${this.namespace}`,this.capture,!0),this.selection.on(`${this.eventType}.bubble.${this.namespace}`,this.bubble,!1),this}bindings(t,e){var n,i,r=!1,s=Object.keys(this.bindedKeys).map(function(t){return this.bindedKeys[t]}.bind(this));for(n=0;n<s.length;n++)if((i=s[n]).event.modifiers.shiftKey&&!!i.capture===e&&o(t,i,!0)){i.callback(t),r=!0,t.preventDefault();break}if(!r)for(n=0;n<s.length;n++)if(!(i=s[n]).event.modifiers.shiftKey&&!!i.capture===e&&o(t,i,!1)){i.callback(t),t.preventDefault();break}function o(t,e,n){var i=t,r=!1,s=!0;if(void 0!==i.key&&(s=i.key.charCodeAt(0)>255,r=!0,void 0===e.event.key?r=!1:Array.isArray(e.event.key)?-1===e.event.key.map((function(t){return t.toLowerCase()})).indexOf(i.key.toLowerCase())&&(r=!1):i.key.toLowerCase()!==e.event.key.toLowerCase()&&(r=!1)),r||!s&&!e.event.modifiers.shiftKey||(r=i.keyCode===e.event.keyCode),!r)return!1;if(!i.ctrlKey||!i.altKey){if(i.ctrlKey!==e.event.modifiers.ctrlKey)return!1;if(i.altKey!==e.event.modifiers.altKey)return!1}return i.metaKey===e.event.modifiers.metaKey&&(!n||i.shiftKey===e.event.modifiers.shiftKey)}}capture(t){this.bindings(t,!0)}bubble(t){var e=mt(t.target).node().tagName;"INPUT"!==e&&"SELECT"!==e&&"TEXTAREA"!==e&&"true"!==String(t.target.getAttribute("contenteditable"))&&this.bindings(t,!1)}on(t,e,n){if("function"!=typeof e)return this.off(t,n);for(var i=vt([].concat(t)),r=0;r<i.length;r++){var s=i[r]+(n?"-capture":"-bubble"),o={id:s,capture:n,callback:e,event:{key:void 0,keyCode:0,modifiers:{shiftKey:!1,ctrlKey:!1,altKey:!1,metaKey:!1}}};this.bindedKeys[s],this.bindedKeys[s]=o;for(var a=i[r].toLowerCase().match(/(?:(?:[^+⇧⌃⌥⌘])+|[⇧⌃⌥⌘]|\+\+|^\+$)/g),c=0;c<a.length;c++)if("++"===a[c]&&(a[c]="+"),a[c]in ft){var l=gt[ft[a[c]]];o.event.modifiers[l]=!0}else o.event.key=yt[a[c]]||a[c],a[c]in bt&&(o.event.keyCode=bt[a[c]])}return this}unbind(){return this.selection.on(`${this.eventType}.capture.${this.namespace}`,null),this.selection.on(`${this.eventType}.bubble.${this.namespace}`,null),this}clear(){return this.bindedKeys={},this}off(t,e){for(var n=vt([].concat(t)),i=0;i<n.length;i++){var r=n[i]+(!0===e?"-capture":"-bubble");delete this.bindedKeys[r]}return this}}new wt("global",document,"keydown"),new wt("global",document,"keyup");class kt extends class{_onOpen(){this._container.className+=" wbiokr-ctrl-active"}_onClose(){this._container.className=this._container.className.replaceAll("wbiokr-ctrl-active","")}}{_onBindKeyboards(t,e){this.keybinding=new wt(e),t.forEach((t=>{this.keybinding.on(t.code,t.action)}))}_onUnbindKeyboards(){this.keybinding.clear()}}const At=new function(t="WBIOKR-DB",e=1,n="WBIOKR-STORE",i="id"){let r;const s=window.indexedDB||window.webikitIndexedDB||window.mozIndexedDB||window.msIndexedDB;if(!s)return a;const o=null==s?void 0:s.open(t,e);function a(t,e){try{return 0===arguments.length?new Promise(((t,e)=>{const i=r.transaction([n]).objectStore(n).getAll();i.onsuccess=()=>{i.result?t(i.result):e("获取失败")},i.onerror=t=>{e(t)}})):1===arguments.length?(s=t,new Promise(((t,e)=>{const i=r.transaction([n]).objectStore(n).get(s);i.onsuccess=n=>{i.result?t(i.result):e(null)},i.onerror=t=>{e(t)}}))):2===arguments.length?(i=e,new Promise(((t,e)=>{const s=r.transaction([n],"readwrite").objectStore(n).put(i);s.onsuccess=e=>{t(e)},s.onerror=t=>{e(t)}}))):Promise.reject("参数有问题")}catch(s){return Promise.reject(s)}var i,s}return o.onsuccess=function(t){r=t.target.result},o.onerror=function(t){},o.onupgradeneeded=function(t){r=t.target.result,r.objectStoreNames.contains(n)||r.createObjectStore(n,{keyPath:i})},a}("WBIOKR-MAPBOX-TOOLS",1,"WBIOKR-STORE","id");function _t(t){function e(){return(65536*(1+Math.random())|0).toString(16).substring(1)}var n=e()+e()+e()+e()+e()+e()+e()+e();return t?n.substr(0,t):n}function Ct(t,e){let n=t/20037508.34*180,i=e/20037508.34*180;return i=180/Math.PI*(2*Math.atan(Math.exp(i*Math.PI/180))-Math.PI/2),[n,i]}function Lt(t){const e=document.createElement("input");e.value=t,document.body.appendChild(e),e.select(),document.execCommand("copy"),document.body.removeChild(e)}const Et={id:"",name:"",url:"",checked:!1};class xt extends kt{constructor(t,e){super(),this.container=t,this.type="",this.tempDom=null,this.cacheUrls=[],this.form={...Et},this.props={confirm(){},...e},this._onBindKeyboards([{code:"esc",action:this.onClose.bind(this)}],"geoservers")}render(){const t=`\n <div class="wbiokr-geoserver-modal-wrappper w-700 bg-color-fff b-r-6 ">\n <div class="modal-content">\n <div class="modal-header h-50 f-b-c b-eee b-no-lr b-no-t p-lr-20">\n <span class='f-s-16 f-w-600'>${"add"===this.type?"新增":"设置"}自定义图层地址</span>\n <svg class="close-btn c-red o-hover-70 c-p ease-400" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2011" width="14" height="14"><path d="M585.412525 512.594747L973.601616 124.418586c19.600808-19.600808 19.600808-51.898182 0-71.49899l-2.120404-2.120404c-19.600808-19.600808-51.898182-19.600808-71.49899 0L511.793131 439.518384 123.61697 50.799192c-19.600808-19.600808-51.898182-19.600808-71.49899 0l-2.120404 2.120404c-20.11798 19.600808-20.11798 51.898182 0 71.49899l388.189091 388.189091L49.997576 900.783838c-19.587879 19.600808-19.587879 51.898182 0 71.49899l2.120404 2.120404c19.600808 19.600808 51.898182 19.600808 71.49899 0L511.793131 586.214141l388.189091 388.176162c19.600808 19.600808 51.898182 19.600808 71.49899 0l2.120404-2.120404c19.600808-19.600808 19.600808-51.898182 0-71.49899L585.412525 512.594747z m0 0"></path></svg>\n </div>\n <div class="modal-body p-20">\n <section class='p-b-20 b-eee b-no-lr b-no-t'>\n <div class='f-b-c'>\n <span class='f-s-c f-s-14 c-999'>图层信息:</span>\n <div>\n <button class="template-btn h-30 p-lr-10 b-r-4 o-hover-70 ease-300 c-app b-eee b-c-app f-s-14 c-p m-l-10">模板</button>\n <button class="confirm-btn h-30 p-lr-40 b-r-4 o-hover-70 ease-300 c-fff bg-color-app f-s-14 c-p m-l-10">确定</button>\n <button class="clear-btn h-30 p-lr-40 b-r-4 o-hover-70 ease-300 c-fff bg-color-danger f-s-14 c-p m-l-10">清空</button>\n </div>\n </div>\n <div class='p-t-15 f-column'>\n <input type="text" class="name-input w-per-100 h-30 b-eee b-r-4 p-lr-15 border-focus-app border-hover-app shadow-focus-app ease-300" placeholder="请输入名称" value="${this.form.name}">\n <textarea class="url-input w-per-100 h-120 b-eee b-r-4 p-lr-15 border-focus-app border-hover-app shadow-focus-app ease-300 l-h-25 m-t-10" placeholder="请输入地址" rows="3">${this.form.url}</textarea>\n <div class="warning c-aaa f-s-14 m-t-5">注意:请务必输入合法URL,否则可能引发页面崩溃!</div>\n </div>\n </section>\n <section class="modal-main p-tb-20">\n ${0===this.cacheUrls.length?'<div class="empty h-100 w-per-100 f-c c-ccc f-s-16">暂无数据</div>':""}\n <ul>\n ${this.cacheUrls.map((t=>`\n <li class="custom-url-item f-b-c p-lr-10 p-tb-5 m-b-5 ease-300 ${this.form.url===t.url?"bg-color-f6f6f6":""}" title="${t.url}" >\n <div class='f-1 f-s-c white-1 o-h'>\n <h5 class='c-333 f-w-600'>${t.name}</h5>\n <div class='white-1 f-s-12 c-666 m-l-5'>${t.url}</div>\n </div>\n <div class='p-l-10'>\n <button class="select-btn c-app c-p">选择</button>\n <button class="remove-btn c-danger c-p m-l-5">移除</button>\n </div>\n </li>\n `)).join("")}\n </ul>\n </section>\n </div>\n </div>\n </div>\n `,e=document.createElement("div");e.innerHTML=t,e.className="wbiokr-geoserver-modal p-f-xl-yt z-1000 w-per-100 h-per-100 animated fadeIn f-c",this.tempDom=e,this.container.appendChild(e),this.bindEvents()}bindEvents(){this.tempDom.querySelector(".close-btn").onclick=()=>this.onClose(),this.tempDom.querySelector(".template-btn").onclick=()=>this.onCase(),this.tempDom.querySelector(".confirm-btn").onclick=()=>this.onConfirm(),this.tempDom.querySelector(".clear-btn").onclick=()=>this.onClearCustom(),this.tempDom.querySelector(".name-input").onblur=t=>{this.form.name=t.target.value},this.tempDom.querySelector(".url-input").onblur=t=>{this.form.url=t.target.value},this.tempDom.querySelectorAll(".select-btn").forEach(((t,e)=>{t.onclick=()=>this.onSelect(e)})),this.tempDom.querySelectorAll(".remove-btn").forEach(((t,e)=>{t.onclick=()=>this.onRemoveUrl(e)}))}onAddModal(){this.onReset(),this.type="add",this.form={...Et,id:_t()},this.render()}async onEditModal(t){this.type="edit",this.form={...t};try{const t=await At(this.id);this.cacheUrls=t.data||[]}catch(e){this.cacheUrls=[]}this.render()}onCase(){this.form.url="http://xx.com/?tiled=true&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&FORMAT=image/png&TRANSPARENT=true&LAYERS=xx&SRS=EPSG:4326&bbox={bbox-epsg-3857}&WIDTH=256&HEIGHT=256",this.tempDom.querySelector(".url-input").value=this.form.url}onReset(){this.type="",this.cacheUrls=[],this.form={id:"",name:"",url:"",checked:!1}}onClose(){this.tempDom.remove(),this.onReset()}onConfirm(){const t=this.form.url,e=t.toLowerCase();if(!e.startsWith("http")||!((e.includes("x={-x}")||e.includes("x={x}"))&&e.includes("y=")&&e.includes("z=")||e.includes("bbox={")&&e.includes("service=")&&e.includes("width=256")&&e.includes("height=256")||e.includes("{x}")&&e.includes("{y}")&&e.includes("{z}")))return alert("请输入合法URL"),!1;const n=this.cacheUrls.find((e=>e.url===t));n||(this.cacheUrls.push({...this.form}),At(this.id,{id:this.id,data:this.cacheUrls})),this.props.confirm({...this.form},n,this.type),this.onClose()}onClearCustom(){this.form.url="",this.form.name="",this.tempDom.querySelector(".url-input").value=this.form.url,this.tempDom.querySelector(".name-input").value=this.form.name}onSelect(t){this.form=this.cacheUrls[t],this.tempDom.querySelector(".url-input").value=this.form.url,this.tempDom.querySelector(".name-input").value=this.form.name,this.tempDom.querySelectorAll(".custom-url-item").forEach(((e,n)=>{e.className="custom-url-item f-b-c p-lr-10 p-tb-5 m-b-5 ease-300 "+(n===t?"bg-color-f6f6f6":"")}))}onRemoveUrl(t){this.cacheUrls.splice(t,1),At(this.id,{id:this.id,data:this.cacheUrls})}get id(){return`WBIOKR_ML_GEO_HIS_${this.form.id}`}}class St{constructor(t,e,n="",i="",r={}){this.container=t,this.map=e,this.tempDom=null,this.itemClass=n,this.addClass=i,this.addBtnProps=r,this.tiles=[]}async init(){this.tempDom&&this.tempDom.remove(),await this.loadTiles(),this.render(),this.refTile=new xt(document.body,{confirm:this.onConfirm.bind(this)}),this.initializeCheckedTiles()}async loadTiles(){try{const t=await At("WBIOKR_GEOSERVERS_LIST_ALL");this.tiles=t.data||[]}catch(t){this.tiles=[]}}render(){const t=`\n <div>\n ${this.tiles.map(((t,e)=>`\n <section class="w-per-100 f-b-c p-tb-5 ${this.itemClass}">\n <label class="d-f-t white-1 f-s-c">\n <input type="checkbox" ${t.checked?"checked":""} data-id="${t.id}" />\n <div class="white-1 h-15 m-l-5" style="max-width: 150px" title="${t.name||`自定义图层${e+1}`}">\n ${t.name||`自定义图层${e+1}`}\n </div>\n </label>\n <div class="f-s-c p-l-10">\n <a class="m-l-10 w-nowrap c-app c-p f-s-12" data-id="${t.id}">Edit</a>\n <span class="c-red c-p o-hover-70 m-l-10 w-nowrap f-s-12" data-id="${t.id}">Delete</span>\n </div>\n </section>\n `)).join("")}\n <section class="m-t-10 ${this.addClass}">\n <button\n class="bg-color-app f-c f-s-12 c-fff b-r-4 ease-400 o-hover-70 w-nowrap p-lr-10 h-20"\n >\n ${this.addBtnProps.text||"新增图层"}\n </button>\n </section>\n </div>\n `,e=document.createElement("div");e.innerHTML=t,this.tempDom=e,this.container.appendChild(e),this.bindEvents()}bindEvents(){this.container.querySelectorAll('input[type="checkbox"]').forEach((t=>{t.onchange=e=>{this.onChangeGeo(t)}})),this.tempDom.querySelectorAll("a[data-id]").forEach((t=>{t.onclick=()=>this.onEdit(t)})),this.tempDom.querySelectorAll("span[data-id]").forEach((t=>{t.onclick=()=>this.onDelete(t)})),this.tempDom.querySelector("button").onclick=()=>this.onAdd()}onAdd(){this.refTile.onAddModal()}onEdit(t){const e=t.getAttribute("data-id"),n=this.tiles.find((t=>t.id===e));n&&this.refTile.onEditModal(n)}onDelete(t){const e=t.getAttribute("data-id"),n=this.tiles.findIndex((t=>t.id===e));if(n>-1){const t=this.tiles[n];this.onRemoveGeoserver(t),this.tiles.splice(n,1),this.onSyncLocal(),this.tempDom.remove(),this.render()}}initializeCheckedTiles(){const t=()=>{this.tiles.forEach((t=>{t.checked&&this.onChangeGeo(t,!0)}))};try{t()}catch(e){this.map.on("style.load",(()=>{t()}))}}onRemoveGeoserver(t){this.map.getLayer(t.id)&&this.map.removeLayer(t.id),this.map.getSource(t.id)&&this.map.removeSource(t.id)}onChangeGeo(t,e){const n=e?t.id:t.getAttribute("data-id"),i=this.tiles.find((t=>t.id===n));if(i){if(i.checked=t.checked,i.checked){const t=this.map.getStyle().layers.filter((t=>["fill","raster","background","sky"].includes(t.type)));t.length>0&&t[t.length-1].id,this.map.getSource(i.id)||this.map.addSource(i.id,{type:"raster",tiles:[i.url.replace(/bbox={bbox}|BBOX={bbox}|BBOX={BBOX}/,"bbox={bbox-epsg-3857}")],tileSize:256}),this.map.getLayer(i.id)||this.map.addLayer({id:i.id,type:"raster",source:i.id,paint:{},minZoom:15})}else this.onRemoveGeoserver(i);this.onSyncLocal()}}onConfirm(t,e,n){const i=this.tiles.findIndex((e=>e.id===t.id));i>-1?(this.tiles.splice(i,1,t),t.checked&&(t.checked=!1,this.onChangeGeo(t,!0),setTimeout((()=>this.onChangeGeo(t,!0)),0))):this.tiles.push(t),this.onSyncLocal(),this.tempDom&&this.tempDom.remove(),this.render()}onSyncLocal(){At("WBIOKR_GEOSERVERS_LIST_ALL",{id:"WBIOKR_GEOSERVERS_LIST_ALL",data:this.tiles})}}const Mt={className:"",checked:!1,disabled:!1,indeterminate:!1,onChange:()=>{}};class Bt{constructor(t,e){this.options={...Mt,...e},this._container=t,this._wrapper=null,this._content=null,this._render()}_render(){const t=document.createElement("div");t.className=this._wrapperClass();const e=document.createElement("span");e.className=this._contentClass(),t.append(e),this._wrapper=t,this._content=e,t.onclick=()=>{this.options.disabled||(this.options.indeterminate=!1,this.options.checked=!this.options.checked,t.className=this._wrapperClass(),e.className=this._contentClass(),this.options.onChange&&this.options.onChange(this.options))},this._container.append(t)}_updateStatus(t){this.options={...this.options,...t},this._wrapper.className=this._wrapperClass(),this._content.className=this._contentClass()}_wrapperClass(){let t="wbiokr-com-checkbox w-15 h-15 b-r-2 b-ccc ease-200 border-hover-app f-c c-p";return t+=!this.options.indeterminate&&this.options.checked?" bg-color-app b-c-app p-r wbiokr-com-checked ":" bg-color-fff b-c-ccc ",t+=this.options.className,t}_contentClass(){let t="wbiokr-com-checkbox-content ease-300 ";return t+=!this.options.indeterminate&&this.options.checked?" top-5 w-5 h-10 b-fff b-w-2 rotate-45 b-no-t b-no-l o-100 ":this.options.indeterminate?" w-5 h-5 bg-color-app o-100 ":" rotate-reverse-45 b-fff b-w-2 ",t}}var Dt=6371008.8,It={centimeters:637100880,centimetres:637100880,degrees:57.22891354143274,feet:20902260.511392,inches:39.37*Dt,kilometers:6371.0088,kilometres:6371.0088,meters:Dt,metres:Dt,miles:3958.761333810546,millimeters:6371008800,millimetres:6371008800,nauticalmiles:Dt/1852,radians:1,yards:6967335.223679999};function Nt(t,e,n){void 0===n&&(n={});var i={type:"Feature"};return(0===n.id||n.id)&&(i.id=n.id),n.bbox&&(i.bbox=n.bbox),i.properties=e||{},i.geometry=t,i}function Tt(t,e,n){if(void 0===n&&(n={}),t.length<2)throw new Error("coordinates must be an array of two or more positions");return Nt({type:"LineString",coordinates:t},e,n)}function Pt(t){return t%360*Math.PI/180}function Rt(t,e,n){if(null!==t)for(var i,r,s,o,a,c,l,h,u=0,d=0,p=t.type,m="FeatureCollection"===p,f="Feature"===p,g=m?t.features.length:1,y=0;y<g;y++){a=(h=!!(l=m?t.features[y].geometry:f?t.geometry:t)&&"GeometryCollection"===l.type)?l.geometries.length:1;for(var b=0;b<a;b++){var v=0,w=0;if(null!==(o=h?l.geometries[b]:l)){c=o.coordinates;var k=o.type;switch(u=!n||"Polygon"!==k&&"MultiPolygon"!==k?0:1,k){case null:break;case"Point":if(!1===e(c,d,y,v,w))return!1;d++,v++;break;case"LineString":case"MultiPoint":for(i=0;i<c.length;i++){if(!1===e(c[i],d,y,v,w))return!1;d++,"MultiPoint"===k&&v++}"LineString"===k&&v++;break;case"Polygon":case"MultiLineString":for(i=0;i<c.length;i++){for(r=0;r<c[i].length-u;r++){if(!1===e(c[i][r],d,y,v,w))return!1;d++}"MultiLineString"===k&&v++,"Polygon"===k&&w++}"Polygon"===k&&v++;break;case"MultiPolygon":for(i=0;i<c.length;i++){for(w=0,r=0;r<c[i].length;r++){for(s=0;s<c[i][r].length-u;s++){if(!1===e(c[i][r][s],d,y,v,w))return!1;d++}w++}v++}break;case"GeometryCollection":for(i=0;i<o.geometries.length;i++)if(!1===Rt(o.geometries[i],e,n))return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function Ot(t,e){var n,i,r,s,o,a,c,l,h,u,d=0,p="FeatureCollection"===t.type,m="Feature"===t.type,f=p?t.features.length:1;for(n=0;n<f;n++){for(a=p?t.features[n].geometry:m?t.geometry:t,l=p?t.features[n].properties:m?t.properties:{},h=p?t.features[n].bbox:m?t.bbox:void 0,u=p?t.features[n].id:m?t.id:void 0,o=(c=!!a&&"GeometryCollection"===a.type)?a.geometries.length:1,r=0;r<o;r++)if(null!==(s=c?a.geometries[r]:a))switch(s.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":if(!1===e(s,d,l,h,u))return!1;break;case"GeometryCollection":for(i=0;i<s.geometries.length;i++)if(!1===e(s.geometries[i],d,l,h,u))return!1;break;default:throw new Error("Unknown Geometry Type")}else if(!1===e(null,d,l,h,u))return!1;d++}}function Ft(t,e){!function(t,e){Ot(t,(function(t,n,i,r,s){var o,a=null===t?null:t.type;switch(a){case null:case"Point":case"LineString":case"Polygon":return!1!==e(Nt(t,i,{bbox:r,id:s}),n,0)&&void 0}switch(a){case"MultiPoint":o="Point";break;case"MultiLineString":o="LineString";break;case"MultiPolygon":o="Polygon"}for(var c=0;c<t.coordinates.length;c++){var l=t.coordinates[c];if(!1===e(Nt({type:o,coordinates:l},i),n,c))return!1}}))}(t,(function(t,n,i){var r=0;if(t.geometry){var s=t.geometry.type;if("Point"!==s&&"MultiPoint"!==s){var o,a=0,c=0,l=0;return!1!==Rt(t,(function(s,h,u,d,p){if(void 0===o||n>a||d>c||p>l)return o=s,a=n,c=d,l=p,void(r=0);var m=Tt([o,s],t.properties);if(!1===e(m,n,i,p,r))return!1;r++,o=s}))&&void 0}}}))}function Ut(t){if(!t)throw new Error("coord is required");if(!Array.isArray(t)){if("Feature"===t.type&&null!==t.geometry&&"Point"===t.geometry.type)return t.geometry.coordinates;if("Point"===t.type)return t.coordinates}if(Array.isArray(t)&&t.length>=2&&!Array.isArray(t[0])&&!Array.isArray(t[1]))return t;throw new Error("coord must be GeoJSON Point or an Array of numbers")}var jt="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function zt(t,e,n){void 0===n&&(n={});var i=Ut(t),r=Ut(e),s=Pt(r[1]-i[1]),o=Pt(r[0]-i[0]),a=Pt(i[1]),c=Pt(r[1]),l=Math.pow(Math.sin(s/2),2)+Math.pow(Math.sin(o/2),2)*Math.cos(a)*Math.cos(c);return function(t,e){void 0===e&&(e="kilometers");var n=It[e];if(!n)throw new Error(e+" units is invalid");return t*n}(2*Math.atan2(Math.sqrt(l),Math.sqrt(1-l)),n.units)}var Kt=6378137;function Qt(t){return function(t,e,n){var i=n;return Ot(t,(function(t,r,s,o,a){i=0===r&&void 0===n?t:e(i,t,r,s,o,a)})),i}(t,(function(t,e){return t+function(t){var e,n=0;switch(t.type){case"Polygon":return Vt(t.coordinates);case"MultiPolygon":for(e=0;e<t.coordinates.length;e++)n+=Vt(t.coordinates[e]);return n;case"Point":case"MultiPoint":case"LineString":case"MultiLineString":return 0}return 0}(e)}),0)}function Vt(t){var e=0;if(t&&t.length>0){e+=Math.abs(Xt(t[0]));for(var n=1;n<t.length;n++)e-=Math.abs(Xt(t[n]))}return e}function Xt(t){var e,n,i,r,s,o,a=0,c=t.length;if(c>2){for(o=0;o<c;o++)o===c-2?(i=c-2,r=c-1,s=0):o===c-1?(i=c-1,r=0,s=1):(i=o,r=o+1,s=o+2),e=t[i],n=t[r],a+=(Ht(t[s][0])-Ht(e[0]))*Math.sin(Ht(n[1]));a=a*Kt*Kt/2}return a}function Ht(t){return t*Math.PI/180}function Wt(t,e){return void 0===e&&(e={}),function(t,e,n){var i=n,r=!1;return Ft(t,(function(t,s,o,a,c){i=!1===r&&void 0===n?t:e(i,t,s,o,a,c),r=!0})),i}(t,(function(t,n){var i=n.geometry.coordinates;return t+zt(i[0],i[1],e)}),0)}const Gt={title:"测量距离"},Jt="WBK_SOURCE_POINTS",qt="WBK_SOURCE_LINE",Yt="WBK_SOURCE_MOVE",Zt="WBK_LAYER_POINTS",$t="WBK_LAYER_LINE",te="WBK_LAYER_MOVE";const ee={title:"测量面积"},ne="WBK_AREA_SOURCE_POINTS",ie="WBK_AREA_SOURCE_LINE",re="WBK_AREA_LAYER_POINTS",se="WBK_AREA_LAYER_FILL",oe="WBK_AREA_LAYER_STROKE";const ae={title:"拾取坐标",cb:()=>{},onCopy:()=>{}};const ce="M905.841778 0A118.158222 118.158222 0 0 1 1024 118.158222V512h-78.791111V118.158222a39.367111 39.367111 0 0 0-39.367111-39.367111H118.158222a39.367111 39.367111 0 0 0-39.367111 39.367111v787.683556a39.367111 39.367111 0 0 0 39.367111 39.367111H512V1024H118.158222A118.158222 118.158222 0 0 1 0 905.841778V118.158222A118.158222 118.158222 0 0 1 118.158222 0h787.683556zM540.672 533.105778l306.346667 27.818666-111.502223 111.388445 248.32 248.263111-55.751111 55.694222-248.206222-248.263111-111.388444 111.445333-27.818667-306.403555v0.056889z",le="SOURCE_WBK_RECT",he="LAYER_WBK_RECT_FILL",ue="LAYER_WBK_RECT_LINE",de={title:"框选",onClose:()=>{},onOpen:()=>{},onEnd:()=>{},onMousemove:()=>{}};var pe="data:image/png;base64,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