@maptalks/vt 0.105.2 → 0.105.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @maptalks/vt v0.105.2
2
+ * @maptalks/vt v0.105.3
3
3
  * LICENSE : undefined
4
4
  * (c) 2016-2025 maptalks.org
5
5
  */
@@ -27,9 +27,9 @@ import { vec2 as w, vec3 as M, vec4 as P } from "gl-matrix";
27
27
 
28
28
  import I from "earcut";
29
29
 
30
- import { buildNormals as C, buildTangents as k, packTangentFrame as O } from "@maptalks/tbn-packer";
30
+ import { buildNormals as C, buildTangents as k, packTangentFrame as F } from "@maptalks/tbn-packer";
31
31
 
32
- import F from "rbush";
32
+ import O from "rbush";
33
33
 
34
34
  const R = "${", E = `function(t){let e;const n={width:100,height:10};let r=!1;try{const t=new OffscreenCanvas(1,1);t.getContext("2d").fillText("hello",0,0),r=!0}catch(t){r=!1}function i(){if(!e){const{width:t,height:i}=n;r?e=new OffscreenCanvas(t,i):(e=document.createElement("canvas"),e.width=t,e.height=i)}return e}class o{constructor(t,e={}){if(!Array.isArray(t))return void console.error("colors is not array");if(t.length<2)return void console.error("colors.length should >1");this.colors=t;let r=1/0,i=-1/0;for(let e=0,n=t.length;e<n;e++){const n=t[e][0];r=Math.min(n,r),i=Math.max(n,i)}this.min=r,this.max=i,this.valueOffset=this.max-this.min,this.options=Object.assign({},n,e),this._initImgData()}getImageData(){return this.imgData}_initImgData(){const t=i(),{width:e,height:n}=this.options;t.width=e,t.height=n;const r=t.getContext("2d");r.clearRect(0,0,t.width,t.height);const o=r.createLinearGradient(0,0,t.width,0),{colors:s,valueOffset:a}=this;for(let t=0,e=s.length;t<e;t++){const[e,n]=s[t],r=(e-this.min)/a;o.addColorStop(r,n)}r.fillStyle=o,r.fillRect(0,0,t.width,t.height),this.imgData=r.getImageData(0,0,t.width,t.height)}getColor(t){t=Math.max(this.min,t);const e=((t=Math.min(t,this.max))-this.min)/this.valueOffset;let n=Math.round(e*this.imgData.width);n=Math.min(n,this.imgData.width-1);const r=4*n;return[this.imgData.data[r],this.imgData.data[r+1],this.imgData.data[r+2],this.imgData.data[r+3]]}}var s;function a(t){return null==t}function l(t){return!a(t)}function u(t){return""===t}function h(t,e){var n,r,i;if(w(t)){var o,s=t.stops&&"object"==typeof t.stops[0][0],a=s||l(t.property),u=s||!a,d=t.type||e||"exponential";if("exponential"===d)o=p;else if("interval"===d)o=f;else if("categorical"===d)o=c;else if("identity"===d)o=y;else if("color-interpolate"===d)o=g;else{if("calculate-expression"!==d)throw new Error('Unknown function type "'+d+'"');o=x}if(s){var m={},v=[];for(let e=0;e<t.stops.length;e++){var M=t.stops[e];void 0===m[M[0].zoom]&&(m[M[0].zoom]={zoom:M[0].zoom,type:t.type,property:t.property,default:t.default,stops:[]}),m[M[0].zoom].stops.push([M[0].value,M[1]])}for(let t in m)v.push([m[t].zoom,h(m[t])]);n=function(e,n){const r=p({stops:v,base:t.base},e)(e,n);return"function"==typeof r?r(e,n):r},r=!1,i=!1}else u?(n=function(e){const n=o(t,e);return"function"==typeof n?n(e):n},r=!0,i=!1):(n=function(e,n){const r=o(t,n?n[t.property]:null);return"function"==typeof r?r(e,n):r},r=!1,i=!0)}else n=function(){return t},r=!0,i=!0;return n.isZoomConstant=i,n.isFeatureConstant=r,n}function c(t,e){for(let n=0;n<t.stops.length;n++)if(e===t.stops[n][0])return t.stops[n][1];return t.default}function f(t,e){for(var n=0;n<t.stops.length&&!(e<t.stops[n][0]);n++);return t.stops[Math.max(n-1,0)][1]}function p(t,e){for(var n=l(t.base)&&!u(t.base)?t.base:1,r=0;!(r>=t.stops.length||e<=t.stops[r][0]);)r++;return 0===r?t.stops[r][1]:r===t.stops.length?t.stops[r-1][1]:m(e,n,t.stops[r-1][0],t.stops[r][0],t.stops[r-1][1],t.stops[r][1])}"function"==typeof Map&&(s=new Map);const d={width:100,height:1};function g(t,e){const n=t.stops;if(n&&n.length>1){let t;if(s){const e=JSON.stringify(n);if(!s.has(e)){const t=new o(n,d);s.set(e,t)}t=s.get(e)}else t=new o(n,d);const[r,i,a,l]=t.getColor(e);return[r/255,i/255,a/255,l/255]}return n&&1===n.length?n[0][1]:null}function y(t,e){return n=e,r=t.default,l(n)?n:l(r)?r:l(i)?i:null;var n,r,i}function x(t,e){const n=String(t.property),r=t.expression,i=e;function o(e){return a(e)||u(e)||isNaN(e)?t.default:e}if(!l(e)||u(e)||isNaN(e)||e<0)return o(t.default);{const e=function t(e,n,r){const i=Number(r),o=String(n);return Array.isArray(e)?e.map((e=>t(e,o,i))):e===o?i:e}(r,n,i);return o(function e(n){if(!Array.isArray(n)){if("number"==typeof n)return n;throw new Error("Invalid expression format")}{const r=n[0];if(!["+","-","*","/"].includes(r))throw new Error(\`Unknown operator: ${R}r}\`);const i=n.slice(1).map((t=>e(t)));switch(r){case"+":return i.reduce(((t,e)=>t+e),0);case"-":return i.reduce(((t,e)=>t-e));case"*":return i.reduce(((t,e)=>t*e),1);case"/":return i.some((t=>0===t))?t.default:i.reduce(((t,e)=>t/e));default:throw new Error(\`Unsupported operator: ${R}r}\`)}}}(e))}}function m(t,e,n,r,i,o){return"function"==typeof i?function(){var s=i.apply(void 0,arguments),a=o.apply(void 0,arguments);return m(t,e,n,r,s,a)}:i.length?function(t,e,n,r,i,o){var s=[];for(let a=0;a<i.length;a++)s[a]=v(t,e,n,r,i[a],o[a]);return s}(t,e,n,r,i,o):v(t,e,n,r,i,o)}function v(t,e,n,r,i,o){var s,a=r-n,l=t-n;return i*(1-(s=1===e?l/a:(Math.pow(e,l)-1)/(Math.pow(e,a)-1)))+o*s}function w(t){return t&&"object"==typeof t&&(t.stops||t.property&&"identity"===t.type||t.expression&&"calculate-expression"===t.type)}function M(t){return b(t,"interval")}function b(t,e){if(!w(t))return function(){return t};let n=!0,r=!0;const i=(t=JSON.parse(JSON.stringify(t))).stops;if(i)for(let t=0;t<i.length;t++)if(w(i[t][1])){const o=b(i[t][1],e);n=n&&o.isZoomConstant,r=r&&o.isFeatureConstant,i[t]=[i[t][0],o]}const o=h(t,e);return o.isZoomConstant=n&&o.isZoomConstant,o.isFeatureConstant=r&&o.isFeatureConstant,o}let P=0;const _="function"==typeof Object.assign;function I(t,...e){if(_)return Object.assign(t,...e),t;for(let n=0;n<e.length;n++){const r=e[n];for(const e in r)t[e]=r[e]}return t}function A(t){return!k(t)&&("string"==typeof t||null!==t.constructor&&t.constructor===String)}function S(t){return"number"==typeof t&&!isNaN(t)}function F(t){return!k(t)&&("function"==typeof t||null!==t.constructor&&t.constructor===Function)}function T(t){return!Array.isArray(t)&&"object"==typeof t&&!!t}function k(t){return null==t}function B(t){return w(t)&&t.property}const L="function"==typeof fetch&&"function"==typeof AbortController,C={jsonp:function(t,e){const n="_maptalks_jsonp_"+P++;t.match(/\\?/)?t+="&callback="+n:t+="?callback="+n;let r=document.createElement("script");return r.type="text/javascript",r.src=t,window[n]=function(t){e(null,t),document.getElementsByTagName("head")[0].removeChild(r),r=null,delete window[n]},document.getElementsByTagName("head")[0].appendChild(r),this},get:function(t,e,n){if(F(e)){const t=n;n=e,e=t}(e=e||{}).method&&(e.method=e.method.toUpperCase());const r="POST"===e.method;if(L){const r=new AbortController,i=e;i.signal=r.signal,i.referrerPolicy=i.referrerPolicy||"origin",i.method=i.method||"GET";const o=new Request(t,i);return e.returnJSON&&o.headers.set("Accept","application/json"),fetch(o).then((r=>{const i=this._parseResponse(r,e.returnJSON,e.responseType);i.message?(i.url=t,n(i)):i.then((t=>{"arraybuffer"===e.responseType?n(null,{data:t,cacheControl:r.headers.get("Cache-Control"),expires:r.headers.get("Expires"),contentType:r.headers.get("Content-Type")}):n(null,t)})).catch((e=>{e.code&&e.code===DOMException.ABORT_ERR||(console.error("Fetch error:",t,e),n(e))}))})).catch((e=>{e.code&&e.code===DOMException.ABORT_ERR||(console.error("Fetch error:",t,e),n(e))})),r}{const i=C._getClient(n);if(i.open(e.method||"GET",t,!0),e){for(const t in e.headers)i.setRequestHeader(t,e.headers[t]);i.withCredentials="include"===e.credentials,e.responseType&&(i.responseType=e.responseType)}return i.send(r?e.body:null),i}},_parseResponse:(t,e,n)=>200!==t.status?{status:t.status,statusText:t.statusText,message:\`incorrect http request with status code(${R}t.status}): ${R}t.statusText}\`}:"arraybuffer"===n?t.arrayBuffer():e?t.json():t.text(),_wrapCallback:function(t,e){return function(){if(4===t.readyState)if(200===t.status)if("arraybuffer"===t.responseType){0===t.response.byteLength?e({status:200,statusText:t.statusText,message:"http status 200 returned without content."}):e(null,{data:t.response,cacheControl:t.getResponseHeader("Cache-Control"),expires:t.getResponseHeader("Expires"),contentType:t.getResponseHeader("Content-Type")})}else e(null,t.responseText);else e({status:t.status,statusText:t.statusText,message:\`incorrect http request with status code(${R}t.status}): ${R}t.statusText}\`})}},_getClient:function(t){let e;try{e=new XMLHttpRequest}catch(t){try{e=new ActiveXObject("Msxml2.XMLHTTP")}catch(t){try{e=new ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}}return e.onreadystatechange=C._wrapCallback(e,t),e},getArrayBuffer(t,e,n){if(F(e)){const t=n;n=e,e=t}return e||(e={}),e.responseType="arraybuffer",C.get(t,e,n)}};function Y(t,e,n,r,i=3){let o=r;const s=n-e>>1;let a,l=n-e;const u=t[e],h=t[e+1],c=t[n],f=t[n+1];for(let r=e+i;r<n;r+=i){const e=V(t[r],t[r+1],u,h,c,f);if(e>o)a=r,o=e;else if(e===o){const t=Math.abs(r-s);t<l&&(a=r,l=t)}}o>r&&(a-e>i&&Y(t,e,a,r,i),t[a+2]=o,n-a>i&&Y(t,a,n,r,i))}function V(t,e,n,r,i,o){let s=i-n,a=o-r;if(0!==s||0!==a){const l=((t-n)*s+(e-r)*a)/(s*s+a*a);l>1?(n=i,r=o):l>0&&(n+=s*l,r+=a*l)}return s=t-n,a=e-r,s*s+a*a}function O(t,e,n,r,i,o){const s={id:null==t?null:t,type:e,geometry:n,tags:r,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};i&&(s.layer=i);return function(t,e){const n=t.geometry,r=t.type;if("Point"===r||"MultiPoint"===r||"LineString"===r)X(t,n,e);else if("Polygon"===r)X(t,n[0],e);else if("MultiLineString"===r)for(const r of n)X(t,r,e);else if("MultiPolygon"===r)for(const r of n)X(t,r[0],e)}(s,o?4:3),s}function X(t,e,n){for(let r=0;r<e.length;r+=n)t.minX=Math.min(t.minX,e[r]),t.minY=Math.min(t.minY,e[r+1]),t.maxX=Math.max(t.maxX,e[r]),t.maxY=Math.max(t.maxY,e[r+1])}function N(t,e,n,r){if(r.layer=e,"FeatureCollection"===n.type)for(let e=0;e<n.features.length;e++)E(t,n.features[e],r,e);else"Feature"===n.type?E(t,n,r):E(t,{geometry:n},r)}function E(t,e,n,r){if(!e.geometry)return;const i=e.geometry.coordinates,o=e.geometry.type,s=Math.pow(n.tolerance/((1<<n.maxZoom)*n.extent),2);let a=[],l=e.id;if(n.promoteId?l=e.properties[n.promoteId]:n.generateId&&(l=r||0),"Point"===o)z(i,a,n);else if("MultiPoint"===o)for(const t of i)z(t,a,n);else if("LineString"===o)$(i,a,s,!1,n);else if("MultiLineString"===o){if(n.lineMetrics){for(const r of i)a=[],$(r,a,s,!1,n),t.push(O(l,"LineString",a,e.properties,n.layer,n.hasAltitude));return}q(i,a,s,!1,n)}else if("Polygon"===o)q(i,a,s,!0,n);else{if("MultiPolygon"!==o){if("GeometryCollection"===o){for(const i of e.geometry.geometries)E(t,{id:l,geometry:i,properties:e.properties},n,r);return}throw new Error("Input data is not a valid GeoJSON object.")}for(const t of i){const e=[];q(t,e,s,!0,n),a.push(e)}}t.push(O(l,o,a,e.properties,n.layer,n.hasAltitude))}function z(t,e,n){e.push(D(t[0]),j(t[1],n.projection),0),n.hasAltitude&&(t.length>2?e.push(t[2]):e.push(0))}function $(t,e,n,r,i){let o,s,a=0;for(let n=0;n<t.length;n++){const l=D(t[n][0]),u=j(t[n][1],i.projection);e.push(l,u,0),i.hasAltitude&&(t[n].length>2?e.push(t[n][2]):e.push(0)),n>0&&(a+=r?(o*u-l*s)/2:Math.sqrt(Math.pow(l-o,2)+Math.pow(u-s,2))),o=l,s=u}const l=i.hasAltitude?4:3,u=e.length-l;e[2]=1,Y(e,0,u,n,l),e[u+2]=1,e.size=Math.abs(a),e.start=0,e.end=e.size}function q(t,e,n,r,i){for(let o=0;o<t.length;o++){const s=[];$(t[o],s,n,r,i),e.push(s)}}function D(t){return t/360+.5}function j(t,e){if("EPSG:4326"===e)return(90-t)/360;const n=Math.sin(t*Math.PI/180),r=.5-.25*Math.log((1+n)/(1-n))/Math.PI;return r<0?0:r>1?1:r}function Z(t,e,n,r,i,o,s,a){if(r/=e,o>=(n/=e)&&s<r)return t;if(s<n||o>=r)return null;const l=[];for(const e of t){const t=e.geometry;let o=e.type;const s=0===i?e.minX:e.minY,u=0===i?e.maxX:e.maxY;if(s>=n&&u<r){l.push(e);continue}if(u<n||s>=r)continue;let h=[];if("Point"===o||"MultiPoint"===o)G(t,h,n,r,i,a.hasAltitude);else if("LineString"===o)U(t,h,n,r,i,!1,a.lineMetrics,a.hasAltitude);else if("MultiLineString"===o)J(t,h,n,r,i,!1,a.hasAltitude);else if("Polygon"===o)J(t,h,n,r,i,!0,a.hasAltitude);else if("MultiPolygon"===o)for(const e of t){const t=[];J(e,t,n,r,i,!0,a.hasAltitude),t.length&&h.push(t)}if(h.length){if(a.lineMetrics&&"LineString"===o){for(const t of h)l.push(O(e.id,o,t,e.tags,e.layer,a.hasAltitude));continue}"LineString"!==o&&"MultiLineString"!==o||(1===h.length?(o="LineString",h=h[0]):o="MultiLineString"),"Point"!==o&&"MultiPoint"!==o||(o=3===h.length?"Point":"MultiPoint"),l.push(O(e.id,o,h,e.tags,e.layer,a.hasAltitude))}}return l.length?l:null}function G(t,e,n,r,i,o){const s=o?4:3;for(let a=0;a<t.length;a+=s){const s=t[a+i];s>=n&&s<=r&&(H(e,t[a],t[a+1],t[a+2]),o&&e.push(t[a+3]))}}function U(t,e,n,r,i,o,s,a){let l=R(t);const u=0===i?W:K;let h,c,f=t.start;const p=a?4:3,d=o?t.length:t.length-p;for(let g=0;g<d;g+=p){const y=t[g],x=t[g+1],m=t[g+2];let v,w,M,b;o&&g===d-p?(v=t[0],w=t[1]):(v=t[g+p],w=t[g+p+1]),a&&(M=t[g+3],b=o&&g===d-p?t[3]:t[g+p+3]);const P=0===i?y:x,_=0===i?v:w;let I=!1;s&&(h=Math.sqrt(Math.pow(y-v,2)+Math.pow(x-w,2))),P<n?_>n&&(c=u(l,y,x,v,w,n),a&&l.push(Q(M,b,c)),s&&(l.start=f+h*c)):P>r?_<r&&(c=u(l,y,x,v,w,r),a&&l.push(Q(M,b,c)),s&&(l.start=f+h*c)):(H(l,y,x,m),a&&l.push(M)),_<n&&P>=n&&(c=u(l,y,x,v,w,n),a&&l.push(Q(M,b,c)),I=!0),_>r&&P<=r&&(c=u(l,y,x,v,w,r),a&&l.push(Q(M,b,c)),I=!0),!o&&I&&(s&&(l.end=f+h*c),e.push(l),l=R(t)),s&&(f+=h)}let g=t.length-p;if(!o){const e=t[g],o=t[g+1],s=t[g+2],u=0===i?e:o;if(u>=n&&u<=r&&H(l,e,o,s),u>=n&&u<=r&&a){const e=t[g+3];l.push(e)}}g=l.length-p,o&&g>=p&&(l[g]!==l[0]||l[g+1]!==l[1])&&(H(l,l[0],l[1],l[2]),a&&l.push(l[3])),l.length&&e.push(l)}function R(t){const e=[];return e.size=t.size,e.start=t.start,e.end=t.end,e}function J(t,e,n,r,i,o,s){for(const a of t)U(a,e,n,r,i,o,!1,s)}function H(t,e,n,r){t.push(e,n,r)}function W(t,e,n,r,i,o){const s=(o-e)/(r-e);return H(t,o,n+(i-n)*s,1),s}function K(t,e,n,r,i,o){const s=(o-n)/(i-n);return H(t,e+(r-e)*s,o,1),s}function Q(t,e,n){return t+(e-t)*n}function tt(t,e,n){const r=[];for(let i=0;i<t.length;i++){const o=t[i],s=o.type;let a;if("Point"===s||"MultiPoint"===s||"LineString"===s)a=et(o.geometry,e,n);else if("MultiLineString"===s||"Polygon"===s){a=[];for(const t of o.geometry)a.push(et(t,e,n))}else if("MultiPolygon"===s){a=[];for(const t of o.geometry){const r=[];for(const i of t)r.push(et(i,e,n));a.push(r)}}r.push(O(o.id,s,a,o.tags,o.layer,n))}return r}function et(t,e,n){const r=[];r.size=t.size,void 0!==t.start&&(r.start=t.start,r.end=t.end);const i=n?4:3;for(let o=0;o<t.length;o+=i)r.push(t[o]+e,t[o+1],t[o+2]),n&&r.push(t[o+3]);return r}function nt(t,e,n){if(t.transformed)return t;const r=1<<t.z,i=t.x,o=t.y,s=n?3:2;for(const a of t.features){const t=a.geometry,l=a.type;if(a.geometry=[],1===l)for(let l=0;l<t.length;l+=s)a.geometry.push(rt(t[l],t[l+1],e,r,i,o)),n&&a.geometry[a.geometry.length-1].push(t[l+2]);else for(let l=0;l<t.length;l++){const u=[];for(let a=0;a<t[l].length;a+=s)u.push(rt(t[l][a],t[l][a+1],e,r,i,o)),n&&u[u.length-1].push(t[l][a+2]);a.geometry.push(u)}}return t.transformed=!0,t}function rt(t,e,n,r,i,o){return[Math.round(n*(t*r-i)),Math.round(n*(e*r-o))]}function it(t,e,n,r,i){const o=e===i.maxZoom?0:i.tolerance/((1<<e)*i.extent),s={features:[],numPoints:0,numSimplified:0,numFeatures:t.length,source:null,x:n,y:r,z:e,transformed:!1,minX:2,minY:1,maxX:-1,maxY:0};for(const e of t)ot(s,e,o,i);return s}function ot(t,e,n,r){const i=e.geometry,o=e.type,s=[],a=r.hasAltitude?4:3;if(t.minX=Math.min(t.minX,e.minX),t.minY=Math.min(t.minY,e.minY),t.maxX=Math.max(t.maxX,e.maxX),t.maxY=Math.max(t.maxY,e.maxY),"Point"===o||"MultiPoint"===o)for(let e=0;e<i.length;e+=a)s.push(i[e],i[e+1]),r.hasAltitude&&s.push(i[e+3]),t.numPoints++,t.numSimplified++;else if("LineString"===o)at(s,i,t,n,!1,!1,r);else if("MultiLineString"===o||"Polygon"===o)for(let e=0;e<i.length;e++)at(s,i[e],t,n,"Polygon"===o,0===e,r);else if("MultiPolygon"===o)for(let e=0;e<i.length;e++){const o=i[e];for(let e=0;e<o.length;e++)at(s,o[e],t,n,!0,0===e,r)}if(s.length){let n=e.tags||null;if("LineString"===o&&r.lineMetrics){n={};for(const t in e.tags)n[t]=e.tags[t];n.mapbox_clip_start=i.start/i.size,n.mapbox_clip_end=i.end/i.size}const a={geometry:s,type:"Polygon"===o||"MultiPolygon"===o?3:"LineString"===o||"MultiLineString"===o?2:1,tags:n};e.layer&&(a.layer=e.layer),null!==e.id&&(a.id=e.id),t.features.push(a)}}function st(t,e,n){return 0===t[e+2]&&t[e+3]>0&&n}function at(t,e,n,r,i,o,s){const a=r*r,{hasAltitude:l,disableFilter:u}=s,h=l?4:3;if(!u&&r>0&&e.size<(i?a:r))return void(n.numPoints+=e.length/h);const c=[];for(let t=0;t<e.length;t+=h)(0===r||e[t+2]>a||st(e,t,l))&&(n.numSimplified++,c.push(e[t],e[t+1]),l&&c.push(e[t+3])),n.numPoints++;i&&function(t,e,n){const r=n?3:2;let i=0;for(let e=0,n=t.length,o=n-r;e<n;o=e,e+=r)i+=(t[e]-t[o])*(t[e+1]+t[o+1]);if(i>0===e){const e=r,i=r-1,o=r-2;for(let s=0,a=t.length;s<a/2;s+=r){const r=t[s],l=t[s+1];let u;n&&(u=t[s+2]),t[s]=t[a-e-s],t[s+1]=t[a-i-s],n&&(t[s+2]=t[a-o-s]),t[a-e-s]=r,t[a-i-s]=l,n&&(t[a-o-s]=u)}}}(c,o,l),t.push(c)}C.getJSON=function(t,e,n){if(F(e)){const t=n;n=e,e=t}const r=function(t,e){const r="string"==typeof e?JSON.parse(e):e||null;n(t,r)};return e&&e.jsonp?C.jsonp(t,r):((e=e||{}).returnJSON=!0,C.get(t,e,r))};const lt={maxZoom:14,indexMaxZoom:5,indexMaxPoints:1e5,tolerance:3,extent:4096,buffer:64,lineMetrics:!1,promoteId:null,generateId:!1,hasAltitude:!1,disableFilter:!1,debug:0};class ut{constructor(t,e){const n=(e=this.options=function(t,e){for(const n in e)t[n]=e[n];return t}(Object.create(lt),e)).debug;if(n&&console.time("preprocess data"),e.maxZoom<0||e.maxZoom>24)throw new Error("maxZoom should be in the 0-24 range");if(e.promoteId&&e.generateId)throw new Error("promoteId and generateId cannot be used together.");let r=function(t,e){const n=[];if(Array.isArray(t)){for(let r=0;r<t.length;r++)N(n,t[r].layer,t[r].data,e);return n}if("FeatureCollection"===t.type)for(let r=0;r<t.features.length;r++)E(n,t.features[r],e,r);else"Feature"===t.type?E(n,t,e):E(n,{geometry:t},e);return n}(t,e);this.tiles={},this.tileCoords=[],n&&(console.timeEnd("preprocess data"),console.log("index: maxZoom: %d, maxPoints: %d",e.indexMaxZoom,e.indexMaxPoints),console.time("generate tiles"),this.stats={},this.total=0),r=function(t,e){const n=e.buffer/e.extent;let r=t;const i=Z(t,1,-1-n,n,0,-1,2,e),o=Z(t,1,1-n,2+n,0,-1,2,e);return(i||o)&&(r=Z(t,1,-n,1+n,0,-1,2,e)||[],i&&(r=tt(i,1,e.hasAltitude).concat(r)),o&&(r=r.concat(tt(o,-1,e.hasAltitude)))),r}(r,e),r.length&&this.splitTile(r,0,0,0),n&&(r.length&&console.log("features: %d, points: %d",this.tiles[0].numFeatures,this.tiles[0].numPoints),console.timeEnd("generate tiles"),console.log("tiles generated:",this.total,JSON.stringify(this.stats)))}splitTile(t,e,n,r,i,o,s){const a=[t,e,n,r],l=this.options,u=l.debug;for(;a.length;){r=a.pop(),n=a.pop(),e=a.pop(),t=a.pop();const h=1<<e,c=ht(e,n,r);let f=this.tiles[c];if(!f&&(u>1&&console.time("creation"),f=this.tiles[c]=it(t,e,n,r,l),this.tileCoords.push({z:e,x:n,y:r}),u)){u>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",e,n,r,f.numFeatures,f.numPoints,f.numSimplified),console.timeEnd("creation"));const t=\`z${R}e}\`;this.stats[t]=(this.stats[t]||0)+1,this.total++}if(f.source=t,null==i){if(e===l.indexMaxZoom||f.numPoints<=l.indexMaxPoints)continue}else{if(e===l.maxZoom||e===i)continue;if(null!=i){const t=i-e;if(n!==o>>t||r!==s>>t)continue}}if(f.source=null,0===t.length)continue;u>1&&console.time("clipping");const p=.5*l.buffer/l.extent,d=.5-p,g=.5+p,y=1+p;let x=null,m=null,v=null,w=null,M=Z(t,h,n-p,n+g,0,f.minX,f.maxX,l),b=Z(t,h,n+d,n+y,0,f.minX,f.maxX,l);t=null,M&&(x=Z(M,h,r-p,r+g,1,f.minY,f.maxY,l),m=Z(M,h,r+d,r+y,1,f.minY,f.maxY,l),M=null),b&&(v=Z(b,h,r-p,r+g,1,f.minY,f.maxY,l),w=Z(b,h,r+d,r+y,1,f.minY,f.maxY,l),b=null),u>1&&console.timeEnd("clipping"),a.push(x||[],e+1,2*n,2*r),a.push(m||[],e+1,2*n,2*r+1),a.push(v||[],e+1,2*n+1,2*r),a.push(w||[],e+1,2*n+1,2*r+1)}}getTile(t,e,n){t=+t,e=+e,n=+n;const r=this.options,{extent:i,debug:o}=r,{hasAltitude:s,wrapX:a}=r;if(t<0||t>24)return null;if(a){const n=1<<t;e=e+n&n-1}const l=ht(t,e,n);if(this.tiles[l])return nt(this.tiles[l],i,s);o>1&&console.log("drilling down to z%d-%d-%d",t,e,n);let u,h=t,c=e,f=n;for(;!u&&h>0;)h--,c>>=1,f>>=1,u=this.tiles[ht(h,c,f)];return u&&u.source?(o>1&&(console.log("found parent tile z%d-%d-%d",h,c,f),console.time("drilling down")),this.splitTile(u.source,h,c,f,t,e,n),o>1&&console.timeEnd("drilling down"),this.tiles[l]?nt(this.tiles[l],i,s):null):null}}function ht(t,e,n){return 32*((1<<t)*n+e)+t}function ct(t,e,n,r,i,o,s){const a=n&&Array.isArray(n[0]);for(let l=0,u=n.length;l<u;l++){t[e]=(a?n[l][0]:n[l].x)*r,t[e+1]=(a?n[l][1]:n[l].y)*r,s!==Float32Array&&(t[e]=Math.round(t[e]),t[e+1]=Math.round(t[e+1]));let h=i||0;Array.isArray(i)&&(h=i[l]),h=h?Math.round(r*h):0,t[e+2]=h,e+=3,o&&0!==l&&l!==u-1&&(t[e]=t[e-3],t[e+1]=t[e-2],t[e+2]=t[e-1],e+=3)}return t.trySetLength&&t.trySetLength(e),e}function ft(t,e,n,r){const i=t[3*e],o=t[3*e+1],s=t[3*n],a=t[3*n+1];return i===s&&(i<0||i>r)||o===a&&(o<0||o>r)}var pt="undefined"!=typeof Float32Array?Float32Array:Array;function dt(t,e,n,r){return t[0]=e,t[1]=n,t[2]=r,t}function gt(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}function yt(t,e,n,r,i){return t[0]=e,t[1]=n,t[2]=r,t[3]=i,t}function xt(t,e,n){return t[0]=e[0]/n[0],t[1]=e[1]/n[1],t[2]=e[2]/n[2],t[3]=e[3]/n[3],t}function mt(t,e,n){return t[0]=e,t[1]=n,t}function vt(t,e){var n=e[0]-t[0],r=e[1]-t[1];return Math.hypot(n,r)}Math.hypot||(Math.hypot=function(){for(var t=0,e=arguments.length;e--;)t+=arguments[e]*arguments[e];return Math.sqrt(t)}),function(){var t,e=(t=new pt(3),pt!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t)}(),function(){var t,e=(t=new pt(4),pt!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0),t)}(),function(){var t,e=(t=new pt(2),pt!=Float32Array&&(t[0]=0,t[1]=0),t)}();const wt=Math.PI/180,Mt=6378137*Math.PI/180,bt=85.0511287798;function Pt(t,e,n){if("EPSG:3857"===n)return function(t,e){const n=bt,r=e[0],i=Math.max(Math.min(n,e[1]),-n);let o;o=0===i?0:Math.log(Math.tan((90+i)*wt/2))/wt;return t[0]=r*Mt,t[1]=o*Mt,t}(t,e);if("EPSG:4326"===n||"EPSG:4490"===n||"identity"===n)return _t(t,e);if("baidu"===n)return _t(t,e);throw new Error("unsupported projection:"+n)}function _t(t,e){return t[0]=e[0],t[1]=e[1],t}function It(t,e,n,r,i,o,s,a,l,u,h,c,f,p,d){0===t?function(t,e,n,r,i,o,s,a,l,u){const h=1/(100*o[0]),c=1/(100*o[1]),f=u&&u[0]||0,p=u&&u[1]||0,d=[0,0];for(let i=t;i<e;i+=3){const t=i/3*2,e=r[i]-f,o=r[i+1]-p;n[t]=d[0]+e/s*h/a,n[t+1]=d[1]-o/s*c/l}}(e,n,r,i,0,s,a,l,u,d):1===t&&function(t,e,n,r,i,o,s,a,l,u,h){if(!t)return;let c,f,p,d;0===t[4]?(c=t[0],f=t[1],p=t[2],d=t[3]):(c=t[1],f=t[2],p=t[3],d=t[0]);const g=vt(c,f),y=vt(f,p),x=[],m=[],v=[];for(let t=e;t<n;t+=3){const e=t/3*2;mt(x,(o.x/l+i[t]/s)*a,o.y/l*a+(h?i[t+1]:-i[t+1])/s*a),"EPSG:4326"!==u&&"EPSG:4490"!==u||Pt(x,x,"EPSG:3857"),At(m,x,c,f),At(v,x,d,c),r[e]=vt(c,m)/g,r[e+1]=vt(c,v)/y}}(h,e,n,r,i,o,a,c,f,p,!!d)}function At(t,e,n,r){const i=n[0]-r[0],o=n[1]-r[1];let s=(e[0]-n[0])*(n[0]-r[0])+(e[1]-n[1])*(n[1]-r[1]);return s/=i*i+o*o,t[0]=n[0]+s*i,t[1]=n[1]+s*o,t}function St(t,e,n,r,i){const o=3*e[n-1],s=3*e[n-1]+1,a=t[o],l=t[s];return u=r,h=i,c=a,f=l,Math.sqrt((c-u)*(c-u)+(f-h)*(f-h));var u,h,c,f}function Ft(t,e,n=2){const r=e&&e.length,i=r?e[0]*n:t.length;let o=Tt(t,0,i,n,!0);const s=[];if(!o||o.next===o.prev)return s;let a,l,u;if(r&&(o=function(t,e,n,r){const i=[];for(let n=0,o=e.length;n<o;n++){const s=Tt(t,e[n]*r,n<o-1?e[n+1]*r:t.length,r,!1);s===s.next&&(s.steiner=!0),i.push(zt(s))}i.sort(Ot);for(let t=0;t<i.length;t++)n=Xt(i[t],n);return n}(t,e,o,n)),t.length>80*n){a=1/0,l=1/0;let e=-1/0,r=-1/0;for(let o=n;o<i;o+=n){const n=t[o],i=t[o+1];n<a&&(a=n),i<l&&(l=i),n>e&&(e=n),i>r&&(r=i)}u=Math.max(e-a,r-l),u=0!==u?32767/u:0}return Bt(o,s,n,a,l,u,0),s}function Tt(t,e,n,r,i){let o;if(i===function(t,e,n,r){let i=0;for(let o=e,s=n-r;o<n;o+=r)i+=(t[s]-t[o])*(t[o+1]+t[s+1]),s=o;return i}(t,e,n,r)>0)for(let i=e;i<n;i+=r)o=Wt(i/r|0,t[i],t[i+1],o);else for(let i=n-r;i>=e;i-=r)o=Wt(i/r|0,t[i],t[i+1],o);return o&&Zt(o,o.next)&&(Kt(o),o=o.next),o}function kt(t,e){if(!t)return t;e||(e=t);let n,r=t;do{if(n=!1,r.steiner||!Zt(r,r.next)&&0!==jt(r.prev,r,r.next))r=r.next;else{if(Kt(r),r=e=r.prev,r===r.next)break;n=!0}}while(n||r!==e);return e}function Bt(t,e,n,r,i,o,s){if(!t)return;!s&&o&&function(t,e,n,r){let i=t;do{0===i.z&&(i.z=Et(i.x,i.y,e,n,r)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==t);i.prevZ.nextZ=null,i.prevZ=null,function(t){let e,n=1;do{let r,i=t;t=null;let o=null;for(e=0;i;){e++;let s=i,a=0;for(let t=0;t<n&&(a++,s=s.nextZ,s);t++);let l=n;for(;a>0||l>0&&s;)0!==a&&(0===l||!s||i.z<=s.z)?(r=i,i=i.nextZ,a--):(r=s,s=s.nextZ,l--),o?o.nextZ=r:t=r,r.prevZ=o,o=r;i=s}o.nextZ=null,n*=2}while(e>1)}(i)}(t,r,i,o);let a=t;for(;t.prev!==t.next;){const l=t.prev,u=t.next;if(o?Ct(t,r,i,o):Lt(t))e.push(l.i,t.i,u.i),Kt(t),t=u.next,a=u.next;else if((t=u)===a){s?1===s?Bt(t=Yt(kt(t),e),e,n,r,i,o,2):2===s&&Vt(t,e,n,r,i,o):Bt(kt(t),e,n,r,i,o,1);break}}}function Lt(t){const e=t.prev,n=t,r=t.next;if(jt(e,n,r)>=0)return!1;const i=e.x,o=n.x,s=r.x,a=e.y,l=n.y,u=r.y,h=Math.min(i,o,s),c=Math.min(a,l,u),f=Math.max(i,o,s),p=Math.max(a,l,u);let d=r.next;for(;d!==e;){if(d.x>=h&&d.x<=f&&d.y>=c&&d.y<=p&&qt(i,a,o,l,s,u,d.x,d.y)&&jt(d.prev,d,d.next)>=0)return!1;d=d.next}return!0}function Ct(t,e,n,r){const i=t.prev,o=t,s=t.next;if(jt(i,o,s)>=0)return!1;const a=i.x,l=o.x,u=s.x,h=i.y,c=o.y,f=s.y,p=Math.min(a,l,u),d=Math.min(h,c,f),g=Math.max(a,l,u),y=Math.max(h,c,f),x=Et(p,d,e,n,r),m=Et(g,y,e,n,r);let v=t.prevZ,w=t.nextZ;for(;v&&v.z>=x&&w&&w.z<=m;){if(v.x>=p&&v.x<=g&&v.y>=d&&v.y<=y&&v!==i&&v!==s&&qt(a,h,l,c,u,f,v.x,v.y)&&jt(v.prev,v,v.next)>=0)return!1;if(v=v.prevZ,w.x>=p&&w.x<=g&&w.y>=d&&w.y<=y&&w!==i&&w!==s&&qt(a,h,l,c,u,f,w.x,w.y)&&jt(w.prev,w,w.next)>=0)return!1;w=w.nextZ}for(;v&&v.z>=x;){if(v.x>=p&&v.x<=g&&v.y>=d&&v.y<=y&&v!==i&&v!==s&&qt(a,h,l,c,u,f,v.x,v.y)&&jt(v.prev,v,v.next)>=0)return!1;v=v.prevZ}for(;w&&w.z<=m;){if(w.x>=p&&w.x<=g&&w.y>=d&&w.y<=y&&w!==i&&w!==s&&qt(a,h,l,c,u,f,w.x,w.y)&&jt(w.prev,w,w.next)>=0)return!1;w=w.nextZ}return!0}function Yt(t,e){let n=t;do{const r=n.prev,i=n.next.next;!Zt(r,i)&&Gt(r,n,n.next,i)&&Jt(r,i)&&Jt(i,r)&&(e.push(r.i,n.i,i.i),Kt(n),Kt(n.next),n=t=i),n=n.next}while(n!==t);return kt(n)}function Vt(t,e,n,r,i,o){let s=t;do{let t=s.next.next;for(;t!==s.prev;){if(s.i!==t.i&&Dt(s,t)){let a=Ht(s,t);return s=kt(s,s.next),a=kt(a,a.next),Bt(s,e,n,r,i,o,0),void Bt(a,e,n,r,i,o,0)}t=t.next}s=s.next}while(s!==t)}function Ot(t,e){let n=t.x-e.x;if(0===n&&(n=t.y-e.y,0===n)){n=(t.next.y-t.y)/(t.next.x-t.x)-(e.next.y-e.y)/(e.next.x-e.x)}return n}function Xt(t,e){const n=function(t,e){let n=e;const r=t.x,i=t.y;let o,s=-1/0;if(Zt(t,n))return n;do{if(Zt(t,n.next))return n.next;if(i<=n.y&&i>=n.next.y&&n.next.y!==n.y){const t=n.x+(i-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(t<=r&&t>s&&(s=t,o=n.x<n.next.x?n:n.next,t===r))return o}n=n.next}while(n!==e);if(!o)return null;const a=o,l=o.x,u=o.y;let h=1/0;n=o;do{if(r>=n.x&&n.x>=l&&r!==n.x&&$t(i<u?r:s,i,l,u,i<u?s:r,i,n.x,n.y)){const e=Math.abs(i-n.y)/(r-n.x);Jt(n,t)&&(e<h||e===h&&(n.x>o.x||n.x===o.x&&Nt(o,n)))&&(o=n,h=e)}n=n.next}while(n!==a);return o}(t,e);if(!n)return e;const r=Ht(n,t);return kt(r,r.next),kt(n,n.next)}function Nt(t,e){return jt(t.prev,t,e.prev)<0&&jt(e.next,t,t.next)<0}function Et(t,e,n,r,i){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-n)*i|0)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-r)*i|0)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function zt(t){let e=t,n=t;do{(e.x<n.x||e.x===n.x&&e.y<n.y)&&(n=e),e=e.next}while(e!==t);return n}function $t(t,e,n,r,i,o,s,a){return(i-s)*(e-a)>=(t-s)*(o-a)&&(t-s)*(r-a)>=(n-s)*(e-a)&&(n-s)*(o-a)>=(i-s)*(r-a)}function qt(t,e,n,r,i,o,s,a){return!(t===s&&e===a)&&$t(t,e,n,r,i,o,s,a)}function Dt(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){let n=t;do{if(n.i!==t.i&&n.next.i!==t.i&&n.i!==e.i&&n.next.i!==e.i&&Gt(n,n.next,t,e))return!0;n=n.next}while(n!==t);return!1}(t,e)&&(Jt(t,e)&&Jt(e,t)&&function(t,e){let n=t,r=!1;const i=(t.x+e.x)/2,o=(t.y+e.y)/2;do{n.y>o!=n.next.y>o&&n.next.y!==n.y&&i<(n.next.x-n.x)*(o-n.y)/(n.next.y-n.y)+n.x&&(r=!r),n=n.next}while(n!==t);return r}(t,e)&&(jt(t.prev,t,e.prev)||jt(t,e.prev,e))||Zt(t,e)&&jt(t.prev,t,t.next)>0&&jt(e.prev,e,e.next)>0)}function jt(t,e,n){return(e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y)}function Zt(t,e){return t.x===e.x&&t.y===e.y}function Gt(t,e,n,r){const i=Rt(jt(t,e,n)),o=Rt(jt(t,e,r)),s=Rt(jt(n,r,t)),a=Rt(jt(n,r,e));return i!==o&&s!==a||(!(0!==i||!Ut(t,n,e))||(!(0!==o||!Ut(t,r,e))||(!(0!==s||!Ut(n,t,r))||!(0!==a||!Ut(n,e,r)))))}function Ut(t,e,n){return e.x<=Math.max(t.x,n.x)&&e.x>=Math.min(t.x,n.x)&&e.y<=Math.max(t.y,n.y)&&e.y>=Math.min(t.y,n.y)}function Rt(t){return t>0?1:t<0?-1:0}function Jt(t,e){return jt(t.prev,t,t.next)<0?jt(t,e,t.next)>=0&&jt(t,t.prev,e)>=0:jt(t,e,t.prev)<0||jt(t,t.next,e)<0}function Ht(t,e){const n=Qt(t.i,t.x,t.y),r=Qt(e.i,e.x,e.y),i=t.next,o=e.prev;return t.next=e,e.prev=t,n.next=i,i.prev=n,r.next=n,n.prev=r,o.next=r,r.prev=o,r}function Wt(t,e,n,r){const i=Qt(t,e,n);return r?(i.next=r.next,i.prev=r,r.next.prev=i,r.next=i):(i.prev=i,i.next=i),i}function Kt(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function Qt(t,e,n){return{i:t,x:e,y:n,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:!1}}const te="__fea_idx";new Float32Array([-1e12])[0];const ee="maptalks_ombb";function ne(){return function(){if("undefined"!=typeof undefinedThis)return globalThis;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof undefined)return global;throw new Error("unable to locate global object")}().maptalks_vt_packers}const{PackUtil:re,ArrayPool:ie}=ne();function oe(t,e,n,r,i,o,s,a,l,u,h,c,f,p,d,g,y){const x=e.getLength(),m=i/3;for(let n=2,r=x;n<r;n+=3)t[i+n-2]=e[n-2],t[i+n-1]=e[n-1],t[i+n-0]=e[n]-s;i+=x;for(let n=2,r=x;n<r;n+=3)t[i+n-2]=e[n-2],t[i+n-1]=e[n-1],t[i+n-0]=e[n]-a;i+=x,t.trySetLength(i+x),t.copyWithin(i,i-2*x,i-x),i+=x,t.trySetLength(i+x),t.copyWithin(i,i-2*x,i-x),i+=x,(n=n||[]).push(x/3);const v=n.getLength();for(let e=0;e<v;e++){se(m+(n[e-1]||0),m+n[e],t,x/3,l,r,u,h,c,f,o,p,d,g,y)}return i}function se(t,e,n,r,i,o,s,a,l,u,h,c,f,p,d){const g=o.getLength();let y,x;for(let s=t,a=e;s<a-1;s++)if(y=s,x=s+1,i===1/0||!ft(n,y,x,i))if((s-t)%2==1&&(y+=2*r,x+=2*r),d){let t=o.currentIndex;o[t++]=y+r,o[t++]=x,o[t++]=y,o[t++]=x+r,o[t++]=x,o[t++]=y+r,o.currentIndex=t}else{let t=o.currentIndex;o[t++]=y+r,o[t++]=y,o[t++]=x,o[t++]=x,o[t++]=x+r,o[t++]=y+r,o.currentIndex=t}s&&function(t,e,n,r,i,o,s,a,l,u,h,c){let f,p=0,d=0,g=0,y=0;const x=c?[1,3,4]:[2,3,4];for(let c=o.getLength()-1;c>=s;c--){const s=o[c],m=3*s+1,v=3*s+2,w=i[3*s],M=i[m],b=i[v];p||d||(p=Math.max(i[v],i[3*o[c-3]+2]),d=Math.min(i[v],i[3*o[c-3]+2]),f=p-d);let P=g;const _=c%6;0===t?(5===_&&(y=St(i,o,c,w,M)),P=_===x[0]||_===x[1]||_===x[2]?g:g+y):1===t&&(_===x[0]||_===x[1]||_===x[2]?P=0:5===_?(y=St(i,o,c,w,M),P=y):P=y);const I=P/u*(1/(100*h))/a;let A;A=1===e?b===p?1:0:"bottom"===n?b===p?f/100/l:0:b===p?0:-f/100/l,r[2*s]=I,r[2*s+1]=A,0===_&&(g+=y)}}(a,l,u,h,n,o,g,c[0],c[1],f,p,d)}function ae(t){const e=[t[0]];let n=t[0];for(let r=1;r<t.length;r++)Array.isArray(t[r])?t[r][0]===n[0]&&t[r][1]===n[1]&&t[r][2]===n[2]||e.push(t[r]):t[r].x===n.x&&t[r].y===n.y&&t[r].z===n.z||e.push(t[r]),n=t[r];return e}var le="undefined"!=typeof Float32Array?Float32Array:Array;function ue(){var t=new le(3);return le!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t}function he(t,e,n){var r=new le(3);return r[0]=t,r[1]=e,r[2]=n,r}function ce(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function fe(t,e,n,r){return t[0]=e,t[1]=n,t[2]=r,t}function pe(t,e,n){return t[0]=e[0]+n[0],t[1]=e[1]+n[1],t[2]=e[2]+n[2],t}function de(t,e){var n=e[0],r=e[1],i=e[2],o=n*n+r*r+i*i;return o>0&&(o=1/Math.sqrt(o),t[0]=e[0]*o,t[1]=e[1]*o,t[2]=e[2]*o),t}function ge(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function ye(t,e,n){var r=e[0],i=e[1],o=e[2],s=n[0],a=n[1],l=n[2];return t[0]=i*l-o*a,t[1]=o*s-r*l,t[2]=r*a-i*s,t}var xe=function(t,e,n){return t[0]=e[0]-n[0],t[1]=e[1]-n[1],t[2]=e[2]-n[2],t};function me(){var t=new le(4);return le!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t[3]=1,t}function ve(t,e){var n=e[0]+e[4]+e[8],r=void 0;if(n>0)r=Math.sqrt(n+1),t[3]=.5*r,r=.5/r,t[0]=(e[5]-e[7])*r,t[1]=(e[6]-e[2])*r,t[2]=(e[1]-e[3])*r;else{var i=0;e[4]>e[0]&&(i=1),e[8]>e[3*i+i]&&(i=2);var o=(i+1)%3,s=(i+2)%3;r=Math.sqrt(e[3*i+i]-e[3*o+o]-e[3*s+s]+1),t[i]=.5*r,r=.5/r,t[3]=(e[3*o+s]-e[3*s+o])*r,t[o]=(e[3*o+i]+e[3*i+o])*r,t[s]=(e[3*s+i]+e[3*i+s])*r}return t}!function(){var t=ue()}(),function(){var t,e=(t=new le(4),le!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0),t)}();var we,Me=function(t,e,n){return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t[3]=e[3]*n,t},be=function(t,e){var n=e[0],r=e[1],i=e[2],o=e[3],s=n*n+r*r+i*i+o*o;return s>0&&(s=1/Math.sqrt(s),t[0]=n*s,t[1]=r*s,t[2]=i*s,t[3]=o*s),t};ue(),he(1,0,0),he(0,1,0),me(),me(),we=new le(9),le!=Float32Array&&(we[1]=0,we[2]=0,we[3]=0,we[5]=0,we[6]=0,we[7]=0),we[0]=1,we[4]=1,we[8]=1;\n/*!\n * Contains code from google filament\n * https://github.com/google/filament/\n * License Apache-2.0\n */\nconst Pe=8,_e=[],Ie=[],Ae=[],Se=[];function Fe(t,e,n){const r=ye(Ie,e,n),i=function(t,e,n,r,i,o,s,a,l,u){return t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=o,t[5]=s,t[6]=a,t[7]=l,t[8]=u,t}(_e,n[0],n[1],n[2],...r,...e);t=ve(t,i),t=function(t){return t[3]<0?Me(t,t,-1):t}(t=be(t,t));const o=1/((1<<2*Pe-1)-1);if(t[3]<o){t[3]=o;const e=Math.sqrt(1-o*o);t[0]*=e,t[1]*=e,t[2]*=e}const s=n[3]>0?ye(Ae,n,e):ye(Ae,e,n);return ge(ye(Se,n,e),s)<0&&Me(t,t,-1),t}const Te=[];const ke=[],Be=[],Le=[],Ce=[],Ye=[],Ve=[],Oe=[];function Xe(t,e,n,r,i,o){fe(Ce,t[3*e],t[3*e+1],t[3*e+2]),fe(Ye,t[3*n],t[3*n+1],t[3*n+2]),fe(Ve,t[3*r],t[3*r+1],t[3*r+2]);const s=xe(ke,Ve,Ye),a=xe(Be,Ce,Ye),l=ye(Le,s,a);de(Oe,l),i[3*e]=i[3*e]||0,i[3*n]=i[3*n]||0,i[3*r]=i[3*r]||0,i[3*e+1]=i[3*e+1]||0,i[3*n+1]=i[3*n+1]||0,i[3*r+1]=i[3*r+1]||0,i[3*e+2]=i[3*e+2]||0,i[3*n+2]=i[3*n+2]||0,i[3*r+2]=i[3*r+2]||0,i[3*e]+=Oe[0],i[3*n]+=Oe[0],i[3*r]+=Oe[0],i[3*e+1]+=Oe[1],i[3*n+1]+=Oe[1],i[3*r+1]+=Oe[1],i[3*e+2]+=Oe[2],i[3*n+2]+=Oe[2],i[3*r+2]+=Oe[2],o[e]+=1,o[n]+=1,o[r]+=1}\n/*!\n * Contains code from THREE.JS\n * https://github.com/mrdoob/three.js/\n * License MIT\n * \n * Generate tangents per vertex.\n */function Ne(t,e,n){return t[0]=e[n],t[1]=e[n+1],t[2]=e[n+2],t}function Ee(t,e,n){return t[0]=e[n],t[1]=e[n+1],t}const{StyleUtil:ze,PackUtil:$e,ArrayPool:qe}=ne(),De=qe.getInstance();function je(t,e,n,r,i,o,s,a,l,u,h,c,f,p,d,g){void 0===e.top&&(e.top=!0),void 0===e.side&&(e.side=!0),De.reset();const{altitudeScale:y,altitudeProperty:x,defaultAltitude:m,heightProperty:v,minHeightProperty:P,defaultHeight:_,tangent:I,uv:A,topUVMode:F,sideUVMode:T,sideVerticalUVMode:k,top:L,side:C,textureYOrigin:Y,topThickness:V}=e,O=function(t,e,{altitudeScale:n,altitudeProperty:r,defaultAltitude:i,heightProperty:o,minHeightProperty:s,defaultHeight:a},{center:l,side:u,top:h,topThickness:c,uvOrigin:f,uv:p,uvSize:d,topUVMode:g,sideUVMode:y,sideVerticalUVMode:x,textureYOrigin:m,tileRatio:v,centimeterToPoint:w,verticalCentimeterToPoint:M,positionType:b,res:P,glScale:_,projectionCode:I},A,F){let T=e/t[0].extent;e===1/0&&(T=1);const k=e===1/0,B=F.get(),L=F.get(),C=F.get(),Y=F.getProxy(),V=F.get(),O=F.get(),X=F.get(),N=!!p,E=!!h,z=!!u,$=N?F.get():null;function q(t,n,r,i,o,s){let a=n;if(E){const u=Ft(Y,r,3);if(0===u.length)return n;let h=Y.getLength(),p=V.currentIndex;for(let t=0;t<h;t++)V[p++]=Y[t];if(V.currentIndex=p,n+=Y.getLength(),s)for(let e=2,n=u.length;e<n;e+=3)u[e]+=t/3,u[e-1]+=t/3,u[e-2]+=t/3;else{let e;for(let n=2,r=u.length;n<r;n+=3)e=u[n-1],u[n-1]=u[n]+t/3,u[n]=e+t/3,u[n-2]+=t/3}h=u.length,p=O.currentIndex;for(let t=0;t<h;t++)O[p++]=u[t];O.currentIndex=p,N&&It(g||0,t,n,$,V,f,w,v,d[0],d[1],o,P,_,I,l),c>0&&!z&&(n=oe(V,Y,r,O,n,$,0,c,e,N,y||0,x||0,m,d,v,M,i<0?!s:s)),X.setLength(n/3),X.fill(1,a/3,n/3)}if(z){E&&(c=0),a=n,n=oe(V,Y,r,O,n,$,c,i,e,N,y||0,x||0,m,d,v,M,i<0?!s:s),X.setLength(n/3);const t=Y.getLength()/3;X.fill(1,a/3,a/3+t),X.fill(0,a/3+t,a/3+2*t),X.fill(1,a/3+2*t,a/3+3*t),X.fill(0,a/3+3*t,n/3)}return n}let D=-1/0,j=1/0,Z=0;const G=[-1,-1,e+1,e+1];let U=0,R=t.length;S(A)&&(U=A,R=A+1);let J=0,H=!1;const W=F.getProxy();let K=!1;for(;U<R;U++){const l=t[U],u=l.id;S(u)&&(Math.abs(u)>J&&(J=Math.abs(u)),u<0&&(H=!0));const h=l.geometry,c=l.properties[ee];let f=Array.isArray(c&&c[0]&&c[0][0])?c[0]:c;const{altitude:p,height:d}=re.getFeaAltitudeAndHeight(l,n,r,i,o,a,s);d<0?(K=!0,j=Math.min(p,j),D=Math.max(p-d,D)):(D=Math.max(p,D),j=Math.min(p-d,j));const g=V.getLength();let y=0,x=Z;W.setLength(0),Y.setLength(0);const m=re.calculateSignedArea(h[0])<0;for(let t=0,n=h.length;t<n;t++){let r=h[t];m&&(r=r.reverse()),r=ae(r);const i=re.calculateSignedArea(r)<0;if(!i&&t>0&&(y++,f=c&&c[y],Z=q(x,Z,W,d*T,f,k),Y.setLength(0),W.setLength(0),x=Z),e!==1/0&&(r=re.clipPolygon(r,G)),!r.length){t===n-1&&(Z=q(x,Z,W,d*T,f,k));continue}const o=r.length;if(Array.isArray(r[0])?r[0][0]===r[o-1][0]&&r[0][1]===r[o-1][1]||r.push([r[0][0],r[0][1]]):r[0].x===r[o-1].x&&r[0].y===r[o-1].y||r.push(r[0]),i){let t=W.currentIndex;W[t++]=Y.getLength()/3,W.currentIndex=t}ct(Y,Y.getLength(),r,T,p,!1,b),t===n-1&&(Z=q(x,Z,W,d*T,f,k))}const v=V.getLength()-g,w=(te+"").trim();for(let t=0;t<v/3;t++){let t=L.currentIndex;L[t++]=void 0===l[w]?U:l[w],L.currentIndex=t,t=B.currentIndex,B[t++]=U,B.currentIndex=t,S(u)&&(t=C.currentIndex,C[t++]=u,C.currentIndex=t)}}const Q=re.getUnsignedArrayType(L.getLength()?L[L.getLength()-1]:0),tt={hasNegativeHeight:K,maxAltitude:D===-1/0?0:D,minAltitude:j===1/0?0:j,vertices:V,verticeTypes:X,indices:O,pickingIds:ie.createTypedArray(L,Q),featureIndexes:B};if(C.getLength()){const t=H?re.getPosArrayType(J):re.getUnsignedArrayType(J);tt.featureIds=ie.createTypedArray(C,t)}else tt.featureIds=[];return $&&($.setLength(V.getLength()/3*2),tt.uvs=$),tt}(t,n,{altitudeScale:y,altitudeProperty:x,defaultAltitude:m||0,heightProperty:v,minHeightProperty:P,defaultHeight:_||0},{center:g,top:L,side:C,topThickness:10*V||0,uv:A||I,uvSize:[i,i],uvOrigin:r,topUVMode:F,sideUVMode:T,sideVerticalUVMode:k,textureYOrigin:Y,tileRatio:a,centimeterToPoint:l,verticalCentimeterToPoint:u,positionType:d,res:o,glScale:s,projectionCode:f},p,De),X=[],N=O.vertices.getLength()/3,E=$e.getIndexArrayType(N),z=qe.createTypedArray(O.indices,E);delete O.indices,X.push(z.buffer,O.pickingIds.buffer);const $=Math.max(Math.abs(O.maxAltitude),Math.abs(O.minAltitude)),q=$e.getPosArrayType(Math.max(512,$));O.vertices=qe.createTypedArray(O.vertices,q);const D=I?De.getProxy():new Float32Array(3*N);D.setLength&&D.setLength(3*N);const j=function(t,e,n){const r=n||[];r.setLength&&r.setLength(t.length);const i=Te;i.length<t.length/3&&(i.length=t.length/3),i.fill(0,0,t.length/3);const o=void 0===e.length?e:e.length;for(let n=0;n<o/3;n++)void 0===e.length?Xe(t,3*n,3*n+1,3*n+2,r,i):Xe(t,e[3*n],e[3*n+1],e[3*n+2],r,i);for(let t=0;t<r.length;t+=3){const e=i[t/3];0!==e?(r[t]/=e,r[t+1]/=e,r[t+2]/=e):(r[t]=0,r[t+1]=0,r[t+2]=0)}return r}(O.vertices,z,D);let Z=!0;const G=j.getLength?j.getLength():j.length;for(let t=0;t<G;t++){j[t]=-j[t];const e=j[t]%1;1-Math.abs(e)>1e-6?Z=!1:0!==e&&(j[t]=Math.round(j[t]))}if(O.normals=j,I){let t=De.get();t.setLength(4*N),t=function(t,e,n,r,i){const o=t.length/3,s=i||new Array(4*o),a=[],l=[];for(let t=0;t<o;t++)a[t]=[0,0,0],l[t]=[0,0,0];const u=[0,0,0],h=[0,0,0],c=[0,0,0],f=[0,0],p=[0,0],d=[0,0],g=[0,0,0],y=[0,0,0];function x(e,r,i){Ne(u,t,3*e),Ne(h,t,3*r),Ne(c,t,3*i),Ee(f,n,2*e),Ee(p,n,2*r),Ee(d,n,2*i);const o=h[0]-u[0],s=c[0]-u[0],x=h[1]-u[1],m=c[1]-u[1],v=h[2]-u[2],w=c[2]-u[2],M=p[0]-f[0],b=d[0]-f[0],P=p[1]-f[1],_=d[1]-f[1],I=1/(M*_-b*P);fe(g,(_*o-P*s)*I,(_*x-P*m)*I,(_*v-P*w)*I),fe(y,(M*s-b*o)*I,(M*m-b*x)*I,(M*w-b*v)*I),pe(a[e],a[e],g),pe(a[r],a[r],g),pe(a[i],a[i],g),pe(l[e],l[e],y),pe(l[r],l[r],y),pe(l[i],l[i],y)}for(let t=0,e=r.length;t<e;t+=3)x(r[t+0],r[t+1],r[t+2]);const m=[],v=[],w=[],M=[];let b,P,_;function I(t){Ne(w,e,3*t),ce(M,w),P=a[t],ce(m,P),xe(m,m,function(t,e,n){return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t}(w,w,ge(w,P))),de(m,m),ye(v,M,P),_=ge(v,l[t]),b=_<0?-1:1,s[4*t]=m[0],s[4*t+1]=m[1],s[4*t+2]=m[2],s[4*t+3]=b}for(let t=0,e=r.length;t<e;t+=3)I(r[t+0]),I(r[t+1]),I(r[t+2]);return s}(O.vertices,O.normals,O.uvs,z,t),t=function(t,e){const n=e.getLength(),r=new Float32Array(n),i=[],o=[],s=[];for(let a=0;a<n;a+=4){const n=a/4*3;dt(o,t[n]||0,t[n+1]||0,t[n+2]||0),yt(i,e[a]||0,e[a+1]||0,e[a+2]||0,e[a+3]||0),Fe(s,o,i),gt(r.subarray(a,a+4),s)}return r}(O.normals,t),O.tangents=t,X.push(t.buffer),delete O.normals}if(O.normals&&(Z&&(O.normals=qe.createTypedArray(O.normals,Int8Array)),X.push(O.normals.buffer)),O.uvs){const t=O.uvs;O.uvs=qe.createTypedArray(t,Float32Array),X.push(O.uvs.buffer)}const U=function(t,e,n,r){const i={},o={},s=r.getLength();if(B(e.polygonFill)){let a=M(e.polygonFill);const l=new Uint8Array(4*s);l.fill(255);for(let e=0;e<s;e++){const o=t[r[e]],s=o.properties||{};s.$layer=o.layer,s.$type=o.type;let u=a(n,s);w(u)&&(i.aColor=1,a=M(u),u=a(n,s)),delete s.$layer,delete s.$type,ze.normalizeColor(Ze,u),l[4*e]=Ze[0],l[4*e+1]=Ze[1],l[4*e+2]=Ze[2],l[4*e+3]=Ze[3]}o.aColor=l}if(B(e.polygonOpacity)){let a=b(e.polygonOpacity,"exponential");const l=new Uint8Array(s);l.fill(255);for(let e=0;e<s;e++){const o=t[r[e]],s=o.properties||{};s.$layer=o.layer,s.$type=o.type;let u=a(n,s);w(u)&&(i.aOpacity=1,a=M(u),u=a(n,s)),delete s.$layer,delete s.$type,l[e]=255*u}o.aOpacity=l}return o.dynamicAttributes=i,o}(t,h,c,O.featureIndexes),R=function(t,e,n,r,i){const o=[[],[]],s=B(r.topPolygonFill),a=B(r.bottomPolygonFill),l=[255,255,255,255],u=e.getLength();if(s||a){let h=s&&M(r.topPolygonFill),c=a&&M(r.bottomPolygonFill),f=null,p=null,d=null,g=null;for(let r=0;r<u;r++){if(1===t[r]&&!s||0===t[r]&&!a)continue;const u=1===t[r];if(u&&e[r]===f){t[r]=d;continue}if(!u&&e[r]===p){t[r]=g;continue}const y=n[e[r]],x=y.properties||{};x.$layer=y.layer,x.$type=y.type;let m=u?h:c,v=m(i,x);w(v)&&(m=M(v),v=m(i,x)),delete x.$layer,delete x.$type,ze.normalizeColor(Ze,v),xt(Ze,Ze,l);let b=Ge(o,Ze);b<0&&(b=o.length,o.push(gt([],Ze))),t[r]=b,u?(f=e[r],d=b):(p=e[r],g=b)}}return o.slice(2)}(O.verticeTypes,O.featureIndexes,t,h,c),J={data:{data:{aVertexColorType:R.length<=252?qe.createTypedArray(O.verticeTypes,Uint8Array):qe.createTypedArray(O.verticeTypes,Uint16Array),aPosition:O.vertices,aNormal:O.normals,aTexCoord0:O.uvs,aTangent:O.tangents,aPickingId:O.pickingIds},indices:z,properties:{maxAltitude:O.maxAltitude/100,minAltitude:O.minAltitude/100,hasNegativeHeight:O.hasNegativeHeight},dynamicAttributes:U.dynamicAttributes,vertexColors:R},buffers:X};return O.featureIds.length?(J.data.featureIds=O.featureIds,X.push(J.data.featureIds.buffer)):J.data.featureIds=[],U.aColor&&(J.data.data.aColor=U.aColor,J.buffers.push(U.aColor.buffer)),U.aOpacity&&(J.data.data.aOpacity=U.aOpacity,J.buffers.push(U.aOpacity.buffer)),J.buffers.push(J.data.data.aPosition.buffer),J.data.pickingIdIndiceMap=$e.generatePickingIndiceIndex(J.data.data.aPickingId,J.data.indices),J}const Ze=[];function Ge(t,e){for(let i=0;i<t.length;i++)if(n=e,r=t[i],n[0]===r[0]&&n[1]===r[1]&&n[2]===r[2]&&n[3]===r[3])return i;var n,r;return-1}const{PackUtil:Ue,StyleUtil:Re,FilterUtil:Je}=ne();function He(t,e,n,r,{altitudeScale:i,altitudeProperty:o,defaultAltitude:s,heightProperty:a,minHeightProperty:l,defaultHeight:u,bottom:h}){const c=h,f=e/t[0].extent,p=2*function(t,e){let n=0;for(let e=0,r=t.length;e<r;e++){const r=t[e];if(S(r.geometry[0][0]))n+=3*r.geometry.length;else for(let t=0,e=r.geometry.length;t<e;t++){let e=3*r.geometry[t].length;3===r.type&&(e-=3),n+=e}}return n}(t)+3*t.length*2,d=[],g=new Int16Array(p),y=new Uint8Array(g.length/3*4);w(n)&&(n=Je.compileFilter(n));const x=[];function m(t,n,r){const i=n-t,o=g.subarray(t,n),s=g.subarray(n,n+i);s.set(o);for(let t=2,e=s.length;t<e;t+=3)s[t]=o[t]-r;const a=t/3,l=i/3;let u,h;for(let t=a,n=l+a;t<n;t++)t<n-1?(u=t,h=t+1):(u=t,h=a),ft(g,u,h,e)||(x.push(u,h),c&&x.push(u+l,h+l),We(g,u,e)||x.push(u,u+l));return n+i}let v=0,M=-1/0,b=1/0;const P=(te+"").trim(),_=[];for(let e=0,h=t.length;e<h;e++){const h=t[e],c=h.geometry;if(n){let t;t="function"==typeof n?n(h&&h.properties):n,Re.normalizeColor(_,t)}else dt(_,255,255,255);const p=v/3*4,{altitude:w,height:I}=Ue.getFeaAltitudeAndHeight(h,i,o,s,a,u,l);I<0?(b=Math.min(w,b),M=Math.max(w-I,M)):(b=Math.min(w-I,b),M=Math.max(w,M));let A=v;for(let t=0,e=c.length;t<e;t++){let e=c[t];const n=e.length;e[0][0]===e[n-1][0]&&e[0][1]===e[n-1][1]&&(e=e.slice(0,n-1)),v=ct(g,A,e,f,w),v=m(A,v,I*f),A=v}const S=A/3*4;for(let t=p;t<S;t+=4)y[t]=_[0],y[t+1]=_[1],y[t+2]=_[2],y[t+3]=255*(r||1);const F=x.length-d.length;for(let t=0;t<F;t++)d.push(h[P])}const I=x.reduce(((t,e)=>Math.max(t,e)),0),A=new(Ue.getIndexArrayType(I))(x),F=Ue.getUnsignedArrayType(t.length),T=Math.max(Math.abs(M,Math.abs(b)));return{aPosition:new(Ue.getPosArrayType(Math.max(512,T)))(g),indices:A,aPickingId:new F(d),aColor:y,maxAltitude:M===-1/0?0:M/100,minAltitude:b===1/0?0:b/100}}function We(t,e,n){const r=t[3*e],i=t[3*e+1];return r<0||r>n||i<0||i>n}function Ke(t,e,n,r){const i=He(t,e,n.lineColor,n.lineOpacity,r),{minAltitude:o,maxAltitude:s}=i;delete i.minAltitude,delete i.maxAltitude;const a=[i.aPosition.buffer,i.indices.buffer,i.aPickingId.buffer],l=i.indices;return delete i.indices,{data:{data:i,properties:{minAltitude:o,maxAltitude:s},indices:l},buffers:a}}\n/*!\n Feature Filter by\n\n (c) mapbox 2016 and maptalks 2018\n www.mapbox.com | www.maptalks.org\n License: MIT, header required.\n */const Qe=["Unknown","Point","LineString","Polygon","MultiPoint","MultiLineString","MultiPolygon","GeometryCollection"];function tn(t){if(!t)return"true";const e=t[0];if(t.length<=1)return"any"===e?"false":"true";return\`(${R}"=="===e?nn(t[1],t[2],"===",!1):"!="===e?nn(t[1],t[2],"!==",!1):"<"===e||">"===e||"<="===e||">="===e?nn(t[1],t[2],e,!0):"any"===e?on(t.slice(1),"||"):"all"===e?on(t.slice(1),"&&"):"none"===e?ln(on(t.slice(1),"||")):"in"===e?sn(t[1],t.slice(2)):"!in"===e?ln(sn(t[1],t.slice(2))):"has"===e?an(t[1]):"!has"===e?ln(an(t[1])):"contains"===e?function(t,e,n){const r=en(t);return void 0!==n?\`(${R}r} + '').indexOf("${R}e}") === ${R}n}\`:\`(${R}r} + '').indexOf("${R}e}") >= 0\`}(t[1],t[2],t[3]):"true"})\`}function en(t){return"$"===t[0]?"f."+t.substring(1):"p["+JSON.stringify(t)+"]"}function nn(t,e,n,r){if("object"==typeof(i=t)&&i&&t.op)return function(t,e,n,r){const i=t.property,o=t.op;let s=en(i);return"length"!==o?(console.error(\`not support ${R}o} op\`),"false"):(s=\`((${R}s}+='').length)\`,rn(s,i,e,n,r))}(t,e,n,r);var i;return rn(en(t),t,e,n,r)}function rn(t,e,n,r,i){const o="$type"===e?Qe.indexOf(n):JSON.stringify(n);return(i?\`typeof ${R}t}=== typeof ${R}o}&&\`:"")+t+r+o}function on(t,e){return t.map(tn).join(e)}function sn(t,e){"$type"===t&&(e=e.map((t=>Qe.indexOf(t))));const n=JSON.stringify(e.sort(un)),r=en(t);return e.length<=200?\`${R}n}.indexOf(${R}r}) !== -1\`:\`function(v, a, i, j) {\\n while (i <= j) { var m = (i + j) >> 1;\\n if (a[m] === v) return true; if (a[m] > v) j = m - 1; else i = m + 1;\\n }\\n return false; }(${R}r}, ${R}n},0,${R}e.length-1})\`}function an(t){return"$id"===t?'"id" in f':\`${R}JSON.stringify(t)} in p\`}function ln(t){return\`!(${R}t})\`}function un(t,e){return t<e?-1:t>e?1:0}let hn=!1;try{const t=new OffscreenCanvas(1,1);t.getContext("2d").fillText("hello",0,0),hn=!0}catch(t){hn=!1}var cn=hn;const{VectorPack:fn,PolygonPack:pn,NativeLinePack:dn,LinePack:gn,PointPack:yn,NativePointPack:xn,LineExtrusionPack:mn,CirclePack:vn,RoundTubePack:wn,SquareTubePack:Mn,FilterUtil:bn,PackUtil:Pn,StyleUtil:_n,TextUtil:In,DEFAULT_TEX_WIDTH:An,GlyphRequestor:Sn}=ne(),Fn="__original_properties",Tn="__fn-type_properties";class kn{constructor(t,e,n,r,i){this.id=t,this.options=e,this.upload=n,this._compileStyle(e.style),this.requests={},this._cache=r,this._styleCounter=1,this.loadings=i}updateStyle(t,e){this.options.style=t,this._styleCounter=t.styleCounter,this._compileStyle(t),e()}updateOptions(t,e){this.options=I(this.options,t),e()}loadTile(t,e){const n=this.loadings,r=t.tileInfo.url,i=this.options.debugTile;if(i){const{x:n,y:r,z:o}=t.tileInfo;let s=!1;for(let t=0;t<i.length;t++)if(n===i[t].x&&r===i[t].y&&o===i[t].z){s=!0;break}if(!s)return void e()}if(n[r])return void n[r].push({context:t,callback:e,ref:this});n[r]=[{context:t,callback:e,ref:this}];const o=this.options.featureIdProperty;this.requests[r]=this.getTileFeatures(t,((e,i,s,a)=>{const l=n[r];if(delete n[r],this.checkIfCanceled(r))return delete this.requests[r],void this._callWaitings(l,null,{canceled:!0});if(delete this.requests[r],(this.options.debug||o)&&i)for(let e=0;e<i.length;e++)if(this.options.debug&&(i[e]._debug_info={index:e,id:i[e].id,tileId:t.tileInfo.id}),o){const t=T(o)?o[i[e].layer]:o,n=i[e].properties;i[e].id=n&&n[t]||null}if(e)this._callWaitings(l,e);else if(i&&i.length){if(l)for(let t=0;t<l.length;t++)this._onTileLoad.call(l[t].ref,l[t].context,l[t].callback,r,s,i,a)}else this._callWaitings(l)}))}_onTileLoad(t,e,n,r,i,o){this._createTileData(r,i,t).then((n=>{n.canceled?e(null,{canceled:!0}):(n.data.styleCounter=t.styleCounter,o&&I(n.data,o),e(null,n.data,n.buffers))})).catch((t=>{e(t)}))}abortTile(t,e){delete this.requests[t],this._cancelLoadings(t),e()}_cancelLoadings(t){const e=this.loadings[t];if(e)for(let t=0;t<e.length;t++)e[t].callback(null,{canceled:!0});delete this.loadings[t]}_callWaitings(t,e,n){if(t)for(let r=0;r<t.length;r++)t[r].callback(e,n)}checkIfCanceled(t){return!this.requests[t]}onRemove(){this.loadings={},delete this._cache,this.requests={}}fetchIconGlyphs(t,e,n){if(this.options.workerGlyph&&cn){const r=[];if(t&&Object.keys(t).length){const e=new Promise((e=>{this.upload("fetchIconGlyphs",{icons:t},null,((t,n)=>{e({err:t,iconData:n})}))}));r.push(e)}if(e&&Object.keys(e).length){const t=new Promise((t=>{this._glyphRequestor||(this._glyphRequestor=new Sn),this._glyphRequestor.getGlyphs(e,((e,n)=>{t({err:e,glyphData:n})}))}));r.push(t)}Promise.all(r).then((t=>{const e={icons:null,glyphs:null};for(let r=0;r<t.length;r++){if(t[r].err)return void n(t[r].err);t[r].iconData?e.icons=t[r].iconData.icons:t[r].glyphData&&(e.glyphs=t[r].glyphData.glyphs)}return e})).then((t=>{n(null,t)}))}else this.upload("fetchIconGlyphs",{icons:t,glyphs:e},null,n)}_createTileData(t,e,n){if(!e.length)return Promise.resolve({data:null,buffers:[]});const{glScale:r,tileInfo:i}=n,o=!this.options.style.style.length&&!this.options.style.featureStyle.length;let s=this.pluginConfig.slice(0);o&&(s=this._updateLayerPluginConfig(t)),this.featurePlugins&&function(t){for(let e=1;e<arguments.length;e++){const n=arguments[e];if(n)for(let e=0,r=n.length;e<r;e++)t.push(n[e])}t.length}(s,this.featurePlugins);const a={};for(let t=0;t<s.length;t++)Xn(e,n.tileInfo.z,s[t],a);const l=[],u=[];for(let t=0;t<e.length;t++){const n=e[t],r=a[t];if(r){u.fill(null);let t=0;for(const e in r){let i=0;const o=r[e].values();for(const t of o){let r=u[i];r||(r=$n(n),u[i]=r),r.properties[e]=t,i++}i>t&&(t=i)}for(let e=0;e<t;e++)l.push(u[e])}else l.push(n)}const h=(e=l)[0].extent,c=i.z,f={x:i.extent2d.xmin*r,y:i.extent2d.ymax*r},p=[],d=[],g=[],y=this.options,x=[],m={},v=[Promise.resolve(n.styleCounter)];let w=0,M=-1;const b=[];let P=!1;for(let t=0;t<s.length;t++){M++;const r=s[t];r.type!==w&&(M=0,w=r.type);const a=0===r.type?p:d;if(r.symbol&&!1===r.symbol.visible){a[M]=null;continue}jn(r.symbol,b,t),P=P||b[t]&&b[t].size>0;const{tileFeatures:l,tileFeaIndexes:u}=this._filterFeatures(c,r.type,r.filter,e,m,t);if(!l.length){a[M]=null;continue}const y=u[u.length-1],_=Pn.getIndexArrayType(y);a[M]={styledFeatures:new _(u)},g.push({idx:t,typeIdx:M}),x.push(a[M].styledFeatures.buffer);const A=I({},n,{extent:h,zoom:c,tilePoint:f});if(this.options.debugTile){const t=this.options.debugTile;for(let e=0;e<t.length;e++){const{x:n,y:r,z:o}=t[e];if(i.x===n&&i.y===r&&i.z===o){A.debugIndex=t[e].index;break}}}let S=this._createTileGeometry(l,r,A);o&&(S=S.then((t=>{if(!t)return null;if(t.data)t.data.layer=l[0].layer;else if(Array.isArray(t))for(let e=0;e<t.length;e++)t[e]&&t[e].data&&(t[e].data.layer=l[0].layer);return t}))),v.push(S)}return Promise.all(v).then((([n,...r])=>{if(n!==this._styleCounter)return{canceled:!0};function i(t,e){if(void 0!==t.data.ref)return;const n=s[g[e].idx],r=n.renderPlugin.dataConfig;if(t.data.type=r.type,t.data.filter=n.filter.def,r.altitudeOffset&&(t.data.properties.minAltitude+=r.altitudeOffset,t.data.properties.maxAltitude+=r.altitudeOffset),t.buffers&&t.buffers.length)for(let e=0;e<t.buffers.length;e++)x.push(t.buffers[e])}for(let t=0;t<r.length;t++){if(!r[t])continue;const e=r[t],n=0===s[g[t].idx].type?p:d;if(Array.isArray(e)){const r=[];for(let n=0;n<e.length;n++)e[n]&&(i(e[n],t),(void 0===e[n].data.ref||e[e[n].data.ref])&&r.push(e[n].data));r.length&&(n[g[t].typeIdx].data=r)}else i(e,t),n[g[t].typeIdx].data=e.data}const o={},a=t;if(y.features||y.schema||P){let t,n=!1;for(let r=0,i=e.length;r<i;r++)if(t=e[r],a[t.layer].properties||(a[t.layer].properties=Cn(t.properties)),t&&(y.features||P&&m[r]))if("id"===y.features)o[r]=t.id;else{y.pickingGeometry||delete t.geometry,delete t.extent,delete t.properties.$layer,delete t.properties.$type,delete t.__index;const e=t.originalFeature;if(e){const e=t.properties,n=I({},t.originalFeature);delete e[Fn],n.customProps=I({},e),t=n}const i=I({},t);if(P&&m[r]&&(!y.features||"transient"===y.features)){const i=m[r];for(let r=0;r<i.length;r++){const i=b[r];i&&i.forEach((r=>{const i=e?e.properties:t.properties;i[Tn]||(i[Tn]=new Set),i[Tn].add(r),n=!0}))}}o[r]=i}if(n)for(const t in o){const e=o[t],n=e.properties[Tn];if(n){delete e.properties[Tn],"transient"===y.features&&(e.fnTypeProps=I({},e.properties));for(const t in e.properties)n.has(t)||("transient"===y.features?delete e.fnTypeProps[t]:delete e.properties[t])}}}return{data:{styleCounter:n,schema:a,data:p,featureData:d,extent:h,features:o},buffers:x}})).catch((t=>{console.error(t)}))}_createTileGeometry(t,e,n){let r=t;const i=e.renderPlugin.dataConfig,o=e.symbol,s=this.options.tileSize,{extent:a,glScale:l,zScale:u,zoom:h,tilePoint:c,centimeterToPoint:f,verticalCentimeterToPoint:p}=n,d=a/s,g=i.type,y=n.debugIndex;let x=I({},i,{EXTENT:a,zoom:h,debugIndex:y,features:this.options.features});if("3d-extrusion"===g){Yn(o)&&(i.uv=1);const t=this.options.projectionCode,e=o.material&&o.material.textureWidth||An;return Promise.all([Promise.resolve(je(r,i,a,c,e,n.tileInfo.res,l,a/this.options.tileSize,f,p,o,h,t,y))])}if("3d-wireframe"===g)return Promise.all([Promise.resolve(Ke(r,a,o,i))]);if("point"===g){x=I(x,{requestor:this.fetchIconGlyphs.bind(this),altitudeToTileScale:u*a/this.options.tileSize/l,pluginType:e.renderPlugin.type});let t=o;return Array.isArray(o)||(t=[o]),t=t.map(((t,e)=>(t&&(t.index={index:e},t.isIconText=function(t){return t.markerType||t.markerFile}(t)),t))).filter((t=>!!t)),Promise.all(t.map((t=>{const e=fn.genFnTypes(t);let n=r;return yn.needMerge(t,e,h)&&(n=yn.mergeLineFeatures(r,t,e,h)),new yn(n,t,x).load(d)})))}if("native-point"===g){const t=u*a/this.options.tileSize/l;return x.altitudeToTileScale=t,Vn(r,o,x,xn,d)}if("line"===g)return x=I(x,{requestor:this.fetchIconGlyphs.bind(this),tileRatio:d}),Vn(r,o,x,gn,1,!0);if("native-line"===g)return Vn(r,o,x,dn,1,!0);if("fill"===g)return x=I(x,{requestor:this.fetchIconGlyphs.bind(this)}),Vn(r,o,x,pn);if("line-extrusion"===g){delete o.lineGradientProperty,o.lineJoin="miter",o.lineCap="butt";const t=Yn(o);if(t&&(i.uv=1),x=I(x,{tileSize:s,zScale:u,glScale:l}),o.mergeOnProperty){const t=fn.genFnTypes(o);r=gn.mergeLineFeatures(r,o,t,x.zoom)}if(t){const t=[];if(!1!==i.top){const e=I({},x);e.side=!1,t.push(new mn(r,o,e))}return!1!==i.side&&(x.side=!0,x.top=!1,t.push(new mn(r,o,x))),Promise.all(t.map((t=>t.load())))}return Promise.all([new mn(r,o,x).load()])}if("circle"===g)return Vn(r,o,x,vn);if("round-tube"===g||"square-tube"===g){const t="round-tube"===g?wn:Mn;return x=I(x,{requestor:this.fetchIconGlyphs.bind(this),radialSegments:"round-tube"===g?i.radialSegments||8:4,centimeterToPoint:f,verticalCentimeterToPoint:p,tileRatio:d,isTube:!0}),Vn(r,o,x,t)}return Promise.resolve([])}_filterFeatures(t,e,n,r,i,o){const s=(te+"").trim(),a=[],l=[],u=r.length;for(let h=0;h<u;h++)if((1===e||void 0===r[h].id||!this.styledFeatures[r[h].id])&&((!n.def||"default"===n.def)&&!i[h]||!0===n.def||n.def&&(void 0!==n.def.condition||Array.isArray(n.def))&&n(r[h],t))){const t=r[h];if(void 0===t[s]&&(t[s]=h),i[h]||(i[h]=[]),i[h].push(o),l.push(t),a.push(h),1===e)break}return{tileFeatures:l,tileFeaIndexes:a}}_compileStyle(t){const{style:e,featureStyle:n}=t,r={};n.forEach((t=>{Array.isArray(t.id)?(t.id.forEach((t=>{r[t]=1})),t.filter=["in","$id",...t.id]):(r[t.id]=1,t.filter=["==","$id",t.id])}));const i=bn.compileStyle(e);for(let t=0;t<e.length;t++)i[t].filter&&(i[t].filter.def=e[t].filter?e[t].filter.value||e[t].filter:void 0),i[t].type=0;const o=[],s=bn.compileStyle(n);for(let t=0;t<n.length;t++)s[t].type=1,s[t].filter.def=n[t].filter?n[t].filter.value||n[t].filter:void 0,s[t].renderPlugin&&o.push(s[t]);this.pluginConfig=i,this.featurePlugins=o,this.styledFeatures=r}_updateLayerPluginConfig(t){let e=this._layerPlugins;this._layerPlugins||(e=this._layerPlugins={});const n=["","Point","LineString","Polygon","MultiPoint","MultiLineString","MultiPolygon"],r=[];for(const o in t){const s=o;if(!e[o]){const r=[];for(let e=0;e<t[o].types.length;e++){const a=t[o].types[e],l=["all",["==","$layer",s],["==","$type",n[a]]],u={filter:(i=l,new Function("f",\`var p = (f && f.properties || {}); return ${R}tn(i)}\`)),renderPlugin:Bn(a),symbol:Ln(a)};u.filter.def=l,u.type=0,r.push(u)}e[s]=r}r.push(...e[s])}var i;return r}}function Bn(t){switch(t){case 1:return{type:"native-point",dataConfig:{type:"native-point",only2D:!0}};case 2:return{type:"native-line",dataConfig:{type:"native-line",only2D:!0}};case 3:return{type:"fill",dataConfig:{type:"fill",only2D:!0}}}return null}function Ln(t){switch(t){case 1:return{markerFill:"#f00",markerSize:10};case 2:return{lineColor:"#fff"};case 3:return{polygonFill:"#00f",polygonOpacity:.4}}return null}function Cn(t){if(Array.isArray(t)||!T(t))return{};const e={};for(const n in t){const r=t[n];A(r)?e[n]="string":S(r)?e[n]="number":!0===r||!1===r?e[n]="boolean":Array.isArray(r)?e[n]="array":e[n]="object"}return e}function Yn(t){if(!t)return 0;let e=0;for(const n in t){if(("normalTexture"===n||"bumpTexture"===n)&&t[n])return 2;if(n.indexOf("Texture")>0&&t[n])e=1;else if(T(t[n])){const r=Yn(t[n]);if(2===r)return r;1===r&&(e=1)}}return e}function Vn(t,e,n,r,i,o){const s={},a=Array.isArray(e)?e:[e];let l=-1;for(let t=0;t<a.length;t++)s[t]=On(a[t]),!s[t]&&a[t]&&-1===l&&(l=t);const u=[];for(let e=0;e<a.length;e++){if(!a[e])continue;a[e].index={index:e};let h=t;if(o&&a[e].mergeOnProperty){const r=fn.genFnTypes(a[e]);h=gn.mergeLineFeatures(t,a[0],r,n.zoom)}s[e]||e===l?u.push(new r(h,a[e],n).load(i)):u.push({data:{ref:l,symbolIndex:{index:e}}})}return Promise.all(u)}function On(t){if(!t)return 0;for(const e in t)if(B(t[e]))return 1;return 0}function Xn(t,e,n,r){const i=n.customProperties;if(!i)return t;if(i)for(let t=0;t<i.length;t++)i[t].fn=bn.compileFilter(i[t].filter);for(let n=0;n<i.length;n++)for(let o=0,s=t.length;o<s;o++)if(i[n].fn(t[o],e))for(const t in i[n].properties){const e=i[n].properties[t];k(e)||(r[o]||(r[o]={}),r[o][t]||(r[o][t]=new Set),r[o][t].add(e))}}const Nn={get:(t,e)=>e in t?t[e]:t.originalFeature[e],has:(t,e)=>e in t||e in t.originalFeature},En={get:function(t,e){return e in t?t[e]:t[Fn][e]},has:(t,e)=>e in t||e in t[Fn]},zn={};function $n(t){const e={};e.originalFeature=t;const n=new Proxy(e,Nn);return n.properties=new Proxy({},En),n.properties[Fn]=t.properties||zn,n}function qn(t,e,n){t[e]||(t[e]=new Set),t[e].add(n)}const Dn=[];function jn(t,e,n){if(!t)return Dn;for(const r in t){if(!t[r]||!_n.checkIfZoomFnTypeSymbol(r))continue;if(B(t[r]))qn(e,n,t[r].property);else{if("lineGradientProperty"===r){qn(e,n,t[r]);continue}if("textName"===r)if(A(t[r])){const i=In.resolveVarNames(t[r]);if(i)for(let t=0;t<i.length;t++)qn(e,n,i[t])}else if(bn.isExpression(t[r])){const i=[];In.resolveExpVarNames(i,t[r]);for(let t=0;t<i.length;t++)qn(e,n,i[t])}}const i=t[r].stops;if(i&&i.length)for(let t=0;t<i.length;t++)B(i[t][1])&&qn(e,t,i[t][1].property)}return e[n]}function Zn(t,e){Gn(t.geometry,e)}function Gn(t,e){if(t)switch(t.type){case"Point":Un(t.coordinates,e);break;case"MultiPoint":case"LineString":Rn(t.coordinates,e);break;case"MultiLineString":!function(t,e){for(let n=0,r=t.length;n<r;n++)Rn(t[n],e)}(t.coordinates,e);break;case"Polygon":Jn(t.coordinates,e);break;case"MultiPolygon":!function(t,e){for(let n=0,r=t.length;n<r;n++)Jn(t[n],e)}(t.coordinates,e);break;case"GeometryCollection":const n=t.geometries.length;for(let r=0;r<n;r++)Gn(t.geometries[r],e)}}function Un(t,e){e[0]=Math.min(e[0],t[0]),e[1]=Math.min(e[1],t[1]),e[2]=Math.max(e[2],t[0]),e[3]=Math.max(e[3],t[1])}function Rn(t,e){for(let n=0,r=t.length;n<r;n++)Un(t[n],e)}function Jn(t,e){t.length&&Rn(t[0],e)}function Hn(t,e,n,r,i){Wn(t,e,n||0,r||t.length-1,i||Qn)}function Wn(t,e,n,r,i){for(;r>n;){if(r-n>600){var o=r-n+1,s=e-n+1,a=Math.log(o),l=.5*Math.exp(2*a/3),u=.5*Math.sqrt(a*l*(o-l)/o)*(s-o/2<0?-1:1);Wn(t,e,Math.max(n,Math.floor(e-s*l/o+u)),Math.min(r,Math.floor(e+(o-s)*l/o+u)),i)}var h=t[e],c=n,f=r;for(Kn(t,n,e),i(t[r],h)>0&&Kn(t,n,r);c<f;){for(Kn(t,c,f),c++,f--;i(t[c],h)<0;)c++;for(;i(t[f],h)>0;)f--}0===i(t[n],h)?Kn(t,n,f):Kn(t,++f,r),f<=e&&(n=f+1),e<=f&&(r=f-1)}}function Kn(t,e,n){var r=t[e];t[e]=t[n],t[n]=r}function Qn(t,e){return t<e?-1:t>e?1:0}class tr{constructor(t=9){this._maxEntries=Math.max(4,t),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),this.clear()}all(){return this._all(this.data,[])}search(t){let e=this.data;const n=[];if(!cr(t,e))return n;const r=this.toBBox,i=[];for(;e;){for(let o=0;o<e.children.length;o++){const s=e.children[o],a=e.leaf?r(s):s;cr(t,a)&&(e.leaf?n.push(s):hr(t,a)?this._all(s,n):i.push(s))}e=i.pop()}return n}collides(t){let e=this.data;if(!cr(t,e))return!1;const n=[];for(;e;){for(let r=0;r<e.children.length;r++){const i=e.children[r],o=e.leaf?this.toBBox(i):i;if(cr(t,o)){if(e.leaf||hr(t,o))return!0;n.push(i)}}e=n.pop()}return!1}load(t){if(!t||!t.length)return this;if(t.length<this._minEntries){for(let e=0;e<t.length;e++)this.insert(t[e]);return this}let e=this._build(t.slice(),0,t.length-1,0);if(this.data.children.length)if(this.data.height===e.height)this._splitRoot(this.data,e);else{if(this.data.height<e.height){const t=this.data;this.data=e,e=t}this._insert(e,this.data.height-e.height-1,!0)}else this.data=e;return this}insert(t){return t&&this._insert(t,this.data.height-1),this}clear(){return this.data=fr([]),this}remove(t,e){if(!t)return this;let n=this.data;const r=this.toBBox(t),i=[],o=[];let s,a,l;for(;n||i.length;){if(n||(n=i.pop(),a=i[i.length-1],s=o.pop(),l=!0),n.leaf){const r=er(t,n.children,e);if(-1!==r)return n.children.splice(r,1),i.push(n),this._condense(i),this}l||n.leaf||!hr(n,r)?a?(s++,n=a.children[s],l=!1):n=null:(i.push(n),o.push(s),s=0,a=n,n=n.children[0])}return this}toBBox(t){return t}compareMinX(t,e){return t.minX-e.minX}compareMinY(t,e){return t.minY-e.minY}toJSON(){return this.data}fromJSON(t){return this.data=t,this}_all(t,e){const n=[];for(;t;)t.leaf?e.push(...t.children):n.push(...t.children),t=n.pop();return e}_build(t,e,n,r){const i=n-e+1;let o,s=this._maxEntries;if(i<=s)return o=fr(t.slice(e,n+1)),nr(o,this.toBBox),o;r||(r=Math.ceil(Math.log(i)/Math.log(s)),s=Math.ceil(i/Math.pow(s,r-1))),o=fr([]),o.leaf=!1,o.height=r;const a=Math.ceil(i/s),l=a*Math.ceil(Math.sqrt(s));pr(t,e,n,l,this.compareMinX);for(let i=e;i<=n;i+=l){const e=Math.min(i+l-1,n);pr(t,i,e,a,this.compareMinY);for(let n=i;n<=e;n+=a){const i=Math.min(n+a-1,e);o.children.push(this._build(t,n,i,r-1))}}return nr(o,this.toBBox),o}_chooseSubtree(t,e,n,r){for(;r.push(e),!e.leaf&&r.length-1!==n;){let n,r=1/0,s=1/0;for(let a=0;a<e.children.length;a++){const l=e.children[a],u=ar(l),h=(i=t,o=l,(Math.max(o.maxX,i.maxX)-Math.min(o.minX,i.minX))*(Math.max(o.maxY,i.maxY)-Math.min(o.minY,i.minY))-u);h<s?(s=h,r=u<r?u:r,n=l):h===s&&u<r&&(r=u,n=l)}e=n||e.children[0]}var i,o;return e}_insert(t,e,n){const r=n?t:this.toBBox(t),i=[],o=this._chooseSubtree(r,this.data,e,i);for(o.children.push(t),ir(o,r);e>=0&&i[e].children.length>this._maxEntries;)this._split(i,e),e--;this._adjustParentBBoxes(r,i,e)}_split(t,e){const n=t[e],r=n.children.length,i=this._minEntries;this._chooseSplitAxis(n,i,r);const o=this._chooseSplitIndex(n,i,r),s=fr(n.children.splice(o,n.children.length-o));s.height=n.height,s.leaf=n.leaf,nr(n,this.toBBox),nr(s,this.toBBox),e?t[e-1].children.push(s):this._splitRoot(n,s)}_splitRoot(t,e){this.data=fr([t,e]),this.data.height=t.height+1,this.data.leaf=!1,nr(this.data,this.toBBox)}_chooseSplitIndex(t,e,n){let r,i=1/0,o=1/0;for(let s=e;s<=n-e;s++){const e=rr(t,0,s,this.toBBox),a=rr(t,s,n,this.toBBox),l=ur(e,a),u=ar(e)+ar(a);l<i?(i=l,r=s,o=u<o?u:o):l===i&&u<o&&(o=u,r=s)}return r||n-e}_chooseSplitAxis(t,e,n){const r=t.leaf?this.compareMinX:or,i=t.leaf?this.compareMinY:sr;this._allDistMargin(t,e,n,r)<this._allDistMargin(t,e,n,i)&&t.children.sort(r)}_allDistMargin(t,e,n,r){t.children.sort(r);const i=this.toBBox,o=rr(t,0,e,i),s=rr(t,n-e,n,i);let a=lr(o)+lr(s);for(let r=e;r<n-e;r++){const e=t.children[r];ir(o,t.leaf?i(e):e),a+=lr(o)}for(let r=n-e-1;r>=e;r--){const e=t.children[r];ir(s,t.leaf?i(e):e),a+=lr(s)}return a}_adjustParentBBoxes(t,e,n){for(let r=n;r>=0;r--)ir(e[r],t)}_condense(t){for(let e,n=t.length-1;n>=0;n--)0===t[n].children.length?n>0?(e=t[n-1].children,e.splice(e.indexOf(t[n]),1)):this.clear():nr(t[n],this.toBBox)}}function er(t,e,n){if(!n)return e.indexOf(t);for(let r=0;r<e.length;r++)if(n(t,e[r]))return r;return-1}function nr(t,e){rr(t,0,t.children.length,e,t)}function rr(t,e,n,r,i){i||(i=fr(null)),i.minX=1/0,i.minY=1/0,i.maxX=-1/0,i.maxY=-1/0;for(let o=e;o<n;o++){const e=t.children[o];ir(i,t.leaf?r(e):e)}return i}function ir(t,e){return t.minX=Math.min(t.minX,e.minX),t.minY=Math.min(t.minY,e.minY),t.maxX=Math.max(t.maxX,e.maxX),t.maxY=Math.max(t.maxY,e.maxY),t}function or(t,e){return t.minX-e.minX}function sr(t,e){return t.minY-e.minY}function ar(t){return(t.maxX-t.minX)*(t.maxY-t.minY)}function lr(t){return t.maxX-t.minX+(t.maxY-t.minY)}function ur(t,e){const n=Math.max(t.minX,e.minX),r=Math.max(t.minY,e.minY),i=Math.min(t.maxX,e.maxX),o=Math.min(t.maxY,e.maxY);return Math.max(0,i-n)*Math.max(0,o-r)}function hr(t,e){return t.minX<=e.minX&&t.minY<=e.minY&&e.maxX<=t.maxX&&e.maxY<=t.maxY}function cr(t,e){return e.minX<=t.maxX&&e.minY<=t.maxY&&e.maxX>=t.minX&&e.maxY>=t.minY}function fr(t){return{children:t,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function pr(t,e,n,r,i){const o=[e,n];for(;o.length;){if((n=o.pop())-(e=o.pop())<=r)continue;const s=e+Math.ceil((n-e)/r/2)*r;Hn(t,s,e,n,i),o.push(e,s,s,n)}}class dr{constructor(t=[],e=gr){if(this.data=t,this.length=this.data.length,this.compare=e,this.length>0)for(let t=(this.length>>1)-1;t>=0;t--)this._down(t)}push(t){this.data.push(t),this.length++,this._up(this.length-1)}pop(){if(0===this.length)return;const t=this.data[0],e=this.data.pop();return this.length--,this.length>0&&(this.data[0]=e,this._down(0)),t}peek(){return this.data[0]}_up(t){const{data:e,compare:n}=this,r=e[t];for(;t>0;){const i=t-1>>1,o=e[i];if(n(r,o)>=0)break;e[t]=o,t=i}e[t]=r}_down(t){const{data:e,compare:n}=this,r=this.length>>1,i=e[t];for(;t<r;){let r=1+(t<<1),o=e[r];const s=r+1;if(s<this.length&&n(e[s],o)<0&&(r=s,o=e[s]),n(o,i)>=0)break;e[t]=o,t=r}e[t]=i}}function gr(t,e){return t<e?-1:t>e?1:0}function yr(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var xr={exports:{}},mr=function(t,e,n,r){var i=t[0],o=t[1],s=!1;void 0===n&&(n=0),void 0===r&&(r=e.length);for(var a=(r-n)/2,l=0,u=a-1;l<a;u=l++){var h=e[n+2*l+0],c=e[n+2*l+1],f=e[n+2*u+0],p=e[n+2*u+1];c>o!=p>o&&i<(f-h)*(o-c)/(p-c)+h&&(s=!s)}return s},vr=function(t,e,n,r){var i=t[0],o=t[1],s=!1;void 0===n&&(n=0),void 0===r&&(r=e.length);for(var a=r-n,l=0,u=a-1;l<a;u=l++){var h=e[l+n][0],c=e[l+n][1],f=e[u+n][0],p=e[u+n][1];c>o!=p>o&&i<(f-h)*(o-c)/(p-c)+h&&(s=!s)}return s};xr.exports=function(t,e,n,r){return e.length>0&&Array.isArray(e[0])?vr(t,e,n,r):mr(t,e,n,r)};var wr=xr.exports.nested=vr;xr.exports.flat=mr;const Mr=11102230246251565e-32,br=134217729,Pr=(3+8*Mr)*Mr;function _r(t,e,n,r,i){let o,s,a,l,u=e[0],h=r[0],c=0,f=0;h>u==h>-u?(o=u,u=e[++c]):(o=h,h=r[++f]);let p=0;if(c<t&&f<n)for(h>u==h>-u?(s=u+o,a=o-(s-u),u=e[++c]):(s=h+o,a=o-(s-h),h=r[++f]),o=s,0!==a&&(i[p++]=a);c<t&&f<n;)h>u==h>-u?(s=o+u,l=s-o,a=o-(s-l)+(u-l),u=e[++c]):(s=o+h,l=s-o,a=o-(s-l)+(h-l),h=r[++f]),o=s,0!==a&&(i[p++]=a);for(;c<t;)s=o+u,l=s-o,a=o-(s-l)+(u-l),u=e[++c],o=s,0!==a&&(i[p++]=a);for(;f<n;)s=o+h,l=s-o,a=o-(s-l)+(h-l),h=r[++f],o=s,0!==a&&(i[p++]=a);return 0===o&&0!==p||(i[p++]=o),p}function Ir(t){return new Float64Array(t)}const Ar=33306690738754716e-32,Sr=22204460492503146e-32,Fr=11093356479670487e-47,Tr=Ir(4),kr=Ir(8),Br=Ir(12),Lr=Ir(16),Cr=Ir(4);function Yr(t,e,n,r,i,o){const s=(e-o)*(n-i),a=(t-i)*(r-o),l=s-a;if(0===s||0===a||s>0!=a>0)return l;const u=Math.abs(s+a);return Math.abs(l)>=Ar*u?l:-function(t,e,n,r,i,o,s){let a,l,u,h,c,f,p,d,g,y,x,m,v,w,M,b,P,_;const I=t-i,A=n-i,S=e-o,F=r-o;w=I*F,f=br*I,p=f-(f-I),d=I-p,f=br*F,g=f-(f-F),y=F-g,M=d*y-(w-p*g-d*g-p*y),b=S*A,f=br*S,p=f-(f-S),d=S-p,f=br*A,g=f-(f-A),y=A-g,P=d*y-(b-p*g-d*g-p*y),x=M-P,c=M-x,Tr[0]=M-(x+c)+(c-P),m=w+x,c=m-w,v=w-(m-c)+(x-c),x=v-b,c=v-x,Tr[1]=v-(x+c)+(c-b),_=m+x,c=_-m,Tr[2]=m-(_-c)+(x-c),Tr[3]=_;let T=function(t,e){let n=e[0];for(let r=1;r<t;r++)n+=e[r];return n}(4,Tr),k=Sr*s;if(T>=k||-T>=k)return T;if(c=t-I,a=t-(I+c)+(c-i),c=n-A,u=n-(A+c)+(c-i),c=e-S,l=e-(S+c)+(c-o),c=r-F,h=r-(F+c)+(c-o),0===a&&0===l&&0===u&&0===h)return T;if(k=Fr*s+Pr*Math.abs(T),T+=I*h+F*a-(S*u+A*l),T>=k||-T>=k)return T;w=a*F,f=br*a,p=f-(f-a),d=a-p,f=br*F,g=f-(f-F),y=F-g,M=d*y-(w-p*g-d*g-p*y),b=l*A,f=br*l,p=f-(f-l),d=l-p,f=br*A,g=f-(f-A),y=A-g,P=d*y-(b-p*g-d*g-p*y),x=M-P,c=M-x,Cr[0]=M-(x+c)+(c-P),m=w+x,c=m-w,v=w-(m-c)+(x-c),x=v-b,c=v-x,Cr[1]=v-(x+c)+(c-b),_=m+x,c=_-m,Cr[2]=m-(_-c)+(x-c),Cr[3]=_;const B=_r(4,Tr,4,Cr,kr);w=I*h,f=br*I,p=f-(f-I),d=I-p,f=br*h,g=f-(f-h),y=h-g,M=d*y-(w-p*g-d*g-p*y),b=S*u,f=br*S,p=f-(f-S),d=S-p,f=br*u,g=f-(f-u),y=u-g,P=d*y-(b-p*g-d*g-p*y),x=M-P,c=M-x,Cr[0]=M-(x+c)+(c-P),m=w+x,c=m-w,v=w-(m-c)+(x-c),x=v-b,c=v-x,Cr[1]=v-(x+c)+(c-b),_=m+x,c=_-m,Cr[2]=m-(_-c)+(x-c),Cr[3]=_;const L=_r(B,kr,4,Cr,Br);w=a*h,f=br*a,p=f-(f-a),d=a-p,f=br*h,g=f-(f-h),y=h-g,M=d*y-(w-p*g-d*g-p*y),b=l*u,f=br*l,p=f-(f-l),d=l-p,f=br*u,g=f-(f-u),y=u-g,P=d*y-(b-p*g-d*g-p*y),x=M-P,c=M-x,Cr[0]=M-(x+c)+(c-P),m=w+x,c=m-w,v=w-(m-c)+(x-c),x=v-b,c=v-x,Cr[1]=v-(x+c)+(c-b),_=m+x,c=_-m,Cr[2]=m-(_-c)+(x-c),Cr[3]=_;const C=_r(L,Br,4,Cr,Lr);return Lr[C-1]}(t,e,n,r,i,o,u)}function Vr(t,e,n){e=Math.max(0,void 0===e?2:e),n=n||0;var r=function(t){for(var e=t[0],n=t[0],r=t[0],i=t[0],o=0;o<t.length;o++){var s=t[o];s[0]<e[0]&&(e=s),s[0]>r[0]&&(r=s),s[1]<n[1]&&(n=s),s[1]>i[1]&&(i=s)}var a=[e,n,r,i],l=a.slice();for(o=0;o<t.length;o++)wr(t[o],a)||l.push(t[o]);return function(t){t.sort(Ur);for(var e=[],n=0;n<t.length;n++){for(;e.length>=2&&$r(e[e.length-2],e[e.length-1],t[n])<=0;)e.pop();e.push(t[n])}for(var r=[],i=t.length-1;i>=0;i--){for(;r.length>=2&&$r(r[r.length-2],r[r.length-1],t[i])<=0;)r.pop();r.push(t[i])}return r.pop(),e.pop(),e.concat(r)}(l)}(t),i=new tr(16);i.toBBox=function(t){return{minX:t[0],minY:t[1],maxX:t[0],maxY:t[1]}},i.compareMinX=function(t,e){return t[0]-e[0]},i.compareMinY=function(t,e){return t[1]-e[1]},i.load(t);for(var o,s=[],a=0;a<r.length;a++){var l=r[a];i.remove(l),o=Dr(l,o),s.push(o)}var u=new tr(16);for(a=0;a<s.length;a++)u.insert(qr(s[a]));for(var h=e*e,c=n*n;s.length;){var f=s.shift(),p=f.p,d=f.next.p,g=jr(p,d);if(!(g<c)){var y=g/h;(l=Or(i,f.prev.p,p,d,f.next.next.p,y,u))&&Math.min(jr(l,p),jr(l,d))<=y&&(s.push(f),s.push(Dr(l,f)),i.remove(l),u.remove(f),u.insert(qr(f)),u.insert(qr(f.next)))}}f=o;var x=[];do{x.push(f.p),f=f.next}while(f!==o);return x.push(f.p),x}function Or(t,e,n,r,i,o,s){for(var a=new dr([],Xr),l=t.data;l;){for(var u=0;u<l.children.length;u++){var h=l.children[u],c=l.leaf?Zr(h,n,r):Nr(n,r,h);c>o||a.push({node:h,dist:c})}for(;a.length&&!a.peek().node.children;){var f=a.pop(),p=f.node,d=Zr(p,e,n),g=Zr(p,r,i);if(f.dist<d&&f.dist<g&&zr(n,p,s)&&zr(r,p,s))return p}(l=a.pop())&&(l=l.node)}return null}function Xr(t,e){return t.dist-e.dist}function Nr(t,e,n){if(Er(t,n)||Er(e,n))return 0;var r=Gr(t[0],t[1],e[0],e[1],n.minX,n.minY,n.maxX,n.minY);if(0===r)return 0;var i=Gr(t[0],t[1],e[0],e[1],n.minX,n.minY,n.minX,n.maxY);if(0===i)return 0;var o=Gr(t[0],t[1],e[0],e[1],n.maxX,n.minY,n.maxX,n.maxY);if(0===o)return 0;var s=Gr(t[0],t[1],e[0],e[1],n.minX,n.maxY,n.maxX,n.maxY);return 0===s?0:Math.min(r,i,o,s)}function Er(t,e){return t[0]>=e.minX&&t[0]<=e.maxX&&t[1]>=e.minY&&t[1]<=e.maxY}function zr(t,e,n){for(var r,i,o,s,a=Math.min(t[0],e[0]),l=Math.min(t[1],e[1]),u=Math.max(t[0],e[0]),h=Math.max(t[1],e[1]),c=n.search({minX:a,minY:l,maxX:u,maxY:h}),f=0;f<c.length;f++)if(r=c[f].p,i=c[f].next.p,o=t,r!==(s=e)&&i!==o&&$r(r,i,o)>0!=$r(r,i,s)>0&&$r(o,s,r)>0!=$r(o,s,i)>0)return!1;return!0}function $r(t,e,n){return Yr(t[0],t[1],e[0],e[1],n[0],n[1])}function qr(t){var e=t.p,n=t.next.p;return t.minX=Math.min(e[0],n[0]),t.minY=Math.min(e[1],n[1]),t.maxX=Math.max(e[0],n[0]),t.maxY=Math.max(e[1],n[1]),t}function Dr(t,e){var n={p:t,prev:null,next:null,minX:0,minY:0,maxX:0,maxY:0};return e?(n.next=e.next,n.prev=e,e.next.prev=n,e.next=n):(n.prev=n,n.next=n),n}function jr(t,e){var n=t[0]-e[0],r=t[1]-e[1];return n*n+r*r}function Zr(t,e,n){var r=e[0],i=e[1],o=n[0]-r,s=n[1]-i;if(0!==o||0!==s){var a=((t[0]-r)*o+(t[1]-i)*s)/(o*o+s*s);a>1?(r=n[0],i=n[1]):a>0&&(r+=o*a,i+=s*a)}return(o=t[0]-r)*o+(s=t[1]-i)*s}function Gr(t,e,n,r,i,o,s,a){var l,u,h,c,f=n-t,p=r-e,d=s-i,g=a-o,y=t-i,x=e-o,m=f*f+p*p,v=f*d+p*g,w=d*d+g*g,M=f*y+p*x,b=d*y+g*x,P=m*w-v*v,_=P,I=P;0===P?(u=0,_=1,c=b,I=w):(c=m*b-v*M,(u=v*b-w*M)<0?(u=0,c=b,I=w):u>_&&(u=_,c=b+v,I=w)),c<0?(c=0,-M<0?u=0:-M>m?u=_:(u=-M,_=m)):c>I&&(c=I,-M+v<0?u=0:-M+v>m?u=_:(u=-M+v,_=m));var A=(1-(h=0===c?0:c/I))*i+h*s-((1-(l=0===u?0:u/_))*t+l*n),S=(1-h)*o+h*a-((1-l)*e+l*r);return A*A+S*S}function Ur(t,e){return t[0]===e[0]?t[1]-e[1]:t[0]-e[0]}const{PackUtil:Rr}=ne();class Jr{constructor(t,e){this.x=t,this.y=e}clone(){return new Jr(this.x,this.y)}normalize(){const t=this.length();this.x/=t,this.y/=t}negate(){this.x=-this.x,this.y=-this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}diff(t){return new Jr(this.x-t.x,this.y-t.y)}distance(t){const e=this.x-t.x,n=this.y-t.y;return Math.sqrt(e*e+n*n)}dot(t){return this.x*t.x+this.y*t.y}equals(t){return this.x===t.x&&this.y===t.y}orthogonal(){return new Jr(this.y,-this.x)}}function Hr(t,e,n,r){const i=e.x*r.y-e.y*r.x,o=n.x-t.x,s=n.y-t.y,a=(o*r.y-s*r.x)/i;return new Jr(t.x+a*e.x,t.y+a*e.y)}const Wr=[],Kr=[];function Qr(t){if(S(t[0]&&t[0].x)){const e=[];let n=0;for(let r=0;r<t.length;r++)Kr[n]?(Kr[n][0]=t[r].x,Kr[n][1]=t[r].y):Kr[n]=[t[r].x,t[r].y],e.push(Kr[n]),n++;t=e}try{const e=Vr(t,1/0);let n=[1/0,1/0],r=[-1/0,-1/0];for(let t=0;t<e.length;t++)e[t][0]<n[0]&&(n[0]=e[t][0]),e[t][0]>r[0]&&(r[0]=e[t][0]),e[t][1]<n[1]&&(n[1]=e[t][1]),e[t][1]>r[1]&&(r[1]=e[t][1]);const i=[];let o=[],s=0;for(let t=0;t<e.length;t++)t===e.length-1&&e[t][0]===e[0][0]&&e[t][1]===e[0][1]||(Pt(i,e[t],"EPSG:3857"),Wr[s]?(Wr[s].x=i[0],Wr[s].y=i[1]):Wr[s]=new Jr(i[0],i[1]),o.push(Wr[s]),s++);Rr.calculateSignedArea(o)<0&&(o=o.reverse());const a=function(t){let e,n=Number.MAX_VALUE;const r=function(t,r,i,o,s,a,l,u){var h=Hr(t,r,s,a),c=Hr(i,o,s,a),f=Hr(l,u,t,r),p=Hr(l,u,i,o),d=h.distance(c)*h.distance(f);0!==d&&d<n&&(e=[h,f,p,c],n=d)};var i=[];for(let e=0;e<t.length;e++)i.push(t[(e+1)%t.length].diff(t[e])),i[e].normalize();var o,s,a,l,u=new Jr(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY),h=new Jr(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY);for(let e=0;e<t.length;e++){var c=t[e];c.x<u.x&&(u.x=c.x,o=e),c.x>h.x&&(h.x=c.x,s=e),c.y<u.y&&(u.y=c.y,l=e),c.y>h.y&&(h.y=c.y,a=e)}var f=new Jr(0,-1),p=new Jr(0,1),d=new Jr(-1,0),g=new Jr(1,0);for(let e=0;e<t.length;e++){var y=[Math.acos(f.dot(i[o])),Math.acos(p.dot(i[s])),Math.acos(d.dot(i[a])),Math.acos(g.dot(i[l]))];switch(y.indexOf(Math.min.apply(Math,y))){case 0:(p=(f=i[o].clone()).clone()).negate(),(g=(d=f.orthogonal()).clone()).negate(),o=(o+1)%t.length;break;case 1:(f=(p=i[s].clone()).clone()).negate(),(g=(d=f.orthogonal()).clone()).negate(),s=(s+1)%t.length;break;case 2:(g=(d=i[a].clone()).clone()).negate(),(p=(f=g.orthogonal()).clone()).negate(),a=(a+1)%t.length;break;case 3:(d=(g=i[l].clone()).clone()).negate(),(p=(f=g.orthogonal()).clone()).negate(),l=(l+1)%t.length}r(t[o],f,t[s],p,t[a],d,t[l],g)}return e}(o);if(!a||4!==a.length)return null;const l=a[0].distance(a[1]),u=a[1].distance(a[2]),h=a.map((t=>[t.x,t.y]));return h.push(+(u>l)),h}catch(t){return null}}const ti=[];function ei(t,e){const n=Array.isArray(t&&t[0]&&t[0][0]);for(let r=0;r<t.length;r++)n?t[r]=ei(t[r]):(Pt(ti,t[r],e),t[r][0]=ti[0],t[r][1]=ti[1]);return t}const{PackUtil:ni}=ne();class ri extends kn{constructor(t,e,n,r,i,o){super(t,e,n,r,i),(e=e||{}).extent||(e.extent=8192),this.setData(e.data,o)}setData(t,e){if(delete this.index,function(t){if(!t)return!0;if(Array.isArray(t)&&!t.length)return!0;if(t.features&&!t.features.length)return!0;return!1}(t))return this.empty=!0,void e();const n={maxZoom:24,tolerance:this.options.simplifyTolerance,extent:this.options.extent,buffer:S(this.options.tileBuffer)?this.options.tileBuffer:64,hasAltitude:!!this.options.hasAltitude,debug:0,lineMetrics:!0,indexMaxZoom:5,indexMaxPoints:1e5,disableFilter:!0};if(this.options.projection&&(n.projection=this.options.projection,"EPSG:4490"===n.projection&&(n.projection="EPSG:4326")),A(t)&&"{"!=t.substring(0,1)||t.url){const r=t.url?t.url:t;C.getJSON(r,t.url?t:{},((t,i)=>{if(t&&(console.error("Failed to fetch geojson:"+r),e(t)),!i)return void e(null,{extent:null,idMap:{}});let o=i;if(this.options.convertFn){o=new Function("data",this.options.convertFn+"\\nreturn convert(data)")(o)}const s=Array.isArray(o)?o:o.features;this._genOMBB(s);const{sample1000:a,idMap:l}=this._generateId(s);this._generate(a,l,o,n,e)}))}else{"string"==typeof t&&(t=JSON.parse(t));const r=Array.isArray(t)?t:t.features,i=r&&r.length;this._genOMBB(r);let o=r;if(r&&i>1e3){o=[];for(let t=0;t<i;t++)ii(r[t],o,t,i)}this._generate(o,null,t,n,e)}}_genOMBB(t){if(this.options.generateOMBB&&t)for(let e=0;e<t.length;e++){const n=t[e];if(n&&n.geometry&&n.geometry.coordinates)if("Polygon"===n.geometry.type){const t=n.geometry.coordinates[0];if(!t)continue;const e=Qr(t,t.length);n.properties=n.properties||{},n.properties[ee]=e}else if("MultiPolygon"===n.geometry.type){const t=n.geometry.coordinates;for(let e=0;e<t.length;e++){if(!t[e])continue;const r=t[e][0];if(!r)continue;const i=Qr(r,r.length);n.properties=n.properties||{},n.properties[ee]=n.properties[ee]||[],n.properties[ee][e]=i}}}}_generate(t,e,n,r,i){try{const o=t&&t.length?function(t){let e=[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY];switch(t.type){case"FeatureCollection":const n=t.features.length;for(let r=0;r<n;r++)Zn(t.features[r],e);break;case"Feature":Zn(t,e);break;default:Gn(t,e)}return e}({type:"FeatureCollection",features:t}):null;this.index=function(t,e){return new ut(t,e)}(n,this.options.geojsonvt||r),i(null,{extent:o,idMap:e})}catch(t){console.warn(t),i({error:t.message})}}_generateId(t){const e=[],n={};let r=0;const i=this.options.featureIdProperty;if(t){const o=t.length;t.forEach(((t,s)=>{!function(t,o,s){if(t&&("Feature"!==t.type||t.geometry)){if(S(t.id)||(t.id=r++),i){let e=i;T(i)&&(e=i[t.layer||"0"]),t.id=t.properties[e]}n[t.id]=I({},t),t.geometry?(n[t.id].geometry=I({},t.geometry),n[t.id].geometry.coordinates=null):t.coordinates&&(n[t.id].coordinates=null),ii(t,e,o,s)}}(t,s,o)}))}return{sample1000:e,idMap:n}}getTileFeatures(t,e){const n=t.tileInfo,r=[];if(!this.index)return this.empty?(setTimeout((function(){e(null,r,[])}),1),1):(setTimeout((function(){e({loading:!0})}),1),1);const i=this.index.getTile(n.z,n.x,n.y);if(!i||0===i.features.length)return setTimeout((function(){e(null,r,[])}),1),1;const o=[];for(let t=0,e=i.features.length;t<e;t++){const e=i.features[t];let n=e.layer;void 0===n&&(n="0"),o[n]={types:{}};o[n].types[e.type]=1,e.tags=e.tags||{},e.geometry.converted||(ni.convertGeometry(e),e.geometry.converted=1),r.push({type:e.type,layer:n,id:e.id,geometry:e.geometry,properties:e.tags,extent:this.options.extent})}for(const t in o)o[t].types=Object.keys(o[t].types).map((t=>+t));return setTimeout((function(){e(null,r,o)}),1),1}onRemove(){super.onRemove(),delete this.index}}function ii(t,e,n,r){const i=Math.floor(r/998);(0===n||n===r-1||(0===i||n%i==0)&&e.length<999)&&e.push(t)}var oi={\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nread:function(t,e,n,r,i){var o,s,a=8*i-r-1,l=(1<<a)-1,u=l>>1,h=-7,c=n?i-1:0,f=n?-1:1,p=t[e+c];for(c+=f,o=p&(1<<-h)-1,p>>=-h,h+=a;h>0;o=256*o+t[e+c],c+=f,h-=8);for(s=o&(1<<-h)-1,o>>=-h,h+=r;h>0;s=256*s+t[e+c],c+=f,h-=8);if(0===o)o=1-u;else{if(o===l)return s?NaN:1/0*(p?-1:1);s+=Math.pow(2,r),o-=u}return(p?-1:1)*s*Math.pow(2,o-r)},write:function(t,e,n,r,i,o){var s,a,l,u=8*o-i-1,h=(1<<u)-1,c=h>>1,f=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:o-1,d=r?1:-1,g=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,s=h):(s=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-s))<1&&(s--,l*=2),(e+=s+c>=1?f/l:f*Math.pow(2,1-c))*l>=2&&(s++,l/=2),s+c>=h?(a=0,s=h):s+c>=1?(a=(e*l-1)*Math.pow(2,i),s+=c):(a=e*Math.pow(2,c-1)*Math.pow(2,i),s=0));i>=8;t[n+p]=255&a,p+=d,a/=256,i-=8);for(s=s<<i|a,u+=i;u>0;t[n+p]=255&s,p+=d,s/=256,u-=8);t[n+p-d]|=128*g}},si=li,ai=oi;function li(t){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(t)?t:new Uint8Array(t||0),this.pos=0,this.type=0,this.length=this.buf.length}li.Varint=0,li.Fixed64=1,li.Bytes=2,li.Fixed32=5;var ui=4294967296,hi=1/ui,ci="undefined"==typeof TextDecoder?null:new TextDecoder("utf8");function fi(t){return t.type===li.Bytes?t.readVarint()+t.pos:t.pos+1}function pi(t,e,n){return n?4294967296*e+(t>>>0):4294967296*(e>>>0)+(t>>>0)}function di(t,e,n){var r=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.floor(Math.log(e)/(7*Math.LN2));n.realloc(r);for(var i=n.pos-1;i>=t;i--)n.buf[i+r]=n.buf[i]}function gi(t,e){for(var n=0;n<t.length;n++)e.writeVarint(t[n])}function yi(t,e){for(var n=0;n<t.length;n++)e.writeSVarint(t[n])}function xi(t,e){for(var n=0;n<t.length;n++)e.writeFloat(t[n])}function mi(t,e){for(var n=0;n<t.length;n++)e.writeDouble(t[n])}function vi(t,e){for(var n=0;n<t.length;n++)e.writeBoolean(t[n])}function wi(t,e){for(var n=0;n<t.length;n++)e.writeFixed32(t[n])}function Mi(t,e){for(var n=0;n<t.length;n++)e.writeSFixed32(t[n])}function bi(t,e){for(var n=0;n<t.length;n++)e.writeFixed64(t[n])}function Pi(t,e){for(var n=0;n<t.length;n++)e.writeSFixed64(t[n])}function _i(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+16777216*t[e+3]}function Ii(t,e,n){t[n]=e,t[n+1]=e>>>8,t[n+2]=e>>>16,t[n+3]=e>>>24}function Ai(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+(t[e+3]<<24)}li.prototype={destroy:function(){this.buf=null},readFields:function(t,e,n){for(n=n||this.length;this.pos<n;){var r=this.readVarint(),i=r>>3,o=this.pos;this.type=7&r,t(i,e,this),this.pos===o&&this.skip(r)}return e},readMessage:function(t,e){return this.readFields(t,e,this.readVarint()+this.pos)},readFixed32:function(){var t=_i(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=Ai(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=_i(this.buf,this.pos)+_i(this.buf,this.pos+4)*ui;return this.pos+=8,t},readSFixed64:function(){var t=_i(this.buf,this.pos)+Ai(this.buf,this.pos+4)*ui;return this.pos+=8,t},readFloat:function(){var t=ai.read(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=ai.read(this.buf,this.pos,!0,52,8);return this.pos+=8,t},readVarint:function(t){var e,n,r=this.buf;return e=127&(n=r[this.pos++]),n<128?e:(e|=(127&(n=r[this.pos++]))<<7,n<128?e:(e|=(127&(n=r[this.pos++]))<<14,n<128?e:(e|=(127&(n=r[this.pos++]))<<21,n<128?e:function(t,e,n){var r,i,o=n.buf;if(i=o[n.pos++],r=(112&i)>>4,i<128)return pi(t,r,e);if(i=o[n.pos++],r|=(127&i)<<3,i<128)return pi(t,r,e);if(i=o[n.pos++],r|=(127&i)<<10,i<128)return pi(t,r,e);if(i=o[n.pos++],r|=(127&i)<<17,i<128)return pi(t,r,e);if(i=o[n.pos++],r|=(127&i)<<24,i<128)return pi(t,r,e);if(i=o[n.pos++],r|=(1&i)<<31,i<128)return pi(t,r,e);throw new Error("Expected varint not more than 10 bytes")}(e|=(15&(n=r[this.pos]))<<28,t,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var t=this.readVarint();return t%2==1?(t+1)/-2:t/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var t=this.readVarint()+this.pos,e=this.pos;return this.pos=t,t-e>=12&&ci?function(t,e,n){return ci.decode(t.subarray(e,n))}(this.buf,e,t):function(t,e,n){var r="",i=e;for(;i<n;){var o,s,a,l=t[i],u=null,h=l>239?4:l>223?3:l>191?2:1;if(i+h>n)break;1===h?l<128&&(u=l):2===h?128==(192&(o=t[i+1]))&&(u=(31&l)<<6|63&o)<=127&&(u=null):3===h?(o=t[i+1],s=t[i+2],128==(192&o)&&128==(192&s)&&((u=(15&l)<<12|(63&o)<<6|63&s)<=2047||u>=55296&&u<=57343)&&(u=null)):4===h&&(o=t[i+1],s=t[i+2],a=t[i+3],128==(192&o)&&128==(192&s)&&128==(192&a)&&((u=(15&l)<<18|(63&o)<<12|(63&s)<<6|63&a)<=65535||u>=1114112)&&(u=null)),null===u?(u=65533,h=1):u>65535&&(u-=65536,r+=String.fromCharCode(u>>>10&1023|55296),u=56320|1023&u),r+=String.fromCharCode(u),i+=h}return r}(this.buf,e,t)},readBytes:function(){var t=this.readVarint()+this.pos,e=this.buf.subarray(this.pos,t);return this.pos=t,e},readPackedVarint:function(t,e){if(this.type!==li.Bytes)return t.push(this.readVarint(e));var n=fi(this);for(t=t||[];this.pos<n;)t.push(this.readVarint(e));return t},readPackedSVarint:function(t){if(this.type!==li.Bytes)return t.push(this.readSVarint());var e=fi(this);for(t=t||[];this.pos<e;)t.push(this.readSVarint());return t},readPackedBoolean:function(t){if(this.type!==li.Bytes)return t.push(this.readBoolean());var e=fi(this);for(t=t||[];this.pos<e;)t.push(this.readBoolean());return t},readPackedFloat:function(t){if(this.type!==li.Bytes)return t.push(this.readFloat());var e=fi(this);for(t=t||[];this.pos<e;)t.push(this.readFloat());return t},readPackedDouble:function(t){if(this.type!==li.Bytes)return t.push(this.readDouble());var e=fi(this);for(t=t||[];this.pos<e;)t.push(this.readDouble());return t},readPackedFixed32:function(t){if(this.type!==li.Bytes)return t.push(this.readFixed32());var e=fi(this);for(t=t||[];this.pos<e;)t.push(this.readFixed32());return t},readPackedSFixed32:function(t){if(this.type!==li.Bytes)return t.push(this.readSFixed32());var e=fi(this);for(t=t||[];this.pos<e;)t.push(this.readSFixed32());return t},readPackedFixed64:function(t){if(this.type!==li.Bytes)return t.push(this.readFixed64());var e=fi(this);for(t=t||[];this.pos<e;)t.push(this.readFixed64());return t},readPackedSFixed64:function(t){if(this.type!==li.Bytes)return t.push(this.readSFixed64());var e=fi(this);for(t=t||[];this.pos<e;)t.push(this.readSFixed64());return t},skip:function(t){var e=7&t;if(e===li.Varint)for(;this.buf[this.pos++]>127;);else if(e===li.Bytes)this.pos=this.readVarint()+this.pos;else if(e===li.Fixed32)this.pos+=4;else{if(e!==li.Fixed64)throw new Error("Unimplemented type: "+e);this.pos+=8}},writeTag:function(t,e){this.writeVarint(t<<3|e)},realloc:function(t){for(var e=this.length||16;e<this.pos+t;)e*=2;if(e!==this.length){var n=new Uint8Array(e);n.set(this.buf),this.buf=n,this.length=e}},finish:function(){return this.length=this.pos,this.pos=0,this.buf.subarray(0,this.length)},writeFixed32:function(t){this.realloc(4),Ii(this.buf,t,this.pos),this.pos+=4},writeSFixed32:function(t){this.realloc(4),Ii(this.buf,t,this.pos),this.pos+=4},writeFixed64:function(t){this.realloc(8),Ii(this.buf,-1&t,this.pos),Ii(this.buf,Math.floor(t*hi),this.pos+4),this.pos+=8},writeSFixed64:function(t){this.realloc(8),Ii(this.buf,-1&t,this.pos),Ii(this.buf,Math.floor(t*hi),this.pos+4),this.pos+=8},writeVarint:function(t){(t=+t||0)>268435455||t<0?function(t,e){var n,r;t>=0?(n=t%4294967296|0,r=t/4294967296|0):(r=~(-t/4294967296),4294967295^(n=~(-t%4294967296))?n=n+1|0:(n=0,r=r+1|0));if(t>=0x10000000000000000||t<-0x10000000000000000)throw new Error("Given varint doesn't fit into 10 bytes");e.realloc(10),function(t,e,n){n.buf[n.pos++]=127&t|128,t>>>=7,n.buf[n.pos++]=127&t|128,t>>>=7,n.buf[n.pos++]=127&t|128,t>>>=7,n.buf[n.pos++]=127&t|128,t>>>=7,n.buf[n.pos]=127&t}(n,0,e),function(t,e){var n=(7&t)<<4;if(e.buf[e.pos++]|=n|((t>>>=3)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;e.buf[e.pos++]=127&t}(r,e)}(t,this):(this.realloc(4),this.buf[this.pos++]=127&t|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=t>>>7&127))))},writeSVarint:function(t){this.writeVarint(t<0?2*-t-1:2*t)},writeBoolean:function(t){this.writeVarint(Boolean(t))},writeString:function(t){t=String(t),this.realloc(4*t.length),this.pos++;var e=this.pos;this.pos=function(t,e,n){for(var r,i,o=0;o<e.length;o++){if((r=e.charCodeAt(o))>55295&&r<57344){if(!i){r>56319||o+1===e.length?(t[n++]=239,t[n++]=191,t[n++]=189):i=r;continue}if(r<56320){t[n++]=239,t[n++]=191,t[n++]=189,i=r;continue}r=i-55296<<10|r-56320|65536,i=null}else i&&(t[n++]=239,t[n++]=191,t[n++]=189,i=null);r<128?t[n++]=r:(r<2048?t[n++]=r>>6|192:(r<65536?t[n++]=r>>12|224:(t[n++]=r>>18|240,t[n++]=r>>12&63|128),t[n++]=r>>6&63|128),t[n++]=63&r|128)}return n}(this.buf,t,this.pos);var n=this.pos-e;n>=128&&di(e,n,this),this.pos=e-1,this.writeVarint(n),this.pos+=n},writeFloat:function(t){this.realloc(4),ai.write(this.buf,t,this.pos,!0,23,4),this.pos+=4},writeDouble:function(t){this.realloc(8),ai.write(this.buf,t,this.pos,!0,52,8),this.pos+=8},writeBytes:function(t){var e=t.length;this.writeVarint(e),this.realloc(e);for(var n=0;n<e;n++)this.buf[this.pos++]=t[n]},writeRawMessage:function(t,e){this.pos++;var n=this.pos;t(e,this);var r=this.pos-n;r>=128&&di(n,r,this),this.pos=n-1,this.writeVarint(r),this.pos+=r},writeMessage:function(t,e,n){this.writeTag(t,li.Bytes),this.writeRawMessage(e,n)},writePackedVarint:function(t,e){e.length&&this.writeMessage(t,gi,e)},writePackedSVarint:function(t,e){e.length&&this.writeMessage(t,yi,e)},writePackedBoolean:function(t,e){e.length&&this.writeMessage(t,vi,e)},writePackedFloat:function(t,e){e.length&&this.writeMessage(t,xi,e)},writePackedDouble:function(t,e){e.length&&this.writeMessage(t,mi,e)},writePackedFixed32:function(t,e){e.length&&this.writeMessage(t,wi,e)},writePackedSFixed32:function(t,e){e.length&&this.writeMessage(t,Mi,e)},writePackedFixed64:function(t,e){e.length&&this.writeMessage(t,bi,e)},writePackedSFixed64:function(t,e){e.length&&this.writeMessage(t,Pi,e)},writeBytesField:function(t,e){this.writeTag(t,li.Bytes),this.writeBytes(e)},writeFixed32Field:function(t,e){this.writeTag(t,li.Fixed32),this.writeFixed32(e)},writeSFixed32Field:function(t,e){this.writeTag(t,li.Fixed32),this.writeSFixed32(e)},writeFixed64Field:function(t,e){this.writeTag(t,li.Fixed64),this.writeFixed64(e)},writeSFixed64Field:function(t,e){this.writeTag(t,li.Fixed64),this.writeSFixed64(e)},writeVarintField:function(t,e){this.writeTag(t,li.Varint),this.writeVarint(e)},writeSVarintField:function(t,e){this.writeTag(t,li.Varint),this.writeSVarint(e)},writeStringField:function(t,e){this.writeTag(t,li.Bytes),this.writeString(e)},writeFloatField:function(t,e){this.writeTag(t,li.Fixed32),this.writeFloat(e)},writeDoubleField:function(t,e){this.writeTag(t,li.Fixed64),this.writeDouble(e)},writeBooleanField:function(t,e){this.writeVarintField(t,Boolean(e))}};var Si=yr(si),Fi=Ti;function Ti(t,e){this.x=t,this.y=e}Ti.prototype={clone:function(){return new Ti(this.x,this.y)},add:function(t){return this.clone()._add(t)},sub:function(t){return this.clone()._sub(t)},multByPoint:function(t){return this.clone()._multByPoint(t)},divByPoint:function(t){return this.clone()._divByPoint(t)},mult:function(t){return this.clone()._mult(t)},div:function(t){return this.clone()._div(t)},rotate:function(t){return this.clone()._rotate(t)},rotateAround:function(t,e){return this.clone()._rotateAround(t,e)},matMult:function(t){return this.clone()._matMult(t)},unit:function(){return this.clone()._unit()},perp:function(){return this.clone()._perp()},round:function(){return this.clone()._round()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(t){return this.x===t.x&&this.y===t.y},dist:function(t){return Math.sqrt(this.distSqr(t))},distSqr:function(t){var e=t.x-this.x,n=t.y-this.y;return e*e+n*n},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(t){return Math.atan2(this.y-t.y,this.x-t.x)},angleWith:function(t){return this.angleWithSep(t.x,t.y)},angleWithSep:function(t,e){return Math.atan2(this.x*e-this.y*t,this.x*t+this.y*e)},_matMult:function(t){var e=t[0]*this.x+t[1]*this.y,n=t[2]*this.x+t[3]*this.y;return this.x=e,this.y=n,this},_add:function(t){return this.x+=t.x,this.y+=t.y,this},_sub:function(t){return this.x-=t.x,this.y-=t.y,this},_mult:function(t){return this.x*=t,this.y*=t,this},_div:function(t){return this.x/=t,this.y/=t,this},_multByPoint:function(t){return this.x*=t.x,this.y*=t.y,this},_divByPoint:function(t){return this.x/=t.x,this.y/=t.y,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var t=this.y;return this.y=this.x,this.x=-t,this},_rotate:function(t){var e=Math.cos(t),n=Math.sin(t),r=e*this.x-n*this.y,i=n*this.x+e*this.y;return this.x=r,this.y=i,this},_rotateAround:function(t,e){var n=Math.cos(t),r=Math.sin(t),i=e.x+n*(this.x-e.x)-r*(this.y-e.y),o=e.y+r*(this.x-e.x)+n*(this.y-e.y);return this.x=i,this.y=o,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},Ti.convert=function(t){return t instanceof Ti?t:Array.isArray(t)?new Ti(t[0],t[1]):t};var ki=Fi,Bi=Li;function Li(t,e,n,r,i){this.properties={},this.extent=n,this.type=0,this._pbf=t,this._geometry=-1,this._keys=r,this._values=i,t.readFields(Ci,this,e)}function Ci(t,e,n){1==t?e.id=n.readVarint():2==t?function(t,e){var n=t.readVarint()+t.pos;for(;t.pos<n;){var r=e._keys[t.readVarint()],i=e._values[t.readVarint()];e.properties[r]=i}}(n,e):3==t?e.type=n.readVarint():4==t&&(e._geometry=n.pos)}function Yi(t){for(var e,n,r=0,i=0,o=t.length,s=o-1;i<o;s=i++)e=t[i],r+=((n=t[s]).x-e.x)*(e.y+n.y);return r}Li.types=["Unknown","Point","LineString","Polygon"],Li.prototype.loadGeometry=function(){var t=this._pbf;t.pos=this._geometry;for(var e,n=t.readVarint()+t.pos,r=1,i=0,o=0,s=0,a=[];t.pos<n;){if(i<=0){var l=t.readVarint();r=7&l,i=l>>3}if(i--,1===r||2===r)o+=t.readSVarint(),s+=t.readSVarint(),1===r&&(e&&a.push(e),e=[]),e.push(new ki(o,s));else{if(7!==r)throw new Error("unknown command "+r);e&&e.push(e[0].clone())}}return e&&a.push(e),a},Li.prototype.bbox=function(){var t=this._pbf;t.pos=this._geometry;for(var e=t.readVarint()+t.pos,n=1,r=0,i=0,o=0,s=1/0,a=-1/0,l=1/0,u=-1/0;t.pos<e;){if(r<=0){var h=t.readVarint();n=7&h,r=h>>3}if(r--,1===n||2===n)(i+=t.readSVarint())<s&&(s=i),i>a&&(a=i),(o+=t.readSVarint())<l&&(l=o),o>u&&(u=o);else if(7!==n)throw new Error("unknown command "+n)}return[s,l,a,u]},Li.prototype.toGeoJSON=function(t,e,n){var r,i,o=this.extent*Math.pow(2,n),s=this.extent*t,a=this.extent*e,l=this.loadGeometry(),u=Li.types[this.type];function h(t){for(var e=0;e<t.length;e++){var n=t[e],r=180-360*(n.y+a)/o;t[e]=[360*(n.x+s)/o-180,360/Math.PI*Math.atan(Math.exp(r*Math.PI/180))-90]}}switch(this.type){case 1:var c=[];for(r=0;r<l.length;r++)c[r]=l[r][0];h(l=c);break;case 2:for(r=0;r<l.length;r++)h(l[r]);break;case 3:for(l=function(t){var e=t.length;if(e<=1)return[t];for(var n,r,i=[],o=0;o<e;o++){var s=Yi(t[o]);0!==s&&(void 0===r&&(r=s<0),r===s<0?(n&&i.push(n),n=[t[o]]):n.push(t[o]))}n&&i.push(n);return i}(l),r=0;r<l.length;r++)for(i=0;i<l[r].length;i++)h(l[r][i])}1===l.length?l=l[0]:u="Multi"+u;var f={type:"Feature",geometry:{type:u,coordinates:l},properties:this.properties};return"id"in this&&(f.id=this.id),f};var Vi=Bi,Oi=Xi;function Xi(t,e){this.version=1,this.name=null,this.extent=4096,this.length=0,this._pbf=t,this._keys=[],this._values=[],this._features=[],t.readFields(Ni,this,e),this.length=this._features.length}function Ni(t,e,n){15===t?e.version=n.readVarint():1===t?e.name=n.readString():5===t?e.extent=n.readVarint():2===t?e._features.push(n.pos):3===t?e._keys.push(n.readString()):4===t&&e._values.push(function(t){var e=null,n=t.readVarint()+t.pos;for(;t.pos<n;){var r=t.readVarint()>>3;e=1===r?t.readString():2===r?t.readFloat():3===r?t.readDouble():4===r?t.readVarint64():5===r?t.readVarint():6===r?t.readSVarint():7===r?t.readBoolean():null}return e}(n))}Xi.prototype.feature=function(t){if(t<0||t>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[t];var e=this._pbf.readVarint()+this._pbf.pos;return new Vi(this._pbf,e,this.extent,this._keys,this._values)};var Ei=Oi,zi=function(t,e){this.layers=t.readFields($i,{},e)};function $i(t,e,n){if(3===t){var r=new Ei(n,n.readVarint()+n.pos);r.length&&(e[r.name]=r)}}var qi=zi;const Di=2;class ji extends kn{constructor(t,e,n,r,i,o){super(t,e,n,r,i),e=e||{},o()}getTileFeatures(t,e){const n=t.tileInfo.url,r=t.fetchOptions||{},{altitudePropertyName:i,disableAltitudeWarning:o}=t,s=this._cache.get(n);if(s&&s.cacheIndex===t.workerCacheIndex){const{err:t,data:r}=s;return setTimeout((()=>{this._readTile(n,i,o,t,r,e)}),1)}const{tileArrayBuffer:a}=t;return a?setTimeout((()=>{this._readTile(n,i,o,null,a,e)}),1):(r.referrer=t.referrer,C.getArrayBuffer(n,r,((r,s)=>{this._cache&&(r?r.loading||this._cache.add(n,{err:r,data:s&&s.data,cacheIndex:t.workerCacheIndex}):s&&s.data&&this._cache.add(n,{err:null,data:s.data,cacheIndex:t.workerCacheIndex}),this._readTile(n,i,o,r,s&&s.data,e))})))}_readTile(t,e,n,r,i,o){if(r)return void o(r);let s;try{s=new qi(new Si(i))}catch(r){return void o(r.message,[],[])}const a=[];if(!s.layers)return void o(null,a,[]);const l={};let u;for(const t in s.layers)if(h=s.layers,c=t,Object.prototype.hasOwnProperty.call(h,c)){l[t]={types:{}};const i=l[t].types;for(let o=0,l=s.layers[t].length;o<l;o++)try{u=s.layers[t].feature(o),i[u.type]=1;const r={type:u.type,layer:t,geometry:u.loadGeometry(),properties:u.properties,extent:u.extent};void 0!==u.id&&(r.id=u.id);let l=r.properties[ee];l&&(A(l)&&(l=JSON.parse(l)),r.properties[ee]=ei(l,"EPSG:3857"));const h=e&&r.properties[e];if(h){const t=Zi(h),e=[];Gi(r.geometry,t,e),e.length&&!n&&(console.warn("feature.geometry is not consistent with altitude values:"),console.warn(JSON.stringify(r,null,2)))}a.push(r)}catch(r){console.warn("error when load vt geometry:",r)}}var h,c;for(const t in l)l[t].types=Object.keys(l[t].types).map((t=>+t));o(null,a,l,{byteLength:i.byteLength})}abortTile(t,e){const n=this.requests[t];delete this.requests[t],n&&n.abort&&n.abort(),this._cancelLoadings(t),e()}onRemove(){super.onRemove();for(const t in this.requests){const e=this.requests[t];e&&e.abort&&e.abort()}this.requests={}}}function Zi(t){const e=atob(t),n=new Uint8Array(e.length);for(let t=0;t<e.length;t++)n[t]=e.charCodeAt(t);return new Float32Array(n.buffer)}function Gi(t,e,n,r){r||(r={index:0});for(let i=0;i<t.length;i++)if(Array.isArray(t[i]))Gi(t[i],e,n,r);else{const o=r.index;k(e[o])?n.push(Di):t[i].z=100*e[o],r.index++}}const{LRUCache:Ui}=ne();let Ri=0;const Ji=new Ui(128);class Hi{constructor(t){this._layers={},this._callbacks={},this.workerId=t}addLayer({actorId:t,mapId:e,layerId:n,params:r},i){if(this._getLayerById(e,n))return;const o=this._genKey(e,n),s=r.type,a=r.options,l=this.send.bind(this,t);this._layers[o]="GeoJSONVectorTileLayer"===s?new ri(n,a,l,Ji,{},i):new ji(n,a,l,Ji,{},i)}removeLayer({mapId:t,layerId:e},n){const r=this._getLayerById(t,e),i=this._genKey(t,e);delete this._layers[i],r&&r.onRemove(n)}loadTile({mapId:t,layerId:e,params:n},r){const i=this._getLayerById(t,e);i&&i.loadTile(n,r)}abortTile({mapId:t,layerId:e,params:n},r){const i=this._getLayerById(t,e);i&&i.abortTile&&i.abortTile(n.url,r)}removeTile({mapId:t,layerId:e,params:n},r){const i=this._getLayerById(t,e);i&&i.removeTile(n,r)}updateStyle({mapId:t,layerId:e,params:n},r){const i=this._getLayerById(t,e);i&&i.updateStyle(n,r)}updateOptions({mapId:t,layerId:e,params:n},r){const i=this._getLayerById(t,e);i&&i.updateOptions(n,r)}setData({mapId:t,layerId:e,params:n},r){const i=this._getLayerById(t,e);i&&i.setData(n.data,r)}receive(t){const e=t.callback,n=this._callbacks[e];delete this._callbacks[e],n&&t.error?n(new Error(t.error)):n&&n(null,t.data)}send(t,e,n,r,i){const o=i?\`${R}t}-${R}Ri++}\`:null;i&&(this._callbacks[o]=i),postMessage({type:"<request>",workerId:this.workerId,actorId:t,command:e,params:n,callback:String(o)},r||[])}_genKey(t,e){return\`${R}t}-${R}e}\`}_getLayerById(t,e){const n=this._genKey(t,e);return this._layers[n]}_resetCache(){Ji.reset()}}t.initialize=function(){},t.onmessage=function(t,e){const n=t.data;if(this.dispatcher||(this.dispatcher=new Hi(t.workerId)),"<response>"===t.type)this.dispatcher.workerId===t.workerId&&this.dispatcher.receive(t);else{const r=n.command;this.dispatcher[r]({actorId:t.actorId,mapId:n.mapId,layerId:n.layerId,params:n.params},((t,n,i)=>{t&&404!==t.status&&204!==t.status&&!t.loading&&console.error(r,t),e(t,n,i)}))}}}`;
35
35
 
@@ -448,7 +448,7 @@ function D(e) {
448
448
  return [ (this.paddedRect.w - 2 * this.padding) / this.pixelRatio, (this.paddedRect.h - 2 * this.padding) / this.pixelRatio ];
449
449
  }
450
450
  }
451
- class O {
451
+ class F {
452
452
  constructor(e) {
453
453
  this.glyphMap = e, this.build();
454
454
  }
@@ -468,7 +468,7 @@ function D(e) {
468
468
  if (i.pack(r, {
469
469
  inPlace: !0
470
470
  }), !C(i.w) || !C(i.h)) {
471
- const e = F(i.w), t = F(i.h);
471
+ const e = O(i.w), t = O(i.h);
472
472
  i.resize(e, t);
473
473
  }
474
474
  const o = new v({
@@ -488,7 +488,7 @@ function D(e) {
488
488
  this.image = o, this.positions = n;
489
489
  }
490
490
  }
491
- function F(e) {
491
+ function O(e) {
492
492
  return Math.pow(2, Math.ceil(Math.log(e) / Math.LN2));
493
493
  }
494
494
  /*!
@@ -1293,11 +1293,11 @@ function D(e) {
1293
1293
  if (!("channels" in Ie[Ce])) throw new Error("missing channels property: " + Ce);
1294
1294
  if (!("labels" in Ie[Ce])) throw new Error("missing channel labels property: " + Ce);
1295
1295
  if (Ie[Ce].labels.length !== Ie[Ce].channels) throw new Error("channel and label counts mismatch: " + Ce);
1296
- var ke = Ie[Ce].channels, Oe = Ie[Ce].labels;
1296
+ var ke = Ie[Ce].channels, Fe = Ie[Ce].labels;
1297
1297
  delete Ie[Ce].channels, delete Ie[Ce].labels, Object.defineProperty(Ie[Ce], "channels", {
1298
1298
  value: ke
1299
1299
  }), Object.defineProperty(Ie[Ce], "labels", {
1300
- value: Oe
1300
+ value: Fe
1301
1301
  });
1302
1302
  }
1303
1303
  Ie.rgb.hsl = function(e) {
@@ -1531,7 +1531,7 @@ function D(e) {
1531
1531
  }, Ie.rgb.gray = function(e) {
1532
1532
  return [ (e[0] + e[1] + e[2]) / 3 / 255 * 100 ];
1533
1533
  };
1534
- var Fe = Se.exports, Re = Fe;
1534
+ var Oe = Se.exports, Re = Oe;
1535
1535
  function Ee(e, t) {
1536
1536
  return function(n) {
1537
1537
  return t(e(n));
@@ -1542,7 +1542,7 @@ function D(e) {
1542
1542
  i = Ee(Re[t[r].parent][r], i), r = t[r].parent;
1543
1543
  return i.conversion = n, i;
1544
1544
  }
1545
- var Le = Fe, He = function(e) {
1545
+ var Le = Oe, He = function(e) {
1546
1546
  for (var t = function(e) {
1547
1547
  var t = function() {
1548
1548
  for (var e = {}, t = Object.keys(Re), n = t.length, i = 0; i < n; i++) e[t[i]] = {
@@ -2146,12 +2146,12 @@ function D(e) {
2146
2146
  }, i && r) if (e.exports == i) r.exports = o; else for (a in o) o.hasOwnProperty(a) && (i[a] = o[a]); else n.punycode = o;
2147
2147
  }(It);
2148
2148
  }(Ct, Ct.exports);
2149
- class Ot extends Error {
2149
+ class Ft extends Error {
2150
2150
  constructor(e, t) {
2151
2151
  super(t), this.message = t, this.key = e;
2152
2152
  }
2153
2153
  }
2154
- var Ft = Ot;
2154
+ var Ot = Ft;
2155
2155
  class Rt {
2156
2156
  constructor(e, t = []) {
2157
2157
  this.parent = e, this.bindings = {};
@@ -2944,8 +2944,8 @@ function D(e) {
2944
2944
  this.locale && (e.locale = this.locale.serialize()), [ "collator", e ];
2945
2945
  }
2946
2946
  }
2947
- const On = 8192;
2948
- function Fn(e, t) {
2947
+ const Fn = 8192;
2948
+ function On(e, t) {
2949
2949
  e[0] = Math.min(e[0], t[0]), e[1] = Math.min(e[1], t[1]), e[2] = Math.max(e[2], t[0]),
2950
2950
  e[3] = Math.max(e[3], t[1]);
2951
2951
  }
@@ -2956,7 +2956,7 @@ function D(e) {
2956
2956
  const n = (180 + e[0]) / 360, i = (r = e[1], (180 - 180 / Math.PI * Math.log(Math.tan(Math.PI / 4 + r * Math.PI / 360))) / 360);
2957
2957
  var r;
2958
2958
  const s = Math.pow(2, t.z);
2959
- return [ Math.round(n * s * On), Math.round(i * s * On) ];
2959
+ return [ Math.round(n * s * Fn), Math.round(i * s * Fn) ];
2960
2960
  }
2961
2961
  function Dn(e, t, n) {
2962
2962
  const i = e[0] - t[0], r = e[1] - t[1], s = e[0] - n[0], o = e[1] - n[1];
@@ -3006,7 +3006,7 @@ function D(e) {
3006
3006
  const s = [];
3007
3007
  for (let i = 0; i < e[r].length; i++) {
3008
3008
  const o = En(e[r][i], n);
3009
- Fn(t, o), s.push(o);
3009
+ On(t, o), s.push(o);
3010
3010
  }
3011
3011
  i.push(s);
3012
3012
  }
@@ -3026,10 +3026,10 @@ function D(e) {
3026
3026
  let r = e[0] - n[0] > t ? -i : n[0] - e[0] > t ? i : 0;
3027
3027
  0 === r && (r = e[0] - n[2] > t ? -i : n[2] - e[0] > t ? i : 0), e[0] += r;
3028
3028
  }
3029
- Fn(t, e);
3029
+ On(t, e);
3030
3030
  }
3031
3031
  function Xn(e, t, n, i) {
3032
- const r = Math.pow(2, i.z) * On, s = [ i.x * On, i.y * On ], o = [];
3032
+ const r = Math.pow(2, i.z) * Fn, s = [ i.x * Fn, i.y * Fn ], o = [];
3033
3033
  if (!e) return o;
3034
3034
  for (const i of e) for (const e of i) {
3035
3035
  const i = [ e.x + s[0], e.y + s[1] ];
@@ -3038,13 +3038,13 @@ function D(e) {
3038
3038
  return o;
3039
3039
  }
3040
3040
  function Yn(e, t, n, i) {
3041
- const r = Math.pow(2, i.z) * On, s = [ i.x * On, i.y * On ], o = [];
3041
+ const r = Math.pow(2, i.z) * Fn, s = [ i.x * Fn, i.y * Fn ], o = [];
3042
3042
  if (!e) return o;
3043
3043
  for (const n of e) {
3044
3044
  const e = [];
3045
3045
  for (const i of n) {
3046
3046
  const n = [ i.x + s[0], i.y + s[1] ];
3047
- Fn(t, n), e.push(n);
3047
+ On(t, n), e.push(n);
3048
3048
  }
3049
3049
  o.push(e);
3050
3050
  }
@@ -3214,7 +3214,7 @@ function D(e) {
3214
3214
  }
3215
3215
  error(e, ...t) {
3216
3216
  const n = `${this.key}${t.map((e => `[${e}]`)).join("")}`;
3217
- this.errors.push(new Ft(n, e));
3217
+ this.errors.push(new Ot(n, e));
3218
3218
  }
3219
3219
  checkSubtype(e, t) {
3220
3220
  const n = Zt(e, t);
@@ -3493,8 +3493,8 @@ function D(e) {
3493
3493
  const r = i - n, s = e - n;
3494
3494
  return 0 === r ? 0 : 1 === t ? s / r : (Math.pow(t, s) - 1) / (Math.pow(t, r) - 1);
3495
3495
  }
3496
- var Oi = Ci;
3497
- class Fi {
3496
+ var Fi = Ci;
3497
+ class Oi {
3498
3498
  constructor(e, t) {
3499
3499
  this.type = e, this.args = t;
3500
3500
  }
@@ -3512,7 +3512,7 @@ function D(e) {
3512
3512
  n = n || e.type, r.push(e);
3513
3513
  }
3514
3514
  const s = i && r.some((e => Zt(i, e.type)));
3515
- return new Fi(s ? Ut : n, r);
3515
+ return new Oi(s ? Ut : n, r);
3516
3516
  }
3517
3517
  evaluate(e) {
3518
3518
  let t, n = null, i = 0;
@@ -3536,7 +3536,7 @@ function D(e) {
3536
3536
  })), e;
3537
3537
  }
3538
3538
  }
3539
- var Ri = Fi;
3539
+ var Ri = Oi;
3540
3540
  class Ei {
3541
3541
  constructor(e, t) {
3542
3542
  this.type = t.type, this.bindings = [].concat(e), this.result = t;
@@ -3976,9 +3976,9 @@ function D(e) {
3976
3976
  image: An,
3977
3977
  in: zi,
3978
3978
  "index-of": Ui,
3979
- interpolate: Oi,
3980
- "interpolate-hcl": Oi,
3981
- "interpolate-lab": Oi,
3979
+ interpolate: Fi,
3980
+ "interpolate-hcl": Fi,
3981
+ "interpolate-lab": Fi,
3982
3982
  length: rr,
3983
3983
  let: Di,
3984
3984
  literal: mn,
@@ -4213,7 +4213,7 @@ function D(e) {
4213
4213
  return {
4214
4214
  kind: "composite",
4215
4215
  interpolationType: s,
4216
- interpolationFactor: Oi.interpolationFactor.bind(void 0, s),
4216
+ interpolationFactor: Fi.interpolationFactor.bind(void 0, s),
4217
4217
  zoomStops: r.map((e => e[0])),
4218
4218
  evaluate: ({zoom: n}, i) => br({
4219
4219
  stops: r,
@@ -4229,7 +4229,7 @@ function D(e) {
4229
4229
  return {
4230
4230
  kind: "camera",
4231
4231
  interpolationType: n,
4232
- interpolationFactor: Oi.interpolationFactor.bind(void 0, n),
4232
+ interpolationFactor: Fi.interpolationFactor.bind(void 0, n),
4233
4233
  zoomStops: e.stops.map((e => e[0])),
4234
4234
  evaluate: ({zoom: n}) => a(e, t, n, l, h)
4235
4235
  };
@@ -4355,7 +4355,7 @@ function D(e) {
4355
4355
  return this._styleExpression.evaluate(e, t, n, i, r, s);
4356
4356
  }
4357
4357
  interpolationFactor(e, t, n) {
4358
- return this.interpolationType ? Oi.interpolationFactor(this.interpolationType, e, t, n) : 0;
4358
+ return this.interpolationType ? Fi.interpolationFactor(this.interpolationType, e, t, n) : 0;
4359
4359
  }
4360
4360
  }
4361
4361
  function Ir(e, t) {
@@ -4363,17 +4363,17 @@ function D(e) {
4363
4363
  const n = e.value.expression, i = $n(n);
4364
4364
  if (!i && !function(e) {
4365
4365
  return "data-driven" === e["property-type"];
4366
- }(t)) return fr([ new Ft("", "data expressions not supported") ]);
4366
+ }(t)) return fr([ new Ot("", "data expressions not supported") ]);
4367
4367
  const r = Kn(n, [ "zoom", "pitch", "distance-from-center" ]);
4368
4368
  if (!r && !function(e) {
4369
4369
  return !!e.expression && e.expression.parameters.indexOf("zoom") > -1;
4370
- }(t)) return fr([ new Ft("", "zoom expressions not supported") ]);
4370
+ }(t)) return fr([ new Ot("", "zoom expressions not supported") ]);
4371
4371
  const s = kr(n);
4372
- if (!s && !r) return fr([ new Ft("", '"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.') ]);
4373
- if (s instanceof Ft) return fr([ s ]);
4374
- if (s instanceof Oi && !dr(t)) return fr([ new Ft("", '"interpolate" expressions cannot be used with this property') ]);
4372
+ if (!s && !r) return fr([ new Ot("", '"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.') ]);
4373
+ if (s instanceof Ot) return fr([ s ]);
4374
+ if (s instanceof Fi && !dr(t)) return fr([ new Ot("", '"interpolate" expressions cannot be used with this property') ]);
4375
4375
  if (!s) return ur(new Mr(i ? "constant" : "source", e.value));
4376
- const o = s instanceof Oi ? s.interpolation : void 0;
4376
+ const o = s instanceof Fi ? s.interpolation : void 0;
4377
4377
  return ur(new Pr(i ? "camera" : "composite", e.value, s.labels, o));
4378
4378
  }
4379
4379
  class Cr {
@@ -4394,24 +4394,24 @@ function D(e) {
4394
4394
  let t = null;
4395
4395
  if (e instanceof Di) t = kr(e.result); else if (e instanceof Ri) {
4396
4396
  for (const n of e.args) if (t = kr(n), t) break;
4397
- } else (e instanceof oi || e instanceof Oi) && e.input instanceof Cn && "zoom" === e.input.name && (t = e);
4398
- return t instanceof Ft || e.eachChild((e => {
4397
+ } else (e instanceof oi || e instanceof Fi) && e.input instanceof Cn && "zoom" === e.input.name && (t = e);
4398
+ return t instanceof Ot || e.eachChild((e => {
4399
4399
  const n = kr(e);
4400
- n instanceof Ft ? t = n : !t && n ? t = new Ft("", '"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.') : t && n && t !== n && (t = new Ft("", 'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.'));
4400
+ n instanceof Ot ? t = n : !t && n ? t = new Ot("", '"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.') : t && n && t !== n && (t = new Ot("", 'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.'));
4401
4401
  })), t;
4402
4402
  }
4403
- function Or(e) {
4404
- if (Array.isArray(e)) return e.map(Or);
4403
+ function Fr(e) {
4404
+ if (Array.isArray(e)) return e.map(Fr);
4405
4405
  if (e instanceof Object && !(e instanceof Number || e instanceof String || e instanceof Boolean)) {
4406
4406
  const t = {};
4407
- for (const n in e) t[n] = Or(e[n]);
4407
+ for (const n in e) t[n] = Fr(e[n]);
4408
4408
  return t;
4409
4409
  }
4410
4410
  return function(e) {
4411
4411
  return e instanceof Number || e instanceof String || e instanceof Boolean ? e.valueOf() : e;
4412
4412
  }(e);
4413
4413
  }
4414
- function Fr(e, t = "fill") {
4414
+ function Or(e, t = "fill") {
4415
4415
  if (null == e) return {
4416
4416
  filter: () => !0,
4417
4417
  needGeometry: !1,
@@ -4422,7 +4422,7 @@ function D(e) {
4422
4422
  try {
4423
4423
  i = function(e) {
4424
4424
  if (!Dr(e)) return e;
4425
- let t = Or(e);
4425
+ let t = Fr(e);
4426
4426
  return Er(t), t = Rr(t), t;
4427
4427
  }(n);
4428
4428
  } catch (e) {
@@ -4574,7 +4574,7 @@ function D(e) {
4574
4574
  }
4575
4575
  if (xt(e)) return new Function("f", `var p = (f && f.properties || {}); return ${_t(e)}`);
4576
4576
  {
4577
- let t = Fr(e);
4577
+ let t = Or(e);
4578
4578
  t = t && t.filter;
4579
4579
  const n = (e, n) => (Ur.zoom = n, t && t(Ur, e));
4580
4580
  return n;
@@ -4944,7 +4944,7 @@ function D(e) {
4944
4944
  height: r
4945
4945
  }, s);
4946
4946
  }
4947
- this.iconAtlas = new O(e);
4947
+ this.iconAtlas = new F(e);
4948
4948
  }
4949
4949
  if (n && Object.keys(n).length) {
4950
4950
  for (const e in n) {
@@ -5103,7 +5103,7 @@ function D(e) {
5103
5103
  }
5104
5104
  function ms(e) {
5105
5105
  let t = e.positions, n = e.image && e.image.format || "alpha";
5106
- if (e instanceof O) {
5106
+ if (e instanceof F) {
5107
5107
  t = {};
5108
5108
  for (const n in e.positions) {
5109
5109
  const i = e.positions[n];
@@ -5298,14 +5298,14 @@ function D(e) {
5298
5298
  function ks(e) {
5299
5299
  return !(Cs.Arabic(e) || Cs["Arabic Supplement"](e) || Cs["Arabic Extended-A"](e) || Cs["Arabic Presentation Forms-A"](e) || Cs["Arabic Presentation Forms-B"](e));
5300
5300
  }
5301
- function Os(e) {
5301
+ function Fs(e) {
5302
5302
  return !!(!(e < 11904) && (Cs["Bopomofo Extended"](e) || Cs.Bopomofo(e) || Cs["CJK Compatibility Forms"](e) || Cs["CJK Compatibility Ideographs"](e) || Cs["CJK Compatibility"](e) || Cs["CJK Radicals Supplement"](e) || Cs["CJK Strokes"](e) || Cs["CJK Symbols and Punctuation"](e) || Cs["CJK Unified Ideographs Extension A"](e) || Cs["CJK Unified Ideographs"](e) || Cs["Enclosed CJK Letters and Months"](e) || Cs["Halfwidth and Fullwidth Forms"](e) || Cs.Hiragana(e) || Cs["Ideographic Description Characters"](e) || Cs["Kangxi Radicals"](e) || Cs["Katakana Phonetic Extensions"](e) || Cs.Katakana(e) || Cs["Vertical Forms"](e) || Cs["Yi Radicals"](e) || Cs["Yi Syllables"](e)));
5303
5303
  }
5304
- function Fs(e) {
5304
+ function Os(e) {
5305
5305
  return !!(746 === e || 747 === e || !(e < 4352) && (Cs["Bopomofo Extended"](e) || Cs.Bopomofo(e) || Cs["CJK Compatibility Forms"](e) && !(e >= 65097 && e <= 65103) || Cs["CJK Compatibility Ideographs"](e) || Cs["CJK Compatibility"](e) || Cs["CJK Radicals Supplement"](e) || Cs["CJK Strokes"](e) || !(!Cs["CJK Symbols and Punctuation"](e) || e >= 12296 && e <= 12305 || e >= 12308 && e <= 12319 || 12336 === e) || Cs["CJK Unified Ideographs Extension A"](e) || Cs["CJK Unified Ideographs"](e) || Cs["Enclosed CJK Letters and Months"](e) || Cs["Hangul Compatibility Jamo"](e) || Cs["Hangul Jamo Extended-A"](e) || Cs["Hangul Jamo Extended-B"](e) || Cs["Hangul Jamo"](e) || Cs["Hangul Syllables"](e) || Cs.Hiragana(e) || Cs["Ideographic Description Characters"](e) || Cs.Kanbun(e) || Cs["Kangxi Radicals"](e) || Cs["Katakana Phonetic Extensions"](e) || Cs.Katakana(e) && 12540 !== e || !(!Cs["Halfwidth and Fullwidth Forms"](e) || 65288 === e || 65289 === e || 65293 === e || e >= 65306 && e <= 65310 || 65339 === e || 65341 === e || 65343 === e || e >= 65371 && e <= 65503 || 65507 === e || e >= 65512 && e <= 65519) || !(!Cs["Small Form Variants"](e) || e >= 65112 && e <= 65118 || e >= 65123 && e <= 65126) || Cs["Unified Canadian Aboriginal Syllabics"](e) || Cs["Unified Canadian Aboriginal Syllabics Extended"](e) || Cs["Vertical Forms"](e) || Cs["Yijing Hexagram Symbols"](e) || Cs["Yi Syllables"](e) || Cs["Yi Radicals"](e)));
5306
5306
  }
5307
5307
  function Rs(e) {
5308
- return !(Fs(e) || function(e) {
5308
+ return !(Os(e) || function(e) {
5309
5309
  return !!(Cs["Latin-1 Supplement"](e) && (167 === e || 169 === e || 174 === e || 177 === e || 188 === e || 189 === e || 190 === e || 215 === e || 247 === e) || Cs["General Punctuation"](e) && (8214 === e || 8224 === e || 8225 === e || 8240 === e || 8241 === e || 8251 === e || 8252 === e || 8258 === e || 8263 === e || 8264 === e || 8265 === e || 8273 === e) || Cs["Letterlike Symbols"](e) || Cs["Number Forms"](e) || Cs["Miscellaneous Technical"](e) && (e >= 8960 && e <= 8967 || e >= 8972 && e <= 8991 || e >= 8996 && e <= 9e3 || 9003 === e || e >= 9085 && e <= 9114 || e >= 9150 && e <= 9165 || 9167 === e || e >= 9169 && e <= 9179 || e >= 9186 && e <= 9215) || Cs["Control Pictures"](e) && 9251 !== e || Cs["Optical Character Recognition"](e) || Cs["Enclosed Alphanumerics"](e) || Cs["Geometric Shapes"](e) || Cs["Miscellaneous Symbols"](e) && !(e >= 9754 && e <= 9759) || Cs["Miscellaneous Symbols and Arrows"](e) && (e >= 11026 && e <= 11055 || e >= 11088 && e <= 11097 || e >= 11192 && e <= 11243) || Cs["CJK Symbols and Punctuation"](e) || Cs.Katakana(e) || Cs["Private Use Area"](e) || Cs["CJK Compatibility Forms"](e) || Cs["Small Form Variants"](e) || Cs["Halfwidth and Fullwidth Forms"](e) || 8734 === e || 8756 === e || 8757 === e || e >= 9984 && e <= 10087 || e >= 10102 && e <= 10131 || 65532 === e || 65533 === e);
5310
5310
  }(e));
5311
5311
  }
@@ -5445,7 +5445,7 @@ function D(e) {
5445
5445
  let o = 0;
5446
5446
  for (let n = 0; n < e.length; n++) {
5447
5447
  const a = e.codePointAt(n), l = i[a];
5448
- l && (l && !Us[a] && (o += l.metrics.advance + t), n < e.length - 1 && (Bs[a] || Os(a)) && r.push(Ws(n + 1, o, s, r, js(a, e.codePointAt(n + 1)), !1)));
5448
+ l && (l && !Us[a] && (o += l.metrics.advance + t), n < e.length - 1 && (Bs[a] || Fs(a)) && r.push(Ws(n + 1, o, s, r, js(a, e.codePointAt(n + 1)), !1)));
5449
5449
  }
5450
5450
  return Xs(Ws(e.length, o, s, r, 0, !0));
5451
5451
  }(c, o, n, t)), function(e, t, n, i, r, s, o, a, l, h) {
@@ -5460,7 +5460,7 @@ function D(e) {
5460
5460
  const s = d.length;
5461
5461
  for (let e = 0; e < r.length; e++) {
5462
5462
  const n = r.codePointAt(e), i = t[n];
5463
- i && (Fs(n) && o !== Ns ? (32 !== n && d.push({
5463
+ i && (Os(n) && o !== Ns ? (32 !== n && d.push({
5464
5464
  glyph: n,
5465
5465
  x: c,
5466
5466
  y: 0,
@@ -6306,12 +6306,16 @@ function D(e) {
6306
6306
  name: "aMarkerDy"
6307
6307
  }), o;
6308
6308
  }
6309
+ _prepareFnTypes() {
6310
+ this.iconAtlas || (this._fnTypes.markerWidthFn = this._fnTypes.markerHeightFn = this._fnTypes.markerDxFn = this._fnTypes.markerDyFn = this._fnTypes.markerPitchAlignmentFn = this._fnTypes.markerRotationAlignmentFn = this._fnTypes.markerRotationFn = this._fnTypes.markerAllowOverlapFn = this._fnTypes.markerIgnorePlacementFn = this._fnTypes.markerOpacityFn = null),
6311
+ this.glyphAtlas || (this._fnTypes.textFillFn = this._fnTypes.textSizeFn = this._fnTypes.textHaloFillFn = this._fnTypes.textHaloRadiusFn = this._fnTypes.textHaloOpacityFn = this._fnTypes.textDxFn = this._fnTypes.textDyFn = this._fnTypes.textPitchAlignmentFn = this._fnTypes.textRotationAlignmentFn = this._fnTypes.textRotationFn = this._fnTypes.textAllowOverlapFn = this._fnTypes.textIgnorePlacementFn = this._fnTypes.textOpacityFn = null);
6312
+ }
6309
6313
  createDataPack() {
6310
6314
  if (!this.iconAtlas && !this.glyphAtlas) {
6311
6315
  if (!this.options.allowEmptyPack) return null;
6312
6316
  this.empty = !0;
6313
6317
  }
6314
- this.countOutOfAngle = 0, this.lineVertex = [];
6318
+ this._prepareFnTypes(), this.countOutOfAngle = 0, this.lineVertex = [];
6315
6319
  const e = super.createDataPack.apply(this, arguments);
6316
6320
  return e ? (e.lineVertex = new Int16Array(this.lineVertex), e.buffers.push(e.lineVertex.buffer),
6317
6321
  e) : null;
@@ -6327,10 +6331,10 @@ function D(e) {
6327
6331
  let u = this.data.aPosition.getLength() / c;
6328
6332
  const f = e.symbol, d = e.feature.properties, p = "line" === this._textPlacement && !f.isIconText, g = !a, m = !o, y = g && p && function(e) {
6329
6333
  let t = 0;
6330
- for (let n = 0; n < e.length; n++) if (Fs(e.charAt(n).charCodeAt(0))) t = 0; else if (t++,
6334
+ for (let n = 0; n < e.length; n++) if (Os(e.charAt(n).charCodeAt(0))) t = 0; else if (t++,
6331
6335
  t >= 1) return !1;
6332
6336
  return !0;
6333
- }(e.getIconAndGlyph().glyph.text) ? 1 : 0, {textFillFn: x, textSizeFn: _, textHaloFillFn: v, textHaloRadiusFn: b, textHaloOpacityFn: A, textDxFn: T, textDyFn: I, textPitchAlignmentFn: C, textRotationAlignmentFn: k, textRotationFn: O, textAllowOverlapFn: F, textIgnorePlacementFn: R, textOpacityFn: E, markerWidthFn: D, markerHeightFn: L, markerDxFn: H, markerDyFn: N, markerPitchAlignmentFn: z, markerRotationAlignmentFn: V, markerRotationFn: U, markerAllowOverlapFn: B, markerIgnorePlacementFn: G, markerOpacityFn: j} = this._fnTypes;
6337
+ }(e.getIconAndGlyph().glyph.text) ? 1 : 0, {textFillFn: x, textSizeFn: _, textHaloFillFn: v, textHaloRadiusFn: b, textHaloOpacityFn: A, textDxFn: T, textDyFn: I, textPitchAlignmentFn: C, textRotationAlignmentFn: k, textRotationFn: F, textAllowOverlapFn: O, textIgnorePlacementFn: R, textOpacityFn: E, markerWidthFn: D, markerHeightFn: L, markerDxFn: H, markerDyFn: N, markerPitchAlignmentFn: z, markerRotationAlignmentFn: V, markerRotationFn: U, markerAllowOverlapFn: B, markerIgnorePlacementFn: G, markerOpacityFn: j} = this._fnTypes;
6334
6338
  let W, X, Y, Z, q, $ = [ 0, 0, 0, 0 ], J = 14, K = [ 0, 0, 0, 0 ], Q = 0, ee = 0, te = 0, ne = 0, re = 0, se = 0, oe = 0, ae = 0, le = 0, he = 0, ce = 0, ue = 0, fe = 0, de = 0;
6335
6339
  if (g) {
6336
6340
  const t = e.getIconAndGlyph().glyph.font;
@@ -6362,7 +6366,7 @@ function D(e) {
6362
6366
  _ && (J = _(this.options.zoom, d), M(J) && (J = 14)), v && (K = v(null, d), ie(K) ? this.dynamicAttrs.aTextHaloFill = 1 : K = ht([], K)),
6363
6367
  b && (Q = b(null, d)), A && (ee = 255 * A(null, d)), T && (te = T(null, d) || 0),
6364
6368
  I && (ne = I(null, d) || 0), C && (he = +("map" === C(null, d))), k && (ue = +("map" === k(null, d))),
6365
- O && (de = P(O(null, d), 0, 360) * Math.PI / 180);
6369
+ F && (de = P(F(null, d), 0, 360) * Math.PI / 180);
6366
6370
  }
6367
6371
  m && (Z = i ? function(e) {
6368
6372
  const t = e.image, n = e.top - 1 / t.pixelRatio, i = e.left - 1 / t.pixelRatio, r = e.bottom + 1 / t.pixelRatio, o = e.right + 1 / t.pixelRatio;
@@ -6404,8 +6408,8 @@ function D(e) {
6404
6408
  ie(re) && (this.dynamicAttrs.aMarkerWidth = 1), ie(se) && (this.dynamicAttrs.aMarkerHeight = 1),
6405
6409
  (ie(oe) || ie(te)) && (this.dynamicAttrs.aDxDy = 1), (ie(ae) || ie(te)) && (this.dynamicAttrs.aDxDy = 1),
6406
6410
  (ie(le) || ie(he)) && (this.dynamicAttrs.aPitchAlign = 1), (ie(ce) || ie(ue)) && (this.dynamicAttrs.aRotationAlign = 1),
6407
- (ie(fe) || ie(de)) && (this.dynamicAttrs.aRotation = 1), (B || F) && (B && (W = B(null, d) || 0),
6408
- !W && F && (W = F(null, d) || 0)), (G || R) && (G && (X = G(null, d) || 0), !X && R && (X = R(null, d) || 0)),
6411
+ (ie(fe) || ie(de)) && (this.dynamicAttrs.aRotation = 1), (B || O) && (B && (W = B(null, d) || 0),
6412
+ !W && O && (W = O(null, d) || 0)), (G || R) && (G && (X = G(null, d) || 0), !X && R && (X = R(null, d) || 0)),
6409
6413
  j && (q = 255 * (j(this.options.zoom, d) || 0));
6410
6414
  let pe = 0;
6411
6415
  E && (pe = 255 * (E(this.options.zoom, d) || 0));
@@ -6458,7 +6462,7 @@ function D(e) {
6458
6462
  }
6459
6463
  }
6460
6464
  _fillFnTypeData(e, t, n, i, r, s, o, a, l, h, c, u, f, d, p, g, m, y, x, _, v, b) {
6461
- const {textFillFn: A, textSizeFn: T, textHaloFillFn: S, textHaloRadiusFn: w, textDxFn: P, textDyFn: I, textPitchAlignmentFn: C, textRotationAlignmentFn: k, textRotationFn: O, textAllowOverlapFn: F, textIgnorePlacementFn: R, textOpacityFn: E, textHaloOpacityFn: D, markerWidthFn: L, markerHeightFn: H, markerDxFn: N, markerDyFn: z, markerPitchAlignmentFn: V, markerRotationAlignmentFn: U, markerRotationFn: B, markerAllowOverlapFn: G, markerIgnorePlacementFn: j, markerOpacityFn: W} = this._fnTypes;
6465
+ const {textFillFn: A, textSizeFn: T, textHaloFillFn: S, textHaloRadiusFn: w, textDxFn: P, textDyFn: I, textPitchAlignmentFn: C, textRotationAlignmentFn: k, textRotationFn: F, textAllowOverlapFn: O, textIgnorePlacementFn: R, textOpacityFn: E, textHaloOpacityFn: D, markerWidthFn: L, markerHeightFn: H, markerDxFn: N, markerDyFn: z, markerPitchAlignmentFn: V, markerRotationAlignmentFn: U, markerRotationFn: B, markerAllowOverlapFn: G, markerIgnorePlacementFn: j, markerOpacityFn: W} = this._fnTypes;
6462
6466
  if (A) {
6463
6467
  let n = e.aTextFill.currentIndex;
6464
6468
  e.aTextFill[n++] = t[0], e.aTextFill[n++] = t[1], e.aTextFill[n++] = t[2], e.aTextFill[n++] = t[3],
@@ -6529,7 +6533,7 @@ function D(e) {
6529
6533
  e.aRotationAlign[t++] = m, e.aRotationAlign.currentIndex = t, t = e.aRotationAlign.currentIndex,
6530
6534
  e.aRotationAlign[t++] = y, e.aRotationAlign.currentIndex = t;
6531
6535
  }
6532
- if (B || O) if (X) {
6536
+ if (B || F) if (X) {
6533
6537
  let t = e.aRotation.currentIndex;
6534
6538
  e.aRotation[t++] = 9362 * _, e.aRotation.currentIndex = t;
6535
6539
  } else {
@@ -6537,7 +6541,7 @@ function D(e) {
6537
6541
  e.aRotation[t++] = 9362 * x, e.aRotation.currentIndex = t, t = e.aRotation.currentIndex,
6538
6542
  e.aRotation[t++] = 9362 * _, e.aRotation.currentIndex = t;
6539
6543
  }
6540
- const Y = G || F, Z = j || R;
6544
+ const Y = G || O, Z = j || R;
6541
6545
  if (Y || Z) {
6542
6546
  const t = (Y ? 8 : 0) + 4 * v, n = (Z ? 2 : 0) + b;
6543
6547
  let i = e.aOverlap.currentIndex;
@@ -6693,7 +6697,7 @@ function D(e) {
6693
6697
  function ko(e, t, n) {
6694
6698
  return e[0] = t[0] * n, e[1] = t[1] * n, e[2] = t[2] * n, e[3] = t[3] * n, e;
6695
6699
  }
6696
- function Oo(e, t, n) {
6700
+ function Fo(e, t, n) {
6697
6701
  return e[0] = t, e[1] = n, e;
6698
6702
  }
6699
6703
  Math.hypot || (Math.hypot = function() {
@@ -6707,7 +6711,7 @@ function D(e) {
6707
6711
  var e = new wo(2);
6708
6712
  wo != Float32Array && (e[0] = 0, e[1] = 0);
6709
6713
  }();
6710
- const Fo = 63, Ro = Math.cos(Math.PI / 180 * 37.5), Eo = Math.pow(2, 16) / 1, Do = new s, Lo = new s, Ho = new s;
6714
+ const Oo = 63, Ro = Math.cos(Math.PI / 180 * 37.5), Eo = Math.pow(2, 16) / 1, Do = new s, Lo = new s, Ho = new s;
6711
6715
  class No extends gs {
6712
6716
  static mergeLineFeatures(e, t, n, i) {
6713
6717
  return bo(e, t, n, i);
@@ -6984,12 +6988,12 @@ function D(e) {
6984
6988
  fillData(e, t, n, i, r, s, o, a, l, h) {
6985
6989
  const {lineWidthFn: c, lineStrokeWidthFn: u, lineStrokeColorFn: f, lineColorFn: d, lineOpacityFn: p, lineDxFn: g, lineDyFn: m, linePatternAnimSpeedFn: y, linePatternGapFn: x} = this._fnTypes;
6986
6990
  this.fillPosition(e, t, n, i);
6987
- let _ = Fo * r;
6991
+ let _ = Oo * r;
6988
6992
  _ = (Math.sign(_) || 1) * ((Math.floor(Math.abs(_)) >> 1 << 1) + +o);
6989
- let v = Fo * s;
6993
+ let v = Oo * s;
6990
6994
  v = (Math.sign(v) || 1) * ((Math.floor(Math.abs(v)) >> 1 << 1) + +a);
6991
6995
  let b = e.aExtrude.currentIndex;
6992
- e.aExtrude[b++] = _, e.aExtrude[b++] = v, (this.iconAtlas || this.hasDasharray) && (e.aExtrude[b++] = Fo * h),
6996
+ e.aExtrude[b++] = _, e.aExtrude[b++] = v, (this.iconAtlas || this.hasDasharray) && (e.aExtrude[b++] = Oo * h),
6993
6997
  e.aExtrude.currentIndex = b, b = e.aLinesofar.currentIndex, e.aLinesofar[b++] = l,
6994
6998
  e.aLinesofar.currentIndex = b, c && (b = e.aLineWidth.currentIndex, e.aLineWidth[b++] = Math.round(2 * this.feaLineWidth),
6995
6999
  e.aLineWidth.currentIndex = b), u && (b = e.aLineStrokeWidth.currentIndex, e.aLineStrokeWidth[b++] = Math.round(2 * this.feaLineStrokeWidth),
@@ -7059,7 +7063,7 @@ function D(e) {
7059
7063
  const Bo = [], Go = [];
7060
7064
  function jo(e, t, n) {
7061
7065
  const i = e.mag(), r = t.mag();
7062
- Oo(Bo, n.x, n.y), Oo(Go, t.x, t.y);
7066
+ Fo(Bo, n.x, n.y), Fo(Go, t.x, t.y);
7063
7067
  const s = (a = Go, (o = Bo)[0] * a[0] + o[1] * a[1]);
7064
7068
  var o, a;
7065
7069
  return -Math.sign(s) * Math.sqrt(r * r - i * i);
@@ -7335,12 +7339,12 @@ function D(e) {
7335
7339
  return Aa(e.prev, e, e.next) < 0 ? Aa(e, t, e.next) >= 0 && Aa(e, e.prev, t) >= 0 : Aa(e, t, e.prev) < 0 || Aa(e, e.next, t) < 0;
7336
7340
  }
7337
7341
  function Ia(e, t) {
7338
- const n = Oa(e.i, e.x, e.y), i = Oa(t.i, t.x, t.y), r = e.next, s = t.prev;
7342
+ const n = Fa(e.i, e.x, e.y), i = Fa(t.i, t.x, t.y), r = e.next, s = t.prev;
7339
7343
  return e.next = t, t.prev = e, n.next = r, r.prev = n, i.next = n, n.prev = i, s.next = i,
7340
7344
  i.prev = s, i;
7341
7345
  }
7342
7346
  function Ca(e, t, n, i) {
7343
- const r = Oa(e, t, n);
7347
+ const r = Fa(e, t, n);
7344
7348
  return i ? (r.next = i.next, r.prev = i, i.next.prev = r, i.next = r) : (r.prev = r,
7345
7349
  r.next = r), r;
7346
7350
  }
@@ -7348,7 +7352,7 @@ function D(e) {
7348
7352
  e.next.prev = e.prev, e.prev.next = e.next, e.prevZ && (e.prevZ.nextZ = e.nextZ),
7349
7353
  e.nextZ && (e.nextZ.prevZ = e.prevZ);
7350
7354
  }
7351
- function Oa(e, t, n) {
7355
+ function Fa(e, t, n) {
7352
7356
  return {
7353
7357
  i: e,
7354
7358
  x: t,
@@ -7361,7 +7365,7 @@ function D(e) {
7361
7365
  steiner: !1
7362
7366
  };
7363
7367
  }
7364
- const Fa = [], Ra = [];
7368
+ const Oa = [], Ra = [];
7365
7369
  function Ea(e, t) {
7366
7370
  var n, i, r, o, a, l, h;
7367
7371
  for (i = 1; i <= 8; i *= 2) {
@@ -7377,14 +7381,14 @@ function D(e) {
7377
7381
  return n;
7378
7382
  }
7379
7383
  function Da(e, t, n, i) {
7380
- return Fa[0] = void 0 === e.x ? e[0] : e.x, Fa[1] = void 0 === e.y ? e[1] : e.y,
7381
- e = Fa, Ra[0] = void 0 === t.x ? t[0] : t.x, Ra[1] = void 0 === t.y ? t[1] : t.y,
7384
+ return Oa[0] = void 0 === e.x ? e[0] : e.x, Oa[1] = void 0 === e.y ? e[1] : e.y,
7385
+ e = Oa, Ra[0] = void 0 === t.x ? t[0] : t.x, Ra[1] = void 0 === t.y ? t[1] : t.y,
7382
7386
  t = Ra, 8 & n ? [ e[0] + (t[0] - e[0]) * (i[3] - e[1]) / (t[1] - e[1]), i[3] ] : 4 & n ? [ e[0] + (t[0] - e[0]) * (i[1] - e[1]) / (t[1] - e[1]), i[1] ] : 2 & n ? [ i[2], e[1] + (t[1] - e[1]) * (i[2] - e[0]) / (t[0] - e[0]) ] : 1 & n ? [ i[0], e[1] + (t[1] - e[1]) * (i[0] - e[0]) / (t[0] - e[0]) ] : null;
7383
7387
  }
7384
7388
  function La(e, t) {
7385
- Fa[0] = void 0 === e.x ? e[0] : e.x, Fa[1] = void 0 === e.y ? e[1] : e.y;
7389
+ Oa[0] = void 0 === e.x ? e[0] : e.x, Oa[1] = void 0 === e.y ? e[1] : e.y;
7386
7390
  var n = 0;
7387
- return (e = Fa)[0] < t[0] ? n |= 1 : e[0] > t[2] && (n |= 2), e[1] < t[1] ? n |= 4 : e[1] > t[3] && (n |= 8),
7391
+ return (e = Oa)[0] < t[0] ? n |= 1 : e[0] > t[2] && (n |= 2), e[1] < t[1] ? n |= 4 : e[1] > t[3] && (n |= 8),
7388
7392
  n;
7389
7393
  }
7390
7394
  const Ha = [ 0, 0, 0, 0 ], Na = -9999999, za = [ {
@@ -7470,12 +7474,12 @@ function D(e) {
7470
7474
  fillData(e, t, n, i, r, s, o, a) {
7471
7475
  const {lineWidthFn: l, lineColorFn: h, lineOpacityFn: c, linePatternAnimSpeedFn: u, linePatternGapFn: f} = this._fnTypes, d = r.length;
7472
7476
  for (let s = 0; s < d; s++) {
7473
- this.fillPosition(e, t, n, i), ko(r[s], r[s], Fo);
7477
+ this.fillPosition(e, t, n, i), ko(r[s], r[s], Oo);
7474
7478
  let d = e.aTubeNormal.currentIndex;
7475
7479
  for (let t = 0; t < r[s].length; t++) e.aTubeNormal[d++] = r[s][t];
7476
7480
  if (e.aTubeNormal.currentIndex = d, d = e.aLinesofar.currentIndex, e.aLinesofar[d++] = o,
7477
7481
  e.aLinesofar.currentIndex = d, this.iconAtlas && (d = e.aNormalDistance.currentIndex,
7478
- e.aNormalDistance[d++] = Fo * a, e.aNormalDistance.currentIndex = d, d = e.aTexInfo.currentIndex,
7482
+ e.aNormalDistance[d++] = Oo * a, e.aNormalDistance.currentIndex = d, d = e.aTexInfo.currentIndex,
7479
7483
  e.aTexInfo[d++] = this.feaTexInfo[0], e.aTexInfo[d++] = this.feaTexInfo[1], e.aTexInfo[d++] = this.feaTexInfo[2],
7480
7484
  e.aTexInfo[d++] = this.feaTexInfo[3], e.aTexInfo.currentIndex = d), l) {
7481
7485
  const t = at(this.options.metric);
@@ -7504,7 +7508,7 @@ function D(e) {
7504
7508
  }
7505
7509
  const Xa = [], Ya = [], Za = [], qa = [], $a = [];
7506
7510
  function Ja(e, t, n, i, r, s, o, a) {
7507
- Mo(Ya, n, i, r), Mo(Za, s, o, 0), Io(qa, Ya, Za), Po(Za, Za), Po(qa, qa), Oo(Xa, e, t);
7511
+ Mo(Ya, n, i, r), Mo(Za, s, o, 0), Io(qa, Ya, Za), Po(Za, Za), Po(qa, qa), Fo(Xa, e, t);
7508
7512
  const l = function(e) {
7509
7513
  var t = e[0], n = e[1];
7510
7514
  return Math.hypot(t, n);
@@ -7759,7 +7763,7 @@ function D(e) {
7759
7763
  n[t] = n[t] || {}, s[t] = s[t] || {};
7760
7764
  for (const c in e[t]) {
7761
7765
  if (h++, h <= i) continue;
7762
- const e = r && !Fs(+c), u = t + ":" + c + ":" + e;
7766
+ const e = r && !Os(+c), u = t + ":" + c + ":" + e;
7763
7767
  let f;
7764
7768
  if (this._cache.has(u) ? f = this._cache.get(u) : (f = this._tinySDF(n[t], t, c, e),
7765
7769
  this._cache.add(u, f), l++), f = rl(f), s[t][c] = f, a.push(f.bitmap.data.buffer),
@@ -7923,7 +7927,7 @@ function D(e) {
7923
7927
  }
7924
7928
  }
7925
7929
  fillData(e, t, n, i, r, s, o, a, l) {
7926
- const h = !1 !== this.options.top, c = !1 !== this.options.side, u = this.options.EXTENT / this.options.tileSize, f = this.feaLineWidth || this.symbol.lineWidth / 2 * u, d = Fo * r, p = Fo * s, g = f * r + t, m = f * s + n;
7930
+ const h = !1 !== this.options.top, c = !1 !== this.options.side, u = this.options.EXTENT / this.options.tileSize, f = this.feaLineWidth || this.symbol.lineWidth / 2 * u, d = Oo * r, p = Oo * s, g = f * r + t, m = f * s + n;
7927
7931
  this._fillTop(e, t, n, r, s, o, a, l, g, m, d, p), c && (h && this._fillTop(e, t, n, r, s, o, a, l, g, m, d, p),
7928
7932
  this._fillTop(e, t, n, r, s, o, a, l, g, m, d, p), this._fillBottom(e, t, n, r, s, o, a, l, g, m, d, p),
7929
7933
  this._fillBottom(e, t, n, r, s, o, a, l, g, m, d, p)), this.maxPos = Math.max(this.maxPos, Math.abs(t), Math.abs(n));
@@ -8096,7 +8100,7 @@ function D(e) {
8096
8100
  r.aColor.currentIndex = e;
8097
8101
  }
8098
8102
  let n;
8099
- n = h ? Math.max(Math.abs(t.x), Math.abs(t.y)) : Math.max(Math.abs(t.x), Math.abs(t.y), Math.abs(t.z)),
8103
+ n = h ? Math.max(Math.abs(t.x), Math.abs(t.y)) : Math.max(Math.abs(t.x), Math.abs(t.y), Math.abs(t.z || 0)),
8100
8104
  n > this.maxPos && (this.maxPos = n);
8101
8105
  }
8102
8106
  }
@@ -9030,12 +9034,12 @@ function Ce(e, t, n, i, r, s) {
9030
9034
 
9031
9035
  const ke = [];
9032
9036
 
9033
- function Oe(e) {
9037
+ function Fe(e) {
9034
9038
  for (let t = 0; t < e.length; t++) ke[t] = e[t], ke[t] *= 255;
9035
9039
  return 3 === e.length && (ke[3] = 255), ke;
9036
9040
  }
9037
9041
 
9038
- function Fe(e, t = 4) {
9042
+ function Oe(e, t = 4) {
9039
9043
  return Re.bind(this, e, t);
9040
9044
  }
9041
9045
 
@@ -11329,11 +11333,15 @@ function wt(e, t, n, i) {
11329
11333
  for (let n = 0; n < e.length; n++) if (Dt(t[e[n]])) return !0;
11330
11334
  return !1;
11331
11335
  }(a, t) ? (Dt(t[o]) && Mt(e, t, n), l) : (void 0 === n.index && (e.deleteData(s),
11332
- Pt(e, s)), null) : Dt(t[o]) ? (l = e.data[s] = new n.type(n.width * r.length), function(e, t, n, i, r) {
11336
+ Pt(e, s)), null) : Dt(t[o]) && function(e, t) {
11337
+ if (e.startsWith("marker") && !t.properties.iconAtlas) return !1;
11338
+ if (e.startsWith("text") && !t.properties.glyphAtlas) return !1;
11339
+ return !0;
11340
+ }(o, e) ? (l = e.data[s] = new n.type(n.width * r.length), function(e, t, n, i, r) {
11333
11341
  const {attrName: s} = i, o = (At + s + "Index").trim();
11334
11342
  Mt(t, n, i);
11335
11343
  const a = t.properties[o];
11336
- Ft(t, a, i, r);
11344
+ Ot(t, a, i, r);
11337
11345
  }(l, e, t, n, i), l) : null;
11338
11346
  }
11339
11347
 
@@ -11341,7 +11349,7 @@ function Mt(e, t, n) {
11341
11349
  const {attrName: i, symbolName: r} = n, s = e.properties, o = (At + i + "Index").trim(), a = (At + i).trim();
11342
11350
  if (s[o] && s[a]) return;
11343
11351
  const l = function(e) {
11344
- if (!e) return Ot;
11352
+ if (!e) return Ft;
11345
11353
  const t = [];
11346
11354
  for (let n = 0; n < e.length; n++) x(e[n][1]) && !_(e[n][1]).isZoomConstant && t.push(e[n][0]);
11347
11355
  return t;
@@ -11377,13 +11385,13 @@ function It(e, t, n, i, r, s) {
11377
11385
  if (!e || o._fnDataZoom === s) continue;
11378
11386
  const n = (At + h + "Index").trim(), i = o.properties[n];
11379
11387
  if (!i) continue;
11380
- Ft(o, i, l, t);
11388
+ Ot(o, i, l, t);
11381
11389
  continue;
11382
11390
  }
11383
- const c = wt(o, n, l), u = l.define;
11391
+ const c = wt(o, n, l, t), u = l.define;
11384
11392
  if (c) {
11385
11393
  const n = (At + h + "Index").trim();
11386
- if (Ft(o, o.properties[n], l, t), t._getFeatureStateStamp && (o._featureTimestamp = t._getFeatureStateStamp()),
11394
+ if (Ot(o, o.properties[n], l, t), t._getFeatureStateStamp && (o._featureTimestamp = t._getFeatureStateStamp()),
11387
11395
  u) {
11388
11396
  const e = r.defines;
11389
11397
  e[u] = 1, r.setDefines(e);
@@ -11408,9 +11416,9 @@ function kt(e, t, n) {
11408
11416
  return !1;
11409
11417
  }
11410
11418
 
11411
- const Ot = [];
11419
+ const Ft = [];
11412
11420
 
11413
- function Ft(e, t, n, i) {
11421
+ function Ot(e, t, n, i) {
11414
11422
  const {attrName: r, evaluate: s, index: o, width: a} = n, {aPickingId: l, features: h} = e.properties;
11415
11423
  let c;
11416
11424
  if (t) {
@@ -12436,7 +12444,7 @@ class In extends pn {
12436
12444
  }, y = this.getSymbol(l), _ = this.getSymbolDef(l);
12437
12445
  if (x(_.polygonPatternFileOrigin) && this._preparePatternOrigin(_, t, c ? [ 0, 0 ] : o, p),
12438
12446
  (x(_.polygonPatternFileWidth) || x(_.polygonPatternFileWidth)) && this._preparePatternWidth(_, t, c ? d : 1, g, p),
12439
- _.uvOffsetInMeter && x(_.uvOffset) && this._preparePatternOffset(_, t, g, p), Ce(m, "polygonFill", y, "polygonFill", An.polygonFill, Fe(this.colorCache)),
12447
+ _.uvOffsetInMeter && x(_.uvOffset) && this._preparePatternOffset(_, t, g, p), Ce(m, "polygonFill", y, "polygonFill", An.polygonFill, Oe(this.colorCache)),
12440
12448
  Ce(m, "polygonOpacity", y, "polygonOpacity", An.polygonOpacity), Ce(m, "uvScale", y, "uvScale", An.uvScale),
12441
12449
  void 0 === h) {
12442
12450
  const e = this.getFnTypeConfig(l);
@@ -12586,7 +12594,7 @@ class In extends pn {
12586
12594
  evaluate: (t, i) => {
12587
12595
  let r = n(e.getZoom(), t);
12588
12596
  return x(r) && (r = this.evaluateInFnTypeConfig(r, i, e, t, !0)), Array.isArray(r) || (r = this.colorCache[r] = this.colorCache[r] || m(r).unitArray()),
12589
- r = Oe(r), r;
12597
+ r = Fe(r), r;
12590
12598
  }
12591
12599
  }, {
12592
12600
  attrName: "aOpacity",
@@ -12731,9 +12739,9 @@ class In extends pn {
12731
12739
 
12732
12740
  var Cn = "#define SHADER_NAME LINE\n#define AA_CLIP_LIMIT 2.0\n#define AA_LINE_WIDTH 16.0\n#define DEVICE_PIXEL_RATIO 1.0\n#define ANTIALIASING 1.0 / DEVICE_PIXEL_RATIO / 2.0\n#define EXTRUDE_SCALE 63.0\n#define EXTRUDE_MOD 64.0\n#define MAX_LINE_DISTANCE 65535.0\n#ifdef PICKING_MODE\n#include <gl2_vert>\n#endif\n#ifdef HAS_ALTITUDE\nattribute vec2 aPosition;\nattribute float aAltitude;\n#else\nattribute vec3 aPosition;\n#endif\n#if defined(HAS_PATTERN) || defined(HAS_DASHARRAY)\nattribute vec3 aExtrude;\n#else\nattribute vec2 aExtrude;\n#endif\n#if defined(HAS_PATTERN) || defined(HAS_DASHARRAY) || defined(HAS_GRADIENT) || defined(HAS_TRAIL)\nattribute float aLinesofar;\nvarying highp float vLinesofar;\n#endif\nuniform float cameraToCenterDistance;\n#if defined(HAS_STROKE_WIDTH)\nattribute float aLineStrokeWidth;\n#else\nuniform float lineStrokeWidth;\n#endif\nuniform mat4 positionMatrix;\nuniform mat4 projViewModelMatrix;\nuniform mat4 modelMatrix;\nuniform float tileResolution;\nuniform float resolution;\nuniform float tileRatio;\nuniform float isRenderingTerrain;\n#if defined(HAS_LINE_DX) || defined(HAS_LINE_DY)\nattribute vec2 aLineDxDy;\n#endif\n#ifndef HAS_LINE_DX\nuniform float lineDx;\n#endif\n#ifndef HAS_LINE_DY\nuniform float lineDy;\n#endif\nuniform vec2 canvasSize;\nuniform float layerScale;\nvarying vec2 vNormal;\nvarying vec2 vWidth;\nvarying float vGammaScale;\n#ifndef ENABLE_TILE_STENCIL\nvarying vec2 vPosition;\n#endif\n#ifdef USE_LINE_OFFSET\nattribute vec2 aExtrudeOffset;\n#endif\n#ifdef HAS_LINE_WIDTH\nattribute float aLineWidth;\n#else\nuniform float lineWidth;\n#endif\n#ifndef PICKING_MODE\n#ifndef HAS_GRADIENT\n#ifdef HAS_COLOR\nattribute vec4 aColor;\nvarying vec4 vColor;\n#endif\n#ifdef HAS_PATTERN\n#if defined(HAS_PATTERN_ANIM) || defined(HAS_PATTERN_GAP)\nattribute vec2 aLinePattern;\n#endif\n#ifdef HAS_PATTERN_ANIM\nvarying float vLinePatternAnimSpeed;\n#endif\n#ifdef HAS_PATTERN_GAP\nvarying float vLinePatternGap;\n#endif\nattribute vec4 aTexInfo;\nvarying vec4 vTexInfo;\n#endif\n#ifdef HAS_DASHARRAY\n#ifdef HAS_DASHARRAY_ATTR\nattribute vec4 aDasharray;\nvarying vec4 vDasharray;\n#endif\n#ifdef HAS_DASHARRAY_COLOR\nattribute vec4 aDashColor;\nvarying vec4 vDashColor;\n#endif\n#endif\n#endif\n#ifdef HAS_STROKE_COLOR\nattribute vec4 aStrokeColor;\nvarying vec4 vStrokeColor;\n#endif\n#ifdef HAS_OPACITY\nattribute float aOpacity;\nvarying float vOpacity;\n#endif\n#ifdef HAS_GRADIENT\nattribute float aGradIndex;\nvarying float vGradIndex;\n#endif\n#if defined(HAS_SHADOWING) && !defined(HAS_BLOOM)\n#include <vsm_shadow_vert>\n#endif\n#include <highlight_vert>\n#else\n#include <fbo_picking_vert>\n#endif\nvarying vec3 vVertex;\n#include <vt_position_vert>\nvoid main() {\n vec3 c = unpackVTPosition();\n float d = mod(abs(aExtrude.x), 2.);\n float e = mod(abs(aExtrude.y), 2.);\n vNormal = vec2(d, e * 2. - 1.);\n vec4 f = vec4(c, 1.);\n vec4 h = projViewModelMatrix * positionMatrix * f;\n if(isRenderingTerrain == 1.) {\n vVertex = (positionMatrix * f).xyz;\n } else {\n vVertex = (modelMatrix * positionMatrix * f).xyz;\n }\n#ifdef HAS_STROKE_WIDTH\nfloat i = aLineStrokeWidth / 2. * layerScale;\n#else\nfloat i = lineStrokeWidth;\n#endif\n#ifdef HAS_LINE_WIDTH\nfloat j = aLineWidth / 2. * layerScale;\n#else\nfloat j = lineWidth * layerScale;\n#endif\nfloat k = j / 2. + i;\n float l = sign(i) * j / 2.;\n float m = l + sign(l) * ANTIALIASING;\n float n = k + sign(k) * ANTIALIASING;\n#ifdef USE_LINE_OFFSET\nvec2 o = lineOffset * (vNormal.y * (aExtrude.xy - aExtrudeOffset) + aExtrudeOffset);\n vec2 u = (n * aExtrude.xy + o) / EXTRUDE_SCALE;\n#else\nvec2 v = aExtrude.xy / EXTRUDE_SCALE;\n vec2 u = n * v;\n#endif\nfloat A = tileResolution / resolution;\n vec4 B = vec4(c + vec3(u, .0) * tileRatio / A, 1.);\n gl_Position = projViewModelMatrix * positionMatrix * B;\n#ifdef HAS_LINE_DX\nfloat C = aLineDxDy[0];\n#else\nfloat C = lineDx;\n#endif\n#ifdef HAS_LINE_DY\nfloat D = aLineDxDy[1];\n#else\nfloat D = lineDy;\n#endif\nfloat E = gl_Position.w;\n gl_Position.xy += vec2(C, D) * 2. / canvasSize * E;\n#ifndef PICKING_MODE\nvWidth = vec2(n, m);\n if(isRenderingTerrain == 1.) {\n vGammaScale = 1.;\n } else {\n vGammaScale = E / cameraToCenterDistance;\n }\n#ifndef ENABLE_TILE_STENCIL\nvPosition = c.xy;\n#ifdef USE_LINE_OFFSET\nvPosition += tileRatio * o / EXTRUDE_SCALE;\n#endif\n#endif\n#if defined(HAS_PATTERN) || defined(HAS_DASHARRAY) || defined(HAS_GRADIENT)\n#ifdef HAS_GRADIENT\nvLinesofar = aLinesofar / MAX_LINE_DISTANCE;\n vGradIndex = aGradIndex;\n#else\nfloat F = aLinesofar - k * aExtrude.z / EXTRUDE_SCALE / A * tileRatio;\n vLinesofar = F / tileRatio * A;\n#endif\n#endif\n#ifndef HAS_GRADIENT\n#ifdef HAS_COLOR\nvColor = aColor;\n#endif\n#ifdef HAS_DASHARRAY\n#ifdef HAS_DASHARRAY_ATTR\nvDasharray = aDasharray;\n#endif\n#ifdef HAS_DASHARRAY_COLOR\nvDashColor = aDashColor / 255.;\n#endif\n#endif\n#ifdef HAS_PATTERN\nvTexInfo = vec4(aTexInfo.xy, aTexInfo.zw + 1.);\n#ifdef HAS_PATTERN_ANIM\nvLinePatternAnimSpeed = aLinePattern[0] / 127.;\n#endif\n#ifdef HAS_PATTERN_GAP\nvLinePatternGap = aLinePattern[1] / 10.0;\n#endif\n#endif\n#endif\n#ifdef HAS_STROKE_COLOR\nvStrokeColor = aStrokeColor;\n#endif\n#ifdef HAS_OPACITY\nvOpacity = aOpacity / 255.;\n#endif\n#if defined(HAS_SHADOWING) && !defined(HAS_BLOOM)\nshadow_computeShadowPars(B);\n#endif\nhighlight_setVarying();\n#else\nfbo_picking_setData(E, true);\n#endif\n}";
12733
12741
 
12734
- const kn = o.identity([]), On = [];
12742
+ const kn = o.identity([]), Fn = [];
12735
12743
 
12736
- class Fn extends pn {
12744
+ class On extends pn {
12737
12745
  static getBloomSymbol() {
12738
12746
  return [ "lineBloom" ];
12739
12747
  }
@@ -12759,7 +12767,7 @@ class Fn extends pn {
12759
12767
  return !!super.needToRedraw() || !!this.isAnimating();
12760
12768
  }
12761
12769
  isBloom(e) {
12762
- return !!this.getSymbol(e.properties.symbolIndex)[Fn.getBloomSymbol()[0]];
12770
+ return !!this.getSymbol(e.properties.symbolIndex)[On.getBloomSymbol()[0]];
12763
12771
  }
12764
12772
  needPolygonOffset() {
12765
12773
  return !0;
@@ -12776,9 +12784,9 @@ class Fn extends pn {
12776
12784
  tileExtent: i.properties.tileExtent,
12777
12785
  fogFactor: this.layer.options.fogFactor || 0
12778
12786
  };
12779
- this.setLineUniforms(l, h), Ce(h, "lineColor", l, "lineColor", "#fff", Fe(this.colorCache)),
12780
- Ce(h, "linePatterGapColor", l, "linePatterGapColor", [ 0, 0, 0, 0 ], Fe(this.colorCache)),
12781
- Ce(h, "lineStrokeColor", l, "lineStrokeColor", [ 0, 0, 0, 0 ], Fe(this.colorCache)),
12787
+ this.setLineUniforms(l, h), Ce(h, "lineColor", l, "lineColor", "#fff", Oe(this.colorCache)),
12788
+ Ce(h, "linePatterGapColor", l, "linePatterGapColor", [ 0, 0, 0, 0 ], Oe(this.colorCache)),
12789
+ Ce(h, "lineStrokeColor", l, "lineStrokeColor", [ 0, 0, 0, 0 ], Oe(this.colorCache)),
12782
12790
  Ce(h, "lineDasharray", l, "lineDasharray", [ 0, 0, 0, 0 ], (e => {
12783
12791
  let t;
12784
12792
  if (e && e.length) {
@@ -12786,7 +12794,7 @@ class Fn extends pn {
12786
12794
  1 === e.length ? t = [ n[0], n[0], n[0], n[0] ] : 2 === e.length ? t = [ n[0], n[1], n[0], n[1] ] : 3 === e.length ? t = [ n[0], n[1], n[2], n[2] ] : 4 === e.length ? t = e : e.length > 4 && (t = e.slice(0, 4));
12787
12795
  }
12788
12796
  return t || [ 0, 0, 0, 0 ];
12789
- })), Ce(h, "lineDashColor", l, "lineDashColor", [ 0, 0, 0, 0 ], Fe(this.colorCache));
12797
+ })), Ce(h, "lineDashColor", l, "lineDashColor", [ 0, 0, 0, 0 ], Oe(this.colorCache));
12790
12798
  const c = i.properties.iconAtlas, u = this.layer instanceof e.TileLayer;
12791
12799
  c && (h.linePatternFile = mn(this.regl, c, !1, !1), h.atlasSize = c ? [ c.width, c.height ] : [ 0, 0 ],
12792
12800
  h.flipY = u ? -1 : 1, this.drawDebugAtlas(c)), void 0 === o && i.generateBuffers(this.regl);
@@ -12845,7 +12853,7 @@ class Fn extends pn {
12845
12853
  evaluate: (t, i) => {
12846
12854
  let r = n(e.getZoom(), t);
12847
12855
  return x(r) && (r = this.evaluateInFnTypeConfig(r, i, e, t, !0)), Array.isArray(r) || (r = this.colorCache[r] = this.colorCache[r] || m(r).unitArray()),
12848
- r = Oe(r), r;
12856
+ r = Fe(r), r;
12849
12857
  }
12850
12858
  }, {
12851
12859
  attrName: "aLinePattern",
@@ -13007,7 +13015,7 @@ class Fn extends pn {
13007
13015
  };
13008
13016
  }
13009
13017
  getUniformValues(e, t) {
13010
- const n = t && t.isRenderingTerrainSkin, i = this.layer.getTileSize().width, r = n ? kn : e.projViewMatrix, s = e.viewMatrix, o = e.cameraToCenterDistance, a = e.getResolution(), l = u.set(On, e.width, e.height);
13018
+ const n = t && t.isRenderingTerrainSkin, i = this.layer.getTileSize().width, r = n ? kn : e.projViewMatrix, s = e.viewMatrix, o = e.cameraToCenterDistance, a = e.getResolution(), l = u.set(Fn, e.width, e.height);
13011
13019
  n && u.set(l, i, i);
13012
13020
  const h = this.getBlendFunc().src(), c = this.sceneConfig.trailAnimation || {}, f = {
13013
13021
  layerScale: this.layer.options.styleScale || 1,
@@ -13442,7 +13450,7 @@ function Bn(e, t) {
13442
13450
  n;
13443
13451
  }
13444
13452
 
13445
- class Gn extends Fn {
13453
+ class Gn extends On {
13446
13454
  postCreateGeometry(e) {
13447
13455
  this.generateGradProperties(e);
13448
13456
  }
@@ -14142,8 +14150,8 @@ function ki(e, t, n, i, r) {
14142
14150
  y = we(.5 + .5 * (1 - (1 - a / m) * o.markerPerspectiveRatio), 0, 4);
14143
14151
  }
14144
14152
  const {aShape: x, aMarkerDx: _, aMarkerDy: v, aMarkerWidth: b, aMarkerHeight: A, aPitchAlign: T, aRotationAlign: S, aRotation: w} = l, M = _ ? _[n] : h.markerDx, P = v ? v[n] : h.markerDy, I = T ? T[2 * n] : o.markerPitchWithMap, C = S ? S[2 * n] : o.markerRotateWithMap, k = u.set(Pi, M || 0, -(P || 0));
14145
- let O = u.set(Ti, x[2 * n] / 10, x[2 * n + 1] / 10), F = u.set(Si, x[2 * n + 2] / 10, x[2 * n + 3] / 10), R = u.set(wi, x[2 * n + 4] / 10, x[2 * n + 5] / 10), E = u.set(Mi, x[2 * n + 6] / 10, x[2 * n + 7] / 10);
14146
- 0 === o.flipY && 1 === I && (u.multiply(O, O, Ii), u.multiply(F, F, Ii), u.multiply(R, R, Ii),
14153
+ let F = u.set(Ti, x[2 * n] / 10, x[2 * n + 1] / 10), O = u.set(Si, x[2 * n + 2] / 10, x[2 * n + 3] / 10), R = u.set(wi, x[2 * n + 4] / 10, x[2 * n + 5] / 10), E = u.set(Mi, x[2 * n + 6] / 10, x[2 * n + 7] / 10);
14154
+ 0 === o.flipY && 1 === I && (u.multiply(F, F, Ii), u.multiply(O, O, Ii), u.multiply(R, R, Ii),
14147
14155
  u.multiply(E, E, Ii));
14148
14156
  const [D, L] = _n(t.geometry);
14149
14157
  let H = b ? b[n] : h.markerWidth;
@@ -14152,20 +14160,20 @@ function ki(e, t, n, i, r) {
14152
14160
  Pe(N) && (N = L || mi);
14153
14161
  const z = u.set(Ci, H / yi, N / yi);
14154
14162
  let V;
14155
- u.mul(O, O, z), u.mul(F, F, z), u.mul(R, R, z), u.mul(E, E, z), V = w ? w[2 * n] / 9362 : -(h.markerRotation || 0) * Math.PI / 180;
14163
+ u.mul(F, F, z), u.mul(O, O, z), u.mul(R, R, z), u.mul(E, E, z), V = w ? w[2 * n] / 9362 : -(h.markerRotation || 0) * Math.PI / 180;
14156
14164
  const U = -V, B = r.getBearing() * Math.PI / 180;
14157
14165
  if (B * C || U) {
14158
14166
  const e = pi(Ai, U, B, C, I);
14159
- O = u.transformMat2(O, O, e), F = u.transformMat2(F, F, e), R = u.transformMat2(R, R, e),
14167
+ F = u.transformMat2(F, F, e), O = u.transformMat2(O, O, e), R = u.transformMat2(R, R, e),
14160
14168
  E = u.transformMat2(E, E, e);
14161
14169
  }
14162
- 1 === I ? fi(e, d, O, F, R, E, i, k, o, r, m, y) : (u.multiply(O, O, Ii), u.multiply(F, F, Ii),
14163
- u.multiply(R, R, Ii), u.multiply(E, E, Ii), di(e, g, O, F, R, E, k, y));
14170
+ 1 === I ? fi(e, d, F, O, R, E, i, k, o, r, m, y) : (u.multiply(F, F, Ii), u.multiply(O, O, Ii),
14171
+ u.multiply(R, R, Ii), u.multiply(E, E, Ii), di(e, g, F, O, R, E, k, y));
14164
14172
  const G = this.getMap().getDevicePixelRatio();
14165
14173
  return 1 !== G && (e[0] *= G, e[1] *= G, e[2] *= G, e[3] *= G), e;
14166
14174
  }
14167
14175
 
14168
- const {PackUtil: Oi} = L(), Fi = 1, Ri = [], Ei = [], Di = [], Li = [], Hi = [], Ni = [], zi = [ 1, -1 ];
14176
+ const {PackUtil: Fi} = L(), Oi = 1, Ri = [], Ei = [], Di = [], Li = [], Hi = [], Ni = [], zi = [ 1, -1 ];
14169
14177
 
14170
14178
  function Vi(e, t, n, i, r, o, a, l, h) {
14171
14179
  const c = i.material.uniforms, f = h.cameraToCenterDistance, d = i.geometry.properties, p = this.getSymbol(d.symbolIndex), g = "line" === p.textPlacement && !Le(p), m = xi, y = n[2];
@@ -14180,7 +14188,7 @@ function Vi(e, t, n, i, r, o, a, l, h) {
14180
14188
  const C = b ? I : c.textPitchWithMap;
14181
14189
  let k;
14182
14190
  A && (k = S ? A[2 * a + 1] : A[a]);
14183
- const O = A ? k : c.textRotateWithMap, F = u.set(Ni, M || 0, -(P || 0));
14191
+ const F = A ? k : c.textRotateWithMap, O = u.set(Ni, M || 0, -(P || 0));
14184
14192
  if (g) {
14185
14193
  const {aOffset: i, aShape: r} = d, o = i.length !== r.length;
14186
14194
  let f, p, g, m;
@@ -14189,9 +14197,9 @@ function Vi(e, t, n, i, r, o, a, l, h) {
14189
14197
  p = u.set(Di, i[2 * a + 2] / 10, i[2 * a + 3] / 10), g = u.set(Li, i[2 * a + 4] / 10, i[2 * a + 5] / 10),
14190
14198
  m = u.set(Hi, i[2 * a + 6] / 10, i[2 * a + 7] / 10)), 1 === C) {
14191
14199
  const n = q(h.getResolution(), h);
14192
- fi(e, t, f, p, g, m, l, F, c, h, y, x, o, n);
14200
+ fi(e, t, f, p, g, m, l, O, c, h, y, x, o, n);
14193
14201
  } else u.multiply(f, f, zi), u.multiply(p, p, zi), u.multiply(g, g, zi), u.multiply(m, m, zi),
14194
- di(e, n, f, p, g, m, F, x);
14202
+ di(e, n, f, p, g, m, O, x);
14195
14203
  } else {
14196
14204
  const {aShape: i} = d;
14197
14205
  let s, o = u.set(Ei, i[2 * a] / 10, -i[2 * a + 1] / 10), f = u.set(Di, i[2 * a + 2] / 10, -i[2 * a + 3] / 10), _ = u.set(Li, i[2 * a + 4] / 10, -i[2 * a + 5] / 10), v = u.set(Hi, i[2 * a + 6] / 10, -i[2 * a + 7] / 10);
@@ -14199,21 +14207,21 @@ function Vi(e, t, n, i, r, o, a, l, h) {
14199
14207
  u.multiply(v, v, zi)), s = T ? S && T.length > S.length ? T[2 * a + 1] / 9362 : T[a] / 9362 : (p.textRotation || 0) * Math.PI / 180;
14200
14208
  const b = g ? 0 : h.getBearing() * Math.PI / 180;
14201
14209
  if (s || b) {
14202
- const e = pi(Ri, s, b, O, C);
14210
+ const e = pi(Ri, s, b, F, C);
14203
14211
  o = u.transformMat2(o, o, e), f = u.transformMat2(f, f, e), _ = u.transformMat2(_, _, e),
14204
14212
  v = u.transformMat2(v, v, e);
14205
14213
  }
14206
14214
  const A = r / m;
14207
- u.scale(o, o, A), u.scale(f, f, A), u.scale(_, _, A), u.scale(v, v, A), 1 === C ? fi(e, t, o, f, _, v, l, F, c, h, y, x) : di(e, n, o, f, _, v, F, x);
14215
+ u.scale(o, o, A), u.scale(f, f, A), u.scale(_, _, A), u.scale(v, v, A), 1 === C ? fi(e, t, o, f, _, v, l, O, c, h, y, x) : di(e, n, o, f, _, v, O, x);
14208
14216
  }
14209
- o = o || 0, e[0] -= o + Fi, e[1] -= o + Fi, e[2] += o + Fi, e[3] += o + Fi;
14217
+ o = o || 0, e[0] -= o + Oi, e[1] -= o + Oi, e[2] += o + Oi, e[3] += o + Oi;
14210
14218
  const R = this.getMap().getDevicePixelRatio();
14211
14219
  return 1 !== R && (e[0] *= R, e[1] *= R, e[2] *= R, e[3] *= R), e;
14212
14220
  }
14213
14221
 
14214
14222
  function Ui(e, t, n) {
14215
14223
  const i = t.geometry.desc.positionSize, {aAnchor: r, aAltitude: o, aTerrainAltitude: a} = t.geometry.properties, l = n * i;
14216
- if (o ? s.set(e, r[l], r[l + 1], o[n]) : 3 === i ? Oi.unpackPosition(e, r[l], r[l + 1], r[l + 2]) : s.set(e, r[l], r[l + 1], 0),
14224
+ if (o ? s.set(e, r[l], r[l + 1], o[n]) : 3 === i ? Fi.unpackPosition(e, r[l], r[l + 1], r[l + 2]) : s.set(e, r[l], r[l + 1], 0),
14217
14225
  a) {
14218
14226
  const t = 100 * a[2 * n];
14219
14227
  t && (e[2] += t);
@@ -14391,7 +14399,7 @@ function Zi(e, t, n) {
14391
14399
 
14392
14400
  function qi(e, t, n) {
14393
14401
  void 0 === t.isHalo && (t.isHalo = 1), Ce(t, "textOpacity", n, "textOpacity", Bi.textOpacity),
14394
- Ce(t, "textFill", n, "textFill", Bi.textFill, Fe()), Ce(t, "textHaloFill", n, "textHaloFill", Bi.textHaloFill, Fe()),
14402
+ Ce(t, "textFill", n, "textFill", Bi.textFill, Oe()), Ce(t, "textHaloFill", n, "textHaloFill", Bi.textHaloFill, Oe()),
14395
14403
  Ce(t, "textHaloBlur", n, "textHaloBlur", Bi.textHaloBlur), Ce(t, "textHaloRadius", n, "textHaloRadius", Bi.textHaloRadius),
14396
14404
  Ce(t, "textHaloOpacity", n, "textHaloOpacity", Bi.textHaloOpacity), Ce(t, "textPerspectiveRatio", n, "textPerspectiveRatio", Bi.textPerspectiveRatio, (t => "line" === e.properties.textPlacement ? 1 : t)),
14397
14405
  Ce(t, "textRotateWithMap", n, "textRotationAlignment", Bi.textRotationAlignment, (e => +("map" === e))),
@@ -14467,7 +14475,7 @@ function Ji(e, t) {
14467
14475
  evaluate: (t, i) => {
14468
14476
  let r = n(e.getZoom(), t);
14469
14477
  return x(r) && (r = this.evaluateInFnTypeConfig(r, i, e, t, !0)), Array.isArray(r) || (r = g[r] = g[r] || m(r).unitArray()),
14470
- r = Oe(r), r;
14478
+ r = Fe(r), r;
14471
14479
  }
14472
14480
  }, {
14473
14481
  attrName: "aTextSize",
@@ -14487,7 +14495,7 @@ function Ji(e, t) {
14487
14495
  width: 4,
14488
14496
  evaluate: t => {
14489
14497
  let n = r(e.getZoom(), t);
14490
- return Array.isArray(n) || (n = g[n] = g[n] || m(n).unitArray()), n = Oe(n), n;
14498
+ return Array.isArray(n) || (n = g[n] = g[n] || m(n).unitArray()), n = Fe(n), n;
14491
14499
  }
14492
14500
  }, {
14493
14501
  attrName: "aTextHalo",
@@ -15549,28 +15557,28 @@ function Pr(e, t) {
15549
15557
 
15550
15558
  const Ir = [], Cr = [], kr = [];
15551
15559
 
15552
- function Or(e, t, n, i, r, o, a, l, h, c, f, d, p) {
15560
+ function Fr(e, t, n, i, r, o, a, l, h, c, f, d, p) {
15553
15561
  const {aGlyphOffset: g, aSegment: m, aTextDx: y, aTextDy: x, symbolIndex: _} = t.geometry.properties, v = this.getSymbol(_), b = y ? y[r] : v.textDx, A = x ? x[r] : v.textDy, T = u.set(kr, b || 0, A || 0), S = u.set(Ir, g[2 * r], g[2 * r + 1]), w = s.set(Cr, m[3 * r], m[3 * r + 1], m[3 * r + 2]), M = function(e, t, n, i, r, s, o, a, l, h, c, u, f, d, p, g, m, y) {
15554
15562
  p || (p = i);
15555
15563
  const x = t.geometry.properties.line, _ = s[0] * u, v = f ? _ - o : _ + o;
15556
15564
  let b = v > 0 ? 1 : -1, A = 0;
15557
15565
  f && (b *= -1, A = Math.PI), b < 0 && (A += Math.PI);
15558
15566
  const T = h + c, S = Math.abs(v);
15559
- let w = b > 0 ? l : l + 1, M = zt.convert(i), P = zt.convert(i), I = zt.convert(r), C = zt.convert(r), k = 0, O = 0;
15560
- for (;k + O <= S; ) {
15567
+ let w = b > 0 ? l : l + 1, M = zt.convert(i), P = zt.convert(i), I = zt.convert(r), C = zt.convert(r), k = 0, F = 0;
15568
+ for (;k + F <= S; ) {
15561
15569
  if (w += b, w < h || w >= T) return null;
15562
15570
  P.x = M.x, P.y = M.y, C.x = I.x, C.y = I.y, M.x = n[3 * w], M.y = n[3 * w + 1],
15563
- I.x = x[3 * w], I.y = x[3 * w + 1], k += O, O = P.dist(M) / d;
15571
+ I.x = x[3 * w], I.y = x[3 * w + 1], k += F, F = P.dist(M) / d;
15564
15572
  }
15565
- const F = (S - k) / O, R = g && g.getRenderer(), E = R && R.getTerrainHelper(), D = t.properties.tile.terrainTileInfos;
15573
+ const O = (S - k) / F, R = g && g.getRenderer(), E = R && R.getTerrainHelper(), D = t.properties.tile.terrainTileInfos;
15566
15574
  if (!y && E) {
15567
15575
  const {extent: n} = t.properties.tile, i = g.getTileSize().width / n, r = g.getMap();
15568
- let s = I.sub(C).mult(F)._add(C);
15576
+ let s = I.sub(C).mult(O)._add(C);
15569
15577
  M = Zt(Bt, r, t, I, i, g, m, D), P = Zt(Gt, r, t, C, i, g, m, D), s = Zt(jt, r, t, s, i, g, m, D);
15570
15578
  const o = A + Math.atan2(M[1] - P[1], M[0] - P[0]);
15571
15579
  return e[0] = (s[0] - p[0]) / d, e[1] = (s[1] - p[1]) / d, e[2] = o, e;
15572
15580
  }
15573
- const L = M.sub(P), H = L.mult(F)._add(P);
15581
+ const L = M.sub(P), H = L.mult(O)._add(P);
15574
15582
  H._add(L._unit()._perp()._mult(a * b));
15575
15583
  const N = A + Math.atan2(M.y - P.y, M.x - P.x);
15576
15584
  return e[0] = (H.x - i[0]) / d, e[1] = (H.y - i[1]) / d, e[2] = N, e;
@@ -15578,19 +15586,19 @@ function Or(e, t, n, i, r, o, a, l, h, c, f, d, p) {
15578
15586
  return M;
15579
15587
  }
15580
15588
 
15581
- const Fr = [], Rr = [];
15589
+ const Or = [], Rr = [];
15582
15590
 
15583
15591
  function Er(e, t, n, i, r, o, a, l, h, c, f, d, p) {
15584
15592
  const {aVertical: g} = n.geometry.properties, m = g[o];
15585
- let y, x, _ = Or.call(this, Fr, n, i, r, o, l, h, c, !1);
15593
+ let y, x, _ = Fr.call(this, Or, n, i, r, o, l, h, c, !1);
15586
15594
  if (!_) return null;
15587
- if (s.copy(e, _), _ = Or.call(this, Rr, n, i, r, a, l, h, c, !1), p = Math.PI * p / 180,
15595
+ if (s.copy(e, _), _ = Fr.call(this, Rr, n, i, r, a, l, h, c, !1), p = Math.PI * p / 180,
15588
15596
  !_ || Math.abs(_[2]) > p) return null;
15589
- if (s.copy(t, _), d && (u.transformMat2(Fr, Fr, d), u.transformMat2(Rr, Rr, d)),
15597
+ if (s.copy(t, _), d && (u.transformMat2(Or, Or, d), u.transformMat2(Rr, Rr, d)),
15590
15598
  m) {
15591
- const e = Math.abs(Rr[1] - Fr[1]), t = Math.abs(Rr[0] - Fr[0]) * f;
15592
- x = Fr[0] > Rr[0] ? 1 : 0, e > t ? (y = 1, x = Fr[1] < Rr[1] ? 0 : 1) : y = 0;
15593
- } else y = 0, x = Fr[0] > Rr[0] ? 1 : 0;
15599
+ const e = Math.abs(Rr[1] - Or[1]), t = Math.abs(Rr[0] - Or[0]) * f;
15600
+ x = Or[0] > Rr[0] ? 1 : 0, e > t ? (y = 1, x = Or[1] < Rr[1] ? 0 : 1) : y = 0;
15601
+ } else y = 0, x = Or[0] > Rr[0] ? 1 : 0;
15594
15602
  return 2 * x + y;
15595
15603
  }
15596
15604
 
@@ -15834,17 +15842,17 @@ class ys extends ei {
15834
15842
  const M = x.properties.aTextSize, P = !l, I = t[n], C = I * _;
15835
15843
  let k;
15836
15844
  k = x.data.aAltitude ? s.set($r, A[C], A[C + 1], T[I]) : zr.unpackPosition($r, A[C], A[C + 1], A[C + 2]);
15837
- const O = Ut(Jr, k, a, y.width, y.height), F = x.properties.aTerrainAltitude;
15845
+ const F = Ut(Jr, k, a, y.width, y.height), O = x.properties.aTerrainAltitude;
15838
15846
  let R;
15839
- if (F) {
15840
- const e = F[I];
15847
+ if (O) {
15848
+ const e = O[I];
15841
15849
  if (e === ge) return w[3 * I] = pe, w[3 * I + 1] = pe, w[3 * I + 2] = pe, !1;
15842
- e ? (R = s.set(ps, ...k), R[2] = 100 * e, R = Ut(R, R, a, y.width, y.height)) : R = O;
15843
- } else R = O;
15850
+ e ? (R = s.set(ps, ...k), R[2] = 100 * e, R = Ut(R, R, a, y.width, y.height)) : R = F;
15851
+ } else R = F;
15844
15852
  const E = y.getDevicePixelRatio();
15845
15853
  if (h.scale(ms, R, 1 / E), y.isOffscreen(ms)) return m || xs(b, t, n, i), w[3 * I] = pe,
15846
15854
  w[3 * I + 1] = pe, w[3 * I + 2] = pe, !1;
15847
- P && (k = O), w[3 * I] = R[0], w[3 * I + 1] = R[1], w[3 * I + 2] = R[2];
15855
+ P && (k = F), w[3 * I] = R[0], w[3 * I + 1] = R[1], w[3 * I + 2] = R[2];
15848
15856
  const D = P ? 1 : x.properties.tileExtent / this.layer.getTileSize().width;
15849
15857
  let L = !0;
15850
15858
  const H = t[n], N = t[i - 1], z = M ? M[H] : e.properties.textSize, V = this._updateNormal(e, z, r, H, N, k, $r, D, l);
@@ -15853,7 +15861,7 @@ class ys extends ei {
15853
15861
  for (let l = n; l < i; l += 6) {
15854
15862
  const h = t[l];
15855
15863
  let c;
15856
- if (c = B || l !== n || U || g ? B || l !== i - 6 || U || g ? Or.call(this, Zr, e, z, r, h, k, $r, D, B, R, this.layer, a, p) : hs : ls,
15864
+ if (c = B || l !== n || U || g ? B || l !== i - 6 || U || g ? Fr.call(this, Zr, e, z, r, h, k, $r, D, B, R, this.layer, a, p) : hs : ls,
15857
15865
  !c) {
15858
15866
  L = !1, m || xs(b, t, n, i);
15859
15867
  break;
@@ -16015,7 +16023,7 @@ class As extends pn {
16015
16023
  }
16016
16024
  const a = {};
16017
16025
  Ce(a, "markerOpacity", o, "markerOpacity", 1), Ce(a, "markerSize", o, "markerSize", 10),
16018
- Ce(a, "markerFill", o, "markerFill", "#000", Fe(this.colorCache, 3));
16026
+ Ce(a, "markerFill", o, "markerFill", "#000", Oe(this.colorCache, 3));
16019
16027
  const l = new r.Material(a, bs);
16020
16028
  l.createDefines = () => "square" !== o.markerType ? {
16021
16029
  USE_CIRCLE: 1
@@ -16040,7 +16048,7 @@ class As extends pn {
16040
16048
  evaluate: (t, i) => {
16041
16049
  let r = n(e.getZoom(), t);
16042
16050
  return x(r) && (r = this.evaluateInFnTypeConfig(r, i, e, t, !0)), Array.isArray(r) || (r = this.colorCache[r] = this.colorCache[r] || m(r).unitArray()),
16043
- r = Oe(r), r;
16051
+ r = Fe(r), r;
16044
16052
  }
16045
16053
  } ];
16046
16054
  }
@@ -16129,7 +16137,7 @@ class ws extends pn {
16129
16137
  }
16130
16138
  getMeshUniforms(e, t) {
16131
16139
  const n = {};
16132
- return Ce(n, "lineColor", t, "lineColor", "#000", Fe(this.colorCache)), Ce(n, "lineOpacity", t, "lineOpacity", 1),
16140
+ return Ce(n, "lineColor", t, "lineColor", "#000", Oe(this.colorCache)), Ce(n, "lineOpacity", t, "lineOpacity", 1),
16133
16141
  n;
16134
16142
  }
16135
16143
  isEnableTileStencil(e) {
@@ -16207,7 +16215,7 @@ class ws extends pn {
16207
16215
  }
16208
16216
  }
16209
16217
 
16210
- const {DEFAULT_TEX_WIDTH: Ms} = L(), Ps = [ 1, 1, 1 ], Is = [ 1, 1, 1, 1 ], Cs = [ 0, 0 ], ks = [ 1, 1 ], Os = [], Fs = new e.Coordinate(0, 0), Rs = new e.Coordinate(0, 0), Es = [], Ds = [];
16218
+ const {DEFAULT_TEX_WIDTH: Ms} = L(), Ps = [ 1, 1, 1 ], Is = [ 1, 1, 1, 1 ], Cs = [ 0, 0 ], ks = [ 1, 1 ], Fs = [], Os = new e.Coordinate(0, 0), Rs = new e.Coordinate(0, 0), Es = [], Ds = [];
16211
16219
 
16212
16220
  class Ls extends un {
16213
16221
  isEnableTileStencil() {
@@ -16235,7 +16243,7 @@ class Ls extends un {
16235
16243
  }
16236
16244
  const c = this.getSymbolDef(a), u = this.getFnTypeConfig(a);
16237
16245
  St(s, c, u, this.layer);
16238
- const f = this.getShader(), d = f.getGeometryDefines ? f.getGeometryDefines(s) : {}, p = this.getSymbol(a), g = Fe(this.colorCache);
16246
+ const f = this.getShader(), d = f.getGeometryDefines ? f.getGeometryDefines(s) : {}, p = this.getSymbol(a), g = Oe(this.colorCache);
16239
16247
  if (s.data.aExtrude) {
16240
16248
  d.IS_LINE_EXTRUSION = 1;
16241
16249
  const {tileResolution: e, tileRatio: t} = s.properties, n = this.getMap();
@@ -16315,8 +16323,8 @@ class Ls extends un {
16315
16323
  if (1 === this.dataConfig.topUVMode) return e[0] = 0, e[1] = 0, e;
16316
16324
  const o = this.getMap(), a = this.getSymbol(t).material;
16317
16325
  let l = n;
16318
- !this.dataConfig.side && a && a.textureOrigin && (Fs.set(a.textureOrigin[0], a.textureOrigin[1]),
16319
- o.coordToPointAtRes(Fs, i, Rs), l = u.set(Es, n[0] - Rs.x, n[1] - Rs.y));
16326
+ !this.dataConfig.side && a && a.textureOrigin && (Os.set(a.textureOrigin[0], a.textureOrigin[1]),
16327
+ o.coordToPointAtRes(Os, i, Rs), l = u.set(Es, n[0] - Rs.x, n[1] - Rs.y));
16320
16328
  const h = !!a && a.uvOffsetInMeter;
16321
16329
  let c = a && a.uvOffset || Cs;
16322
16330
  const f = this.getUVOffsetAnim();
@@ -16334,7 +16342,7 @@ class Ls extends un {
16334
16342
  super.callShader(e, t);
16335
16343
  }
16336
16344
  getShadowMeshes() {
16337
- if (!this.isVisible()) return Os;
16345
+ if (!this.isVisible()) return Fs;
16338
16346
  this.shadowCount = this.scene.getMeshes().length;
16339
16347
  const e = this.scene.getMeshes().filter((e => 0 === e.properties.level));
16340
16348
  for (let t = 0; t < e.length; t++) {
@@ -16393,7 +16401,7 @@ class Ls extends un {
16393
16401
  evaluate: (t, i) => {
16394
16402
  let r = n(e.getZoom(), t);
16395
16403
  return x(r) && (r = this.evaluateInFnTypeConfig(r, i, e, t, !0)), Array.isArray(r) || (r = this.colorCache[r] = this.colorCache[r] || m(r).unitArray()),
16396
- r = Oe(r), r;
16404
+ r = Fe(r), r;
16397
16405
  }
16398
16406
  }, {
16399
16407
  attrName: "aOpacity",
@@ -16884,7 +16892,7 @@ class Ys extends pn {
16884
16892
  tileResolution: c,
16885
16893
  tileRatio: u
16886
16894
  };
16887
- Ce(f, "lineColor", h, "lineColor", "#fff", Fe(this.colorCache)), Ce(f, "linePatternGapColor", h, "linePatternGapColor", [ 1, 1, 1, 1 ], Fe(this.colorCache)),
16895
+ Ce(f, "lineColor", h, "lineColor", "#fff", Oe(this.colorCache)), Ce(f, "linePatternGapColor", h, "linePatternGapColor", [ 1, 1, 1, 1 ], Oe(this.colorCache)),
16888
16896
  Ce(f, "lineWidth", h, "lineWidth", 2, (e => Ws.getTubeSizeScale(this.dataConfig.metric) * e)),
16889
16897
  Ce(f, "lineOpacity", h, "lineOpacity", 1), Ce(f, "linePatternAnimSpeed", h, "linePatternAnimSpeed", 0),
16890
16898
  Ce(f, "linePatternGap", h, "linePatternGap", 0), Ce(f, "metallicFactor", h, "metallicFactor", 0),
@@ -17016,7 +17024,7 @@ class Ys extends pn {
17016
17024
  evaluate: (t, i) => {
17017
17025
  let r = n(e.getZoom(), t);
17018
17026
  return x(r) && (r = this.evaluateInFnTypeConfig(r, i, e, t, !0)), Array.isArray(r) || (r = this.colorCache[r] = this.colorCache[r] || m(r).unitArray()),
17019
- r = Oe(r), r;
17027
+ r = Fe(r), r;
17020
17028
  }
17021
17029
  }, {
17022
17030
  attrName: "aLinePattern",
@@ -17178,22 +17186,22 @@ const {PackUtil: Zs} = L(), qs = [], $s = [], Js = [], Ks = [], Qs = [], eo = [
17178
17186
  k.properties.startTime = a, C.HAS_SKIN = 1;
17179
17187
  }
17180
17188
  S && (k.setUniform("morphWeights", S), C.HAS_MORPH = 1), k.setUniform("hasAlpha", M.alphaMode && "BLEND" === M.alphaMode.toUpperCase()),
17181
- Ce(k.uniforms, "polygonFill", t, "markerFill", ro, Fe(this.colorCache)), Ce(k.uniforms, "polygonOpacity", t, "markerOpacity", 1);
17182
- const O = [];
17189
+ Ce(k.uniforms, "polygonFill", t, "markerFill", ro, Oe(this.colorCache)), Ce(k.uniforms, "polygonOpacity", t, "markerOpacity", 1);
17190
+ const F = [];
17183
17191
  k.setPositionMatrix((() => {
17184
17192
  const t = this._getMeshNodeMatrix(e, g, P);
17185
- o.multiply(O, oo, t), o.multiply(O, f, O), o.multiply(O, w, O);
17193
+ o.multiply(F, oo, t), o.multiply(F, f, F), o.multiply(F, w, F);
17186
17194
  const n = o.identity(so);
17187
- if (0 !== d && (o.fromTranslation(n, p), o.multiply(O, n, O)), De(u)) {
17195
+ if (0 !== d && (o.fromTranslation(n, p), o.multiply(F, n, F)), De(u)) {
17188
17196
  const e = l.getGLScale() / l.getGLScale(u);
17189
- return s.set(qs, e, e, e), o.fromScaling(n, qs), o.multiply(n, n, O);
17197
+ return s.set(qs, e, e, e), o.fromScaling(n, qs), o.multiply(n, n, F);
17190
17198
  }
17191
- return O;
17199
+ return F;
17192
17200
  }));
17193
- const F = this.layer.getRenderer().getZScale(), R = [], E = [];
17201
+ const O = this.layer.getRenderer().getZScale(), R = [], E = [];
17194
17202
  return k.setLocalTransform((() => {
17195
17203
  const e = this.layer.options.altitude || 0;
17196
- return s.copy(E, _), E[2] += 100 * e * F, o.translate(R, n, E), R;
17204
+ return s.copy(E, _), E[2] += 100 * e * O, o.translate(R, n, E), R;
17197
17205
  })), m.generateBuffers(this.regl, {
17198
17206
  excludeElementsInVAO: !0
17199
17207
  }), x.instance_color && (C.HAS_INSTANCE_COLOR = 1), x.aTerrainAltitude && (C.HAS_INSTANCE_TERRAIN_ALTITUDE = 1,
@@ -17281,13 +17289,13 @@ const {PackUtil: Zs} = L(), qs = [], $s = [], Js = [], Ks = [], Qs = [], eo = [
17281
17289
  t[0] < x && (x = t[0]), t[0] > b && (b = t[0]), t[1] < _ && (_ = t[1]), t[1] > A && (A = t[1]),
17282
17290
  t[2] < v && (v = t[2]), t[2] > T && (T = t[2]);
17283
17291
  }
17284
- const M = (x + b) / 2, P = (_ + A) / 2, I = (v + T) / 2, C = [], k = this._hasFuncType(), O = [ 0, 0, 1 ];
17292
+ const M = (x + b) / 2, P = (_ + A) / 2, I = (v + T) / 2, C = [], k = this._hasFuncType(), F = [ 0, 0, 1 ];
17285
17293
  for (let t = 0; t < p; t++) {
17286
17294
  a ? s.set(w, r[t * c], r[t * c + 1], a[t]) : Zs.unpackPosition(w, r[t * c], r[t * c + 1], r[t * c + 2]);
17287
17295
  const n = w[0], i = w[1], p = s.set(S, n * g - M, -i * g - P, (w[2] + y) * m - I), x = l && l[t] || 0, _ = h && h[t] || 0;
17288
17296
  if (x || _) {
17289
- o.fromRotation(C, _, O);
17290
- const e = s.set(qs, n, i, 0), t = s.normalize(e, s.cross(e, e, O));
17297
+ o.fromRotation(C, _, F);
17298
+ const e = s.set(qs, n, i, 0), t = s.normalize(e, s.cross(e, e, F));
17291
17299
  o.rotate(C, C, x, t);
17292
17300
  const r = o.fromTranslation(so, p);
17293
17301
  o.multiply(C, r, C);
@@ -17700,7 +17708,7 @@ const _o = _t("fill", In);
17700
17708
 
17701
17709
  _o.registerAt(lt);
17702
17710
 
17703
- const vo = _t("line", Fn);
17711
+ const vo = _t("line", On);
17704
17712
 
17705
17713
  vo.registerAt(lt);
17706
17714
 
@@ -17746,7 +17754,7 @@ const ko = _t("gltf-lit", ho);
17746
17754
 
17747
17755
  ko.registerAt(lt);
17748
17756
 
17749
- const Oo = _t("heatmap", class extends pn {
17757
+ const Fo = _t("heatmap", class extends pn {
17750
17758
  createFnTypeConfig(e, t) {
17751
17759
  const n = _(t.heatmapWeight), i = new Int16Array(1);
17752
17760
  return [ {
@@ -17810,12 +17818,12 @@ const Oo = _t("heatmap", class extends pn {
17810
17818
  }
17811
17819
  });
17812
17820
 
17813
- Oo.registerAt(lt);
17821
+ Fo.registerAt(lt);
17814
17822
 
17815
- const Fo = _t("water", yo);
17823
+ const Oo = _t("water", yo);
17816
17824
 
17817
- Fo.registerAt(lt), gt.registerPainter("lit", Gs), gt.registerPainter("icon", Mr),
17818
- gt.registerPainter("fill", In), gt.registerPainter("line", Fn), gt.registerPainter("line-gradient", Gn),
17825
+ Oo.registerAt(lt), gt.registerPainter("lit", Gs), gt.registerPainter("icon", Mr),
17826
+ gt.registerPainter("fill", In), gt.registerPainter("line", On), gt.registerPainter("line-gradient", Gn),
17819
17827
  gt.registerPainter("water", yo), gt.registerPainter("tube", Ys);
17820
17828
 
17821
17829
  class Ro extends lt {
@@ -19107,14 +19115,14 @@ function Ca(e) {
19107
19115
  return t;
19108
19116
  }
19109
19117
 
19110
- const {StyleUtil: ka, PackUtil: Oa, ArrayPool: Fa} = L(), Ra = Fa.getInstance();
19118
+ const {StyleUtil: ka, PackUtil: Fa, ArrayPool: Oa} = L(), Ra = Oa.getInstance();
19111
19119
 
19112
19120
  function Ea(e, t, n, i, r, s, o, a, l, h, c, u, f, d, p, g) {
19113
19121
  void 0 === t.top && (t.top = !0), void 0 === t.side && (t.side = !0), Ra.reset();
19114
- const {altitudeScale: m, altitudeProperty: y, defaultAltitude: b, heightProperty: A, minHeightProperty: T, defaultHeight: S, tangent: w, uv: F, topUVMode: R, sideUVMode: E, sideVerticalUVMode: D, top: L, side: H, textureYOrigin: N, topThickness: z} = t, V = !!g, U = function(e, t, {altitudeScale: n, altitudeProperty: i, defaultAltitude: r, heightProperty: s, minHeightProperty: o, defaultHeight: a}, {center: l, side: h, top: c, topThickness: u, uvOrigin: f, uv: d, uvSize: p, topUVMode: g, sideUVMode: m, sideVerticalUVMode: y, textureYOrigin: x, tileRatio: _, centimeterToPoint: v, verticalCentimeterToPoint: b, positionType: A, res: T, glScale: S, projectionCode: w}, M, P) {
19122
+ const {altitudeScale: m, altitudeProperty: y, defaultAltitude: b, heightProperty: A, minHeightProperty: T, defaultHeight: S, tangent: w, uv: O, topUVMode: R, sideUVMode: E, sideVerticalUVMode: D, top: L, side: H, textureYOrigin: N, topThickness: z} = t, V = !!g, U = function(e, t, {altitudeScale: n, altitudeProperty: i, defaultAltitude: r, heightProperty: s, minHeightProperty: o, defaultHeight: a}, {center: l, side: h, top: c, topThickness: u, uvOrigin: f, uv: d, uvSize: p, topUVMode: g, sideUVMode: m, sideVerticalUVMode: y, textureYOrigin: x, tileRatio: _, centimeterToPoint: v, verticalCentimeterToPoint: b, positionType: A, res: T, glScale: S, projectionCode: w}, M, P) {
19115
19123
  let C = t / e[0].extent;
19116
19124
  t === 1 / 0 && (C = 1);
19117
- const k = t === 1 / 0, O = P.get(), F = P.get(), R = P.get(), E = P.getProxy(), D = P.get(), L = P.get(), H = P.get(), N = !!d, z = !!c, V = !!h, U = N ? P.get() : null;
19125
+ const k = t === 1 / 0, F = P.get(), O = P.get(), R = P.get(), E = P.getProxy(), D = P.get(), L = P.get(), H = P.get(), N = !!d, z = !!c, V = !!h, U = N ? P.get() : null;
19118
19126
  function G(e, n, i, r, s, o) {
19119
19127
  let a = n;
19120
19128
  if (z) {
@@ -19181,20 +19189,20 @@ function Ea(e, t, n, i, r, s, o, a, l, h, c, u, f, d, p, g) {
19181
19189
  }
19182
19190
  const _ = D.getLength() - g, v = (de + "").trim();
19183
19191
  for (let e = 0; e < _ / 3; e++) {
19184
- let e = F.currentIndex;
19185
- F[e++] = void 0 === l[v] ? Z : l[v], F.currentIndex = e, e = O.currentIndex, O[e++] = Z,
19186
- O.currentIndex = e, B(h) && (e = R.currentIndex, R[e++] = h, R.currentIndex = e);
19192
+ let e = O.currentIndex;
19193
+ O[e++] = void 0 === l[v] ? Z : l[v], O.currentIndex = e, e = F.currentIndex, F[e++] = Z,
19194
+ F.currentIndex = e, B(h) && (e = R.currentIndex, R[e++] = h, R.currentIndex = e);
19187
19195
  }
19188
19196
  }
19189
- const ee = wa.getUnsignedArrayType(F.getLength() ? F[F.getLength() - 1] : 0), te = {
19197
+ const ee = wa.getUnsignedArrayType(O.getLength() ? O[O.getLength() - 1] : 0), te = {
19190
19198
  hasNegativeHeight: Q,
19191
19199
  maxAltitude: j === -1 / 0 ? 0 : j,
19192
19200
  minAltitude: W === 1 / 0 ? 0 : W,
19193
19201
  vertices: D,
19194
19202
  verticeTypes: H,
19195
19203
  indices: L,
19196
- pickingIds: Ma.createTypedArray(F, ee),
19197
- featureIndexes: O
19204
+ pickingIds: Ma.createTypedArray(O, ee),
19205
+ featureIndexes: F
19198
19206
  };
19199
19207
  if (R.getLength()) {
19200
19208
  const e = J ? wa.getPosArrayType($) : wa.getUnsignedArrayType($);
@@ -19213,7 +19221,7 @@ function Ea(e, t, n, i, r, s, o, a, l, h, c, u, f, d, p, g) {
19213
19221
  top: L,
19214
19222
  side: H,
19215
19223
  topThickness: 10 * z || 0,
19216
- uv: F || w,
19224
+ uv: O || w,
19217
19225
  uvSize: [ r, r ],
19218
19226
  uvOrigin: i,
19219
19227
  topUVMode: R,
@@ -19227,10 +19235,10 @@ function Ea(e, t, n, i, r, s, o, a, l, h, c, u, f, d, p, g) {
19227
19235
  res: s,
19228
19236
  glScale: o,
19229
19237
  projectionCode: f
19230
- }, d, Ra), G = [], j = U.vertices.getLength() / 3, W = Oa.getIndexArrayType(j), X = Fa.createTypedArray(U.indices, W);
19238
+ }, d, Ra), G = [], j = U.vertices.getLength() / 3, W = Fa.getIndexArrayType(j), X = Oa.createTypedArray(U.indices, W);
19231
19239
  delete U.indices, G.push(X.buffer, U.pickingIds.buffer);
19232
- const Z = Math.max(Math.abs(U.maxAltitude), Math.abs(U.minAltitude)), q = p || Oa.getPosArrayType(Math.max(512, Z));
19233
- U.vertices = Fa.createTypedArray(U.vertices, q);
19240
+ const Z = Math.max(Math.abs(U.maxAltitude), Math.abs(U.minAltitude)), q = p || Fa.getPosArrayType(Math.max(512, Z));
19241
+ U.vertices = Oa.createTypedArray(U.vertices, q);
19234
19242
  const $ = w ? Ra.getProxy() : new Float32Array(3 * j);
19235
19243
  $.setLength && $.setLength(3 * j);
19236
19244
  const J = C(U.vertices, X, $);
@@ -19248,15 +19256,15 @@ function Ea(e, t, n, i, r, s, o, a, l, h, c, u, f, d, p, g) {
19248
19256
  for (let a = 0; a < n; a += 4) {
19249
19257
  const n = a / 4 * 3;
19250
19258
  M.set(s, e[n] || 0, e[n + 1] || 0, e[n + 2] || 0), P.set(r, t[a] || 0, t[a + 1] || 0, t[a + 2] || 0, t[a + 3] || 0),
19251
- O(o, s, r), P.copy(i.subarray(a, a + 4), o);
19259
+ F(o, s, r), P.copy(i.subarray(a, a + 4), o);
19252
19260
  }
19253
19261
  return i;
19254
19262
  }(U.normals, e), U.tangents = e, G.push(e.buffer), delete U.normals;
19255
19263
  }
19256
- if (U.normals && (K && (U.normals = Fa.createTypedArray(U.normals, Int8Array)),
19264
+ if (U.normals && (K && (U.normals = Oa.createTypedArray(U.normals, Int8Array)),
19257
19265
  G.push(U.normals.buffer)), U.uvs) {
19258
19266
  const e = U.uvs;
19259
- U.uvs = Fa.createTypedArray(e, Float32Array), G.push(U.uvs.buffer);
19267
+ U.uvs = Oa.createTypedArray(e, Float32Array), G.push(U.uvs.buffer);
19260
19268
  }
19261
19269
  if (g) {
19262
19270
  const e = U.vertices, t = e.length;
@@ -19321,7 +19329,7 @@ function Ea(e, t, n, i, r, s, o, a, l, h, c, u, f, d, p, g) {
19321
19329
  }(U.verticeTypes, U.featureIndexes, e, c, u), ne = {
19322
19330
  data: {
19323
19331
  data: {
19324
- aVertexColorType: te.length <= 252 ? Fa.createTypedArray(U.verticeTypes, Uint8Array) : Fa.createTypedArray(U.verticeTypes, Uint16Array),
19332
+ aVertexColorType: te.length <= 252 ? Oa.createTypedArray(U.verticeTypes, Uint8Array) : Oa.createTypedArray(U.verticeTypes, Uint16Array),
19325
19333
  aPosition: U.vertices,
19326
19334
  aNormal: U.normals,
19327
19335
  aTexCoord0: U.uvs,
@@ -19342,7 +19350,7 @@ function Ea(e, t, n, i, r, s, o, a, l, h, c, u, f, d, p, g) {
19342
19350
  return U.featureIds.length ? (ne.data.featureIds = U.featureIds, G.push(ne.data.featureIds.buffer)) : ne.data.featureIds = [],
19343
19351
  ee.aColor && (ne.data.data.aColor = ee.aColor, ne.buffers.push(ee.aColor.buffer)),
19344
19352
  ee.aOpacity && (ne.data.data.aOpacity = ee.aOpacity, ne.buffers.push(ee.aOpacity.buffer)),
19345
- ne.buffers.push(ne.data.data.aPosition.buffer), ne.data.pickingIdIndiceMap = Oa.generatePickingIndiceIndex(ne.data.data.aPickingId, ne.data.indices),
19353
+ ne.buffers.push(ne.data.data.aPosition.buffer), ne.data.pickingIdIndiceMap = Fa.generatePickingIndiceIndex(ne.data.data.aPickingId, ne.data.indices),
19346
19354
  ne;
19347
19355
  }
19348
19356
 
@@ -19474,21 +19482,21 @@ function nl(e, t, n, i, r, s) {
19474
19482
  y = b - T, u = b - y, tl[0] = b - (y + u) + (u - T), x = v + y, u = x - v, _ = v - (x - u) + (y - u),
19475
19483
  y = _ - A, u = _ - y, tl[1] = _ - (y + u) + (u - A), S = x + y, u = S - x, tl[2] = x - (S - u) + (y - u),
19476
19484
  tl[3] = S;
19477
- const O = Xa(4, Ja, 4, tl, Ka);
19485
+ const F = Xa(4, Ja, 4, tl, Ka);
19478
19486
  v = w * c, f = ja * w, d = f - (f - w), p = w - d, f = ja * c, g = f - (f - c),
19479
19487
  m = c - g, b = p * m - (v - d * g - p * g - d * m), A = P * h, f = ja * P, d = f - (f - P),
19480
19488
  p = P - d, f = ja * h, g = f - (f - h), m = h - g, T = p * m - (A - d * g - p * g - d * m),
19481
19489
  y = b - T, u = b - y, tl[0] = b - (y + u) + (u - T), x = v + y, u = x - v, _ = v - (x - u) + (y - u),
19482
19490
  y = _ - A, u = _ - y, tl[1] = _ - (y + u) + (u - A), S = x + y, u = S - x, tl[2] = x - (S - u) + (y - u),
19483
19491
  tl[3] = S;
19484
- const F = Xa(O, Ka, 4, tl, Qa);
19492
+ const O = Xa(F, Ka, 4, tl, Qa);
19485
19493
  v = a * c, f = ja * a, d = f - (f - a), p = a - d, f = ja * c, g = f - (f - c),
19486
19494
  m = c - g, b = p * m - (v - d * g - p * g - d * m), A = l * h, f = ja * l, d = f - (f - l),
19487
19495
  p = l - d, f = ja * h, g = f - (f - h), m = h - g, T = p * m - (A - d * g - p * g - d * m),
19488
19496
  y = b - T, u = b - y, tl[0] = b - (y + u) + (u - T), x = v + y, u = x - v, _ = v - (x - u) + (y - u),
19489
19497
  y = _ - A, u = _ - y, tl[1] = _ - (y + u) + (u - A), S = x + y, u = S - x, tl[2] = x - (S - u) + (y - u),
19490
19498
  tl[3] = S;
19491
- const R = Xa(F, Qa, 4, tl, el);
19499
+ const R = Xa(O, Qa, 4, tl, el);
19492
19500
  return el[R - 1];
19493
19501
  }(e, t, n, i, r, s, h);
19494
19502
  }
@@ -19514,7 +19522,7 @@ function il(e, t, n) {
19514
19522
  }
19515
19523
  return i.pop(), t.pop(), t.concat(i);
19516
19524
  }(l);
19517
- }(e), r = new F(16);
19525
+ }(e), r = new O(16);
19518
19526
  r.toBBox = function(e) {
19519
19527
  return {
19520
19528
  minX: e[0],
@@ -19531,7 +19539,7 @@ function il(e, t, n) {
19531
19539
  var l = i[a];
19532
19540
  r.remove(l), s = ul(l, s), o.push(s);
19533
19541
  }
19534
- var h = new F(16);
19542
+ var h = new O(16);
19535
19543
  for (a = 0; a < o.length; a++) h.insert(cl(o[a]));
19536
19544
  for (var c = t * t, u = n * n; o.length; ) {
19537
19545
  var f = o.shift(), d = f.p, p = f.next.p, g = fl(d, p);
@@ -19973,7 +19981,7 @@ r.ShaderLib.register("vt_position_vert", "#ifdef HAS_TERRAIN_ALTITUDE\n attri
19973
19981
 
19974
19982
  i.mat4.create();
19975
19983
 
19976
- const Ol = function(e, t) {
19984
+ const Fl = function(e, t) {
19977
19985
  const n = e.toString(), i = n.indexOf("{") + 1, r = n.substring(0, i);
19978
19986
  let s = `${r}\n (` + t.toString() + ")({});\n";
19979
19987
  return s += "\n" + n.substring(r.length), s;
@@ -19982,14 +19990,14 @@ const Ol = function(e, t) {
19982
19990
  if (i.transcoders) {
19983
19991
  const t = e.Map.VERSION;
19984
19992
  if (t.indexOf("1.0.0-beta") >= 0 || t.indexOf("1.0.0-alpha") >= 0) {
19985
- const t = i.transcoders.inject(Ol);
19993
+ const t = i.transcoders.inject(Fl);
19986
19994
  e.registerWorkerAdapter("@maptalks/vt", t);
19987
19995
  } else e.registerWorkerAdapter("@maptalks/vt", (function() {
19988
- return i.transcoders.inject(Ol);
19996
+ return i.transcoders.inject(Fl);
19989
19997
  }));
19990
- } else e.registerWorkerAdapter("@maptalks/vt", Ol);
19998
+ } else e.registerWorkerAdapter("@maptalks/vt", Fl);
19991
19999
 
19992
- export { Tl as ExtrudePolygonLayer, In as FillPainter, _o as FillPlugin, Il as FilterUtil, Co as GLTFPhongPlugin, ko as GLTFStandardPlugin, Do as GeoJSONVectorTileLayer, Oo as HeatmapPlugin, Mr as IconPainter, Ao as IconPlugin, bo as LineGradientPlugin, Fn as LinePainter, vo as LinePlugin, ca as LineStringLayer, Po as LitPlugin, Ro as MapboxVectorTileLayer, ws as NativeLinePainter, So as NativeLinePlugin, As as NativePointPainter, Pl as PackUtil, zs as PhongPainter, wo as PhongPlugin, la as PointLayer, da as PolygonLayer, kl as SYMBOLS_NEED_REBUILD_IN_VECTOR, Cl as SYMBOLS_NEED_REBUILD_IN_VT, ys as TextPainter, To as TextPlugin, Io as TubePlugin, gt as Vector3DLayer, lt as VectorTileLayer, qe as VectorTileLayerRenderer, Fo as WaterPlugin, Us as WireframePainter, Mo as WireframePlugin };
20000
+ export { Tl as ExtrudePolygonLayer, In as FillPainter, _o as FillPlugin, Il as FilterUtil, Co as GLTFPhongPlugin, ko as GLTFStandardPlugin, Do as GeoJSONVectorTileLayer, Fo as HeatmapPlugin, Mr as IconPainter, Ao as IconPlugin, bo as LineGradientPlugin, On as LinePainter, vo as LinePlugin, ca as LineStringLayer, Po as LitPlugin, Ro as MapboxVectorTileLayer, ws as NativeLinePainter, So as NativeLinePlugin, As as NativePointPainter, Pl as PackUtil, zs as PhongPainter, wo as PhongPlugin, la as PointLayer, da as PolygonLayer, kl as SYMBOLS_NEED_REBUILD_IN_VECTOR, Cl as SYMBOLS_NEED_REBUILD_IN_VT, ys as TextPainter, To as TextPlugin, Io as TubePlugin, gt as Vector3DLayer, lt as VectorTileLayer, qe as VectorTileLayerRenderer, Oo as WaterPlugin, Us as WireframePainter, Mo as WireframePlugin };
19993
20001
 
19994
- "undefined" != typeof console && console.log("@maptalks/vt v0.105.2");
20002
+ "undefined" != typeof console && console.log("@maptalks/vt v0.105.3");
19995
20003
  //# sourceMappingURL=maptalks.vt.es.js.map