leaflet-vector-tile-layer
Version:
Leaflet layer for vector tiles
5 lines (4 loc) • 23.2 kB
JavaScript
import{SVG as t,Layer as e,point as i,bounds as r,DomUtil as n,extend as s,CircleMarker as o,Polygon as a,Path as u,GridLayer as h,Util as f,latLngBounds as c}from"leaflet";var l=Object.freeze((function(e,i){const r={},n=i.getTileSize(),s=t.create("svg"),o=t.create("g"),a=[];function u(t,r,n){const s=i.getFeatureStyle(t,r,e.z);if(!s)return;const u=i.featureToLayer(t,r,n,s);o.appendChild(u.graphics),a.push(u),i.addFeatureLayer(u)}return s.setAttribute("viewBox",`0 0 ${n.x} ${n.y}`),s.appendChild(o),r.addVectorTile=function(t){return i.getOrderedLayers(Object.keys(t.layers),e.z).forEach((function(e){if(!t.layers[e])return;const i=t.layers[e],r=n.divideBy(i.extent);let s=0;for(;s!==i.length;)u(i.feature(s),e,r),s+=1})),r},r.global=t=>e.scaleBy(n).add(t),r.eachFeatureLayer=t=>a.forEach(((...e)=>t(...e,r))),r.domElement=()=>s,r.coords=()=>e,r}));function d(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var p=y;function y(t,e){this.x=t,this.y=e}y.prototype={clone:function(){return new y(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,i=t.y-this.y;return e*e+i*i},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,i=t[2]*this.x+t[3]*this.y;return this.x=e,this.y=i,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),i=Math.sin(t),r=e*this.x-i*this.y,n=i*this.x+e*this.y;return this.x=r,this.y=n,this},_rotateAround:function(t,e){var i=Math.cos(t),r=Math.sin(t),n=e.x+i*(this.x-e.x)-r*(this.y-e.y),s=e.y+r*(this.x-e.x)+i*(this.y-e.y);return this.x=n,this.y=s,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},y.convert=function(t){return t instanceof y?t:Array.isArray(t)?new y(t[0],t[1]):t};var g=p,v=w;function w(t,e,i,r,n){this.properties={},this.extent=i,this.type=0,this._pbf=t,this._geometry=-1,this._keys=r,this._values=n,t.readFields(b,this,e)}function b(t,e,i){1==t?e.id=i.readVarint():2==t?function(t,e){var i=t.readVarint()+t.pos;for(;t.pos<i;){var r=e._keys[t.readVarint()],n=e._values[t.readVarint()];e.properties[r]=n}}(i,e):3==t?e.type=i.readVarint():4==t&&(e._geometry=i.pos)}function x(t){for(var e,i,r=0,n=0,s=t.length,o=s-1;n<s;o=n++)e=t[n],r+=((i=t[o]).x-e.x)*(e.y+i.y);return r}w.types=["Unknown","Point","LineString","Polygon"],w.prototype.loadGeometry=function(){var t=this._pbf;t.pos=this._geometry;for(var e,i=t.readVarint()+t.pos,r=1,n=0,s=0,o=0,a=[];t.pos<i;){if(n<=0){var u=t.readVarint();r=7&u,n=u>>3}if(n--,1===r||2===r)s+=t.readSVarint(),o+=t.readSVarint(),1===r&&(e&&a.push(e),e=[]),e.push(new g(s,o));else{if(7!==r)throw new Error("unknown command "+r);e&&e.push(e[0].clone())}}return e&&a.push(e),a},w.prototype.bbox=function(){var t=this._pbf;t.pos=this._geometry;for(var e=t.readVarint()+t.pos,i=1,r=0,n=0,s=0,o=1/0,a=-1/0,u=1/0,h=-1/0;t.pos<e;){if(r<=0){var f=t.readVarint();i=7&f,r=f>>3}if(r--,1===i||2===i)(n+=t.readSVarint())<o&&(o=n),n>a&&(a=n),(s+=t.readSVarint())<u&&(u=s),s>h&&(h=s);else if(7!==i)throw new Error("unknown command "+i)}return[o,u,a,h]},w.prototype.toGeoJSON=function(t,e,i){var r,n,s=this.extent*Math.pow(2,i),o=this.extent*t,a=this.extent*e,u=this.loadGeometry(),h=w.types[this.type];function f(t){for(var e=0;e<t.length;e++){var i=t[e],r=180-360*(i.y+a)/s;t[e]=[360*(i.x+o)/s-180,360/Math.PI*Math.atan(Math.exp(r*Math.PI/180))-90]}}switch(this.type){case 1:var c=[];for(r=0;r<u.length;r++)c[r]=u[r][0];f(u=c);break;case 2:for(r=0;r<u.length;r++)f(u[r]);break;case 3:for(u=function(t){var e=t.length;if(e<=1)return[t];for(var i,r,n=[],s=0;s<e;s++){var o=x(t[s]);0!==o&&(void 0===r&&(r=o<0),r===o<0?(i&&n.push(i),i=[t[s]]):i.push(t[s]))}i&&n.push(i);return n}(u),r=0;r<u.length;r++)for(n=0;n<u[r].length;n++)f(u[r][n])}1===u.length?u=u[0]:h="Multi"+h;var l={type:"Feature",geometry:{type:h,coordinates:u},properties:this.properties};return"id"in this&&(l.id=this.id),l};var m=v,F=S;function S(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(V,this,e),this.length=this._features.length}function V(t,e,i){15===t?e.version=i.readVarint():1===t?e.name=i.readString():5===t?e.extent=i.readVarint():2===t?e._features.push(i.pos):3===t?e._keys.push(i.readString()):4===t&&e._values.push(function(t){var e=null,i=t.readVarint()+t.pos;for(;t.pos<i;){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}(i))}S.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 m(this._pbf,e,this.extent,this._keys,this._values)};var _=F,M=function(t,e){this.layers=t.readFields(k,{},e)};function k(t,e,i){if(3===t){var r=new _(i,i.readVarint()+i.pos);r.length&&(e[r.name]=r)}}var B=M,A=v;function P(t,s,o,a){const u=new e(a);return u.feature=t,u.layerName=s,u.properties=t.properties,u.addTo=function(t){u._map=t,u.addInteractiveTarget(u.graphics)},u.removeFrom=function(){u.removeInteractiveTarget(u.graphics),delete u._map},u.scalePoint=function(t){return i(t).scaleBy(o)},u.bbox=function(){const[e,i,n,s]=t.bbox();return r(u.scalePoint([e,i]),u.scalePoint([n,s]))},u.applyOptions=function(t){t.className&&n.addClass(u.graphics,t.className),u.setStyle({})},u}function T(t,e){e.interactive?(t.setAttribute("pointer-events","auto"),n.addClass(t,"leaflet-interactive")):(n.removeClass(t,"leaflet-interactive"),t.removeAttribute("pointer-events")),e.hidden?t.setAttribute("visibility","hidden"):t.removeAttribute("visibility")}function O(t,e){return e.stroke?(t.setAttribute("stroke",e.color),t.setAttribute("stroke-opacity",e.opacity),t.setAttribute("stroke-width",e.weight),t.setAttribute("stroke-linecap",e.lineCap),t.setAttribute("stroke-linejoin",e.lineJoin),e.dashArray?t.setAttribute("stroke-dasharray",e.dashArray):t.removeAttribute("stroke-dasharray"),e.dashOffset?t.setAttribute("stroke-dashoffset",e.dashOffset):t.removeAttribute("stroke-dashoffset")):t.setAttribute("stroke","none"),e.fill?(t.setAttribute("fill",e.fillColor||e.color),t.setAttribute("fill-opacity",e.fillOpacity),t.setAttribute("fill-rule",e.fillRule||"evenodd")):t.setAttribute("fill","none"),t}function L(t,e){e.icon&&(t.setAttribute("width",e.icon.options.iconSize[0]),t.setAttribute("height",e.icon.options.iconSize[1]),t.setAttribute("href",e.icon.options.iconUrl))}function z(e,i,r,n){const a=P(e,i,r,n=s({},o.prototype.options,n)),u=a.scalePoint(e.loadGeometry()[0][0]);return a.graphics=t.create("circle"),a.graphics.setAttribute("cx",u.x),a.graphics.setAttribute("cy",u.y),a.setStyle=function(t){t=s({},n,t),T(a.graphics,t),O(a.graphics,t),a.graphics.setAttribute("r",t.radius)},a.applyOptions(n),a}function D(e,i,r,n){const o=A.types[e.type],h=P(e,i,r,n=s({},"Polygon"===o?a.prototype.options:u.prototype.options,n)),f=e.loadGeometry();return h.graphics=t.create("path"),h.graphics.setAttribute("d",t.pointsToPath(f.map((t=>t.map(h.scalePoint))),"Polygon"===o)),h.setStyle=function(t){t=s({},n,t),T(h.graphics,t),O(h.graphics,t)},h.applyOptions(n),h}function E(e,i,r,n){const o=P(e,i,r,n);o.setStyle=function(t){t=s({},n,t),T(o.graphics,t),L(o.graphics,t)},o.graphics=t.create("image");const a=o.scalePoint(e.loadGeometry()[0][0]),u=n.icon.options.iconAnchor||[0,0];return o.graphics.setAttribute("x",a.x-u[0]),o.graphics.setAttribute("y",a.y-u[1]),o.applyOptions(n),o}function N(t,e,i,r){switch(A.types[t.type]){case"Point":return r.icon?E(t,e,i,r):z(t,e,i,r);case"Polygon":case"LineString":return D(t,e,i,r);default:throw new Error("Unknown feature type")}}var C={
/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
read:function(t,e,i,r,n){var s,o,a=8*n-r-1,u=(1<<a)-1,h=u>>1,f=-7,c=i?n-1:0,l=i?-1:1,d=t[e+c];for(c+=l,s=d&(1<<-f)-1,d>>=-f,f+=a;f>0;s=256*s+t[e+c],c+=l,f-=8);for(o=s&(1<<-f)-1,s>>=-f,f+=r;f>0;o=256*o+t[e+c],c+=l,f-=8);if(0===s)s=1-h;else{if(s===u)return o?NaN:1/0*(d?-1:1);o+=Math.pow(2,r),s-=h}return(d?-1:1)*o*Math.pow(2,s-r)},write:function(t,e,i,r,n,s){var o,a,u,h=8*s-n-1,f=(1<<h)-1,c=f>>1,l=23===n?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:s-1,p=r?1:-1,y=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,o=f):(o=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-o))<1&&(o--,u*=2),(e+=o+c>=1?l/u:l*Math.pow(2,1-c))*u>=2&&(o++,u/=2),o+c>=f?(a=0,o=f):o+c>=1?(a=(e*u-1)*Math.pow(2,n),o+=c):(a=e*Math.pow(2,c-1)*Math.pow(2,n),o=0));n>=8;t[i+d]=255&a,d+=p,a/=256,n-=8);for(o=o<<n|a,h+=n;h>0;t[i+d]=255&o,d+=p,o/=256,h-=8);t[i+d-p]|=128*y}},j=R,Z=C;function R(t){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(t)?t:new Uint8Array(t||0),this.pos=0,this.type=0,this.length=this.buf.length}R.Varint=0,R.Fixed64=1,R.Bytes=2,R.Fixed32=5;var U=4294967296,G=1/U,q="undefined"==typeof TextDecoder?null:new TextDecoder("utf8");function I(t){return t.type===R.Bytes?t.readVarint()+t.pos:t.pos+1}function $(t,e,i){return i?4294967296*e+(t>>>0):4294967296*(e>>>0)+(t>>>0)}function W(t,e,i){var r=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.floor(Math.log(e)/(7*Math.LN2));i.realloc(r);for(var n=i.pos-1;n>=t;n--)i.buf[n+r]=i.buf[n]}function J(t,e){for(var i=0;i<t.length;i++)e.writeVarint(t[i])}function H(t,e){for(var i=0;i<t.length;i++)e.writeSVarint(t[i])}function K(t,e){for(var i=0;i<t.length;i++)e.writeFloat(t[i])}function Q(t,e){for(var i=0;i<t.length;i++)e.writeDouble(t[i])}function X(t,e){for(var i=0;i<t.length;i++)e.writeBoolean(t[i])}function Y(t,e){for(var i=0;i<t.length;i++)e.writeFixed32(t[i])}function tt(t,e){for(var i=0;i<t.length;i++)e.writeSFixed32(t[i])}function et(t,e){for(var i=0;i<t.length;i++)e.writeFixed64(t[i])}function it(t,e){for(var i=0;i<t.length;i++)e.writeSFixed64(t[i])}function rt(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+16777216*t[e+3]}function nt(t,e,i){t[i]=e,t[i+1]=e>>>8,t[i+2]=e>>>16,t[i+3]=e>>>24}function st(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+(t[e+3]<<24)}R.prototype={destroy:function(){this.buf=null},readFields:function(t,e,i){for(i=i||this.length;this.pos<i;){var r=this.readVarint(),n=r>>3,s=this.pos;this.type=7&r,t(n,e,this),this.pos===s&&this.skip(r)}return e},readMessage:function(t,e){return this.readFields(t,e,this.readVarint()+this.pos)},readFixed32:function(){var t=rt(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=st(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=rt(this.buf,this.pos)+rt(this.buf,this.pos+4)*U;return this.pos+=8,t},readSFixed64:function(){var t=rt(this.buf,this.pos)+st(this.buf,this.pos+4)*U;return this.pos+=8,t},readFloat:function(){var t=Z.read(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=Z.read(this.buf,this.pos,!0,52,8);return this.pos+=8,t},readVarint:function(t){var e,i,r=this.buf;return e=127&(i=r[this.pos++]),i<128?e:(e|=(127&(i=r[this.pos++]))<<7,i<128?e:(e|=(127&(i=r[this.pos++]))<<14,i<128?e:(e|=(127&(i=r[this.pos++]))<<21,i<128?e:function(t,e,i){var r,n,s=i.buf;if(n=s[i.pos++],r=(112&n)>>4,n<128)return $(t,r,e);if(n=s[i.pos++],r|=(127&n)<<3,n<128)return $(t,r,e);if(n=s[i.pos++],r|=(127&n)<<10,n<128)return $(t,r,e);if(n=s[i.pos++],r|=(127&n)<<17,n<128)return $(t,r,e);if(n=s[i.pos++],r|=(127&n)<<24,n<128)return $(t,r,e);if(n=s[i.pos++],r|=(1&n)<<31,n<128)return $(t,r,e);throw new Error("Expected varint not more than 10 bytes")}(e|=(15&(i=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&&q?function(t,e,i){return q.decode(t.subarray(e,i))}(this.buf,e,t):function(t,e,i){var r="",n=e;for(;n<i;){var s,o,a,u=t[n],h=null,f=u>239?4:u>223?3:u>191?2:1;if(n+f>i)break;1===f?u<128&&(h=u):2===f?128==(192&(s=t[n+1]))&&(h=(31&u)<<6|63&s)<=127&&(h=null):3===f?(s=t[n+1],o=t[n+2],128==(192&s)&&128==(192&o)&&((h=(15&u)<<12|(63&s)<<6|63&o)<=2047||h>=55296&&h<=57343)&&(h=null)):4===f&&(s=t[n+1],o=t[n+2],a=t[n+3],128==(192&s)&&128==(192&o)&&128==(192&a)&&((h=(15&u)<<18|(63&s)<<12|(63&o)<<6|63&a)<=65535||h>=1114112)&&(h=null)),null===h?(h=65533,f=1):h>65535&&(h-=65536,r+=String.fromCharCode(h>>>10&1023|55296),h=56320|1023&h),r+=String.fromCharCode(h),n+=f}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!==R.Bytes)return t.push(this.readVarint(e));var i=I(this);for(t=t||[];this.pos<i;)t.push(this.readVarint(e));return t},readPackedSVarint:function(t){if(this.type!==R.Bytes)return t.push(this.readSVarint());var e=I(this);for(t=t||[];this.pos<e;)t.push(this.readSVarint());return t},readPackedBoolean:function(t){if(this.type!==R.Bytes)return t.push(this.readBoolean());var e=I(this);for(t=t||[];this.pos<e;)t.push(this.readBoolean());return t},readPackedFloat:function(t){if(this.type!==R.Bytes)return t.push(this.readFloat());var e=I(this);for(t=t||[];this.pos<e;)t.push(this.readFloat());return t},readPackedDouble:function(t){if(this.type!==R.Bytes)return t.push(this.readDouble());var e=I(this);for(t=t||[];this.pos<e;)t.push(this.readDouble());return t},readPackedFixed32:function(t){if(this.type!==R.Bytes)return t.push(this.readFixed32());var e=I(this);for(t=t||[];this.pos<e;)t.push(this.readFixed32());return t},readPackedSFixed32:function(t){if(this.type!==R.Bytes)return t.push(this.readSFixed32());var e=I(this);for(t=t||[];this.pos<e;)t.push(this.readSFixed32());return t},readPackedFixed64:function(t){if(this.type!==R.Bytes)return t.push(this.readFixed64());var e=I(this);for(t=t||[];this.pos<e;)t.push(this.readFixed64());return t},readPackedSFixed64:function(t){if(this.type!==R.Bytes)return t.push(this.readSFixed64());var e=I(this);for(t=t||[];this.pos<e;)t.push(this.readSFixed64());return t},skip:function(t){var e=7&t;if(e===R.Varint)for(;this.buf[this.pos++]>127;);else if(e===R.Bytes)this.pos=this.readVarint()+this.pos;else if(e===R.Fixed32)this.pos+=4;else{if(e!==R.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 i=new Uint8Array(e);i.set(this.buf),this.buf=i,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),nt(this.buf,t,this.pos),this.pos+=4},writeSFixed32:function(t){this.realloc(4),nt(this.buf,t,this.pos),this.pos+=4},writeFixed64:function(t){this.realloc(8),nt(this.buf,-1&t,this.pos),nt(this.buf,Math.floor(t*G),this.pos+4),this.pos+=8},writeSFixed64:function(t){this.realloc(8),nt(this.buf,-1&t,this.pos),nt(this.buf,Math.floor(t*G),this.pos+4),this.pos+=8},writeVarint:function(t){(t=+t||0)>268435455||t<0?function(t,e){var i,r;t>=0?(i=t%4294967296|0,r=t/4294967296|0):(r=~(-t/4294967296),4294967295^(i=~(-t%4294967296))?i=i+1|0:(i=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,i){i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos]=127&t}(i,0,e),function(t,e){var i=(7&t)<<4;if(e.buf[e.pos++]|=i|((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,i){for(var r,n,s=0;s<e.length;s++){if((r=e.charCodeAt(s))>55295&&r<57344){if(!n){r>56319||s+1===e.length?(t[i++]=239,t[i++]=191,t[i++]=189):n=r;continue}if(r<56320){t[i++]=239,t[i++]=191,t[i++]=189,n=r;continue}r=n-55296<<10|r-56320|65536,n=null}else n&&(t[i++]=239,t[i++]=191,t[i++]=189,n=null);r<128?t[i++]=r:(r<2048?t[i++]=r>>6|192:(r<65536?t[i++]=r>>12|224:(t[i++]=r>>18|240,t[i++]=r>>12&63|128),t[i++]=r>>6&63|128),t[i++]=63&r|128)}return i}(this.buf,t,this.pos);var i=this.pos-e;i>=128&&W(e,i,this),this.pos=e-1,this.writeVarint(i),this.pos+=i},writeFloat:function(t){this.realloc(4),Z.write(this.buf,t,this.pos,!0,23,4),this.pos+=4},writeDouble:function(t){this.realloc(8),Z.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 i=0;i<e;i++)this.buf[this.pos++]=t[i]},writeRawMessage:function(t,e){this.pos++;var i=this.pos;t(e,this);var r=this.pos-i;r>=128&&W(i,r,this),this.pos=i-1,this.writeVarint(r),this.pos+=r},writeMessage:function(t,e,i){this.writeTag(t,R.Bytes),this.writeRawMessage(e,i)},writePackedVarint:function(t,e){e.length&&this.writeMessage(t,J,e)},writePackedSVarint:function(t,e){e.length&&this.writeMessage(t,H,e)},writePackedBoolean:function(t,e){e.length&&this.writeMessage(t,X,e)},writePackedFloat:function(t,e){e.length&&this.writeMessage(t,K,e)},writePackedDouble:function(t,e){e.length&&this.writeMessage(t,Q,e)},writePackedFixed32:function(t,e){e.length&&this.writeMessage(t,Y,e)},writePackedSFixed32:function(t,e){e.length&&this.writeMessage(t,tt,e)},writePackedFixed64:function(t,e){e.length&&this.writeMessage(t,et,e)},writePackedSFixed64:function(t,e){e.length&&this.writeMessage(t,it,e)},writeBytesField:function(t,e){this.writeTag(t,R.Bytes),this.writeBytes(e)},writeFixed32Field:function(t,e){this.writeTag(t,R.Fixed32),this.writeFixed32(e)},writeSFixed32Field:function(t,e){this.writeTag(t,R.Fixed32),this.writeSFixed32(e)},writeFixed64Field:function(t,e){this.writeTag(t,R.Fixed64),this.writeFixed64(e)},writeSFixed64Field:function(t,e){this.writeTag(t,R.Fixed64),this.writeSFixed64(e)},writeVarintField:function(t,e){this.writeTag(t,R.Varint),this.writeVarint(e)},writeSVarintField:function(t,e){this.writeTag(t,R.Varint),this.writeSVarint(e)},writeStringField:function(t,e){this.writeTag(t,R.Bytes),this.writeString(e)},writeFloatField:function(t,e){this.writeTag(t,R.Fixed32),this.writeFloat(e)},writeDoubleField:function(t,e){this.writeTag(t,R.Fixed64),this.writeDouble(e)},writeBooleanField:function(t,e){this.writeVarintField(t,Boolean(e))}};var ot=d(j);function at(t,e){return fetch(t,e).then((function(e){if(e.ok)return e.arrayBuffer();if(404!==e.status)throw function(...t){return new Error(t.join(": "))}(t,e.status,e.statusText)}))}function ut(t){return`${t.x}|${t.y}|${t.z}`}const ht={featureToLayer:N,filter:void 0,layerOrder:void 0,layers:void 0,minZoom:0,maxZoom:18,maxDetailZoom:void 0,minDetailZoom:void 0,subdomains:"abc",zoomOffset:0,zoomReverse:!1};var ft=Object.freeze((function(t,e){const i=new h(e),r=Object.getPrototypeOf(i),n={};"string"==typeof(e=f.extend({},ht,e)).subdomains&&(e.subdomains=e.subdomains.split("")),e.vectorTileLayerStyles&&!e.style&&(e.style=function(t,i,r){const{getFeatureId:s,vectorTileLayerStyles:o}=e;let a=o[i];if(s){const e=s(t);n[e]&&(a=n[e])}if("function"==typeof a&&(a=a(t.properties,r,t.type)),Array.isArray(a)){if(!a.length)return;a=a[0]}return a});const s={};let o;function a(t){const i=Math.abs(t.x+t.y)%e.subdomains.length;return e.subdomains[i]}function u(t){const{minDetailZoom:i,maxDetailZoom:r}=e;return void 0!==i&&t<i?i:void 0!==r&&r<t?r:t}function d(t){const{maxZoom:i,zoomReverse:r,zoomOffset:n}=e;return r&&(t=i-t),u(t+n)}function p(t){Object.keys(s).forEach((e=>s[e].eachFeatureLayer(t)))}return i.on("tileunload",(function(t){const e=ut(t.coords),r=s[e];r&&(r.eachFeatureLayer(i.removeFeatureLayer),delete s[e])})),i.onAdd=function(t,...e){return o=t,r.onAdd.call(i,t,...e)},i.onRemove=function(...t){return o=void 0,r.onRemove.call(i,...t)},i.createTile=function(t,r){const n=ut(t),o=l(t,i);return s[n]=o,at(i.getTileUrl(t),e.fetchOptions).then((function(t){o.addVectorTile(new B(new ot(t))),r(null,o)}),(function(t){r(t,o)})),o.domElement()},i.getTileUrl=function(r){const n={s:a(r),x:r.x,y:r.y,z:d(r.z)};return o.options.crs.infinite||(n["-y"]=i._globalTileRange.max.y-r.y),f.template(t,f.extend(n,e))},i.setStyle=function(t){return e.style=t,p((function(t,e,r,n){const{feature:s,layerName:o}=t,a=i.getFeatureStyle(s,o,n.coords().z);t.setStyle(a)})),i},i.setFeatureStyle=function(t,r){return n[t]=r,i.setStyle(e.style),i},i.resetFeatureStyle=function(t){return delete n[t],i.setStyle(e.style),i},i.getTileSize=function(){const t=r.getTileSize.call(i),e=i._tileZoom;return t.divideBy(o.getZoomScale(u(e),e)).round()},i.getFeatureStyle=function(t,i,r){if(e.filter&&!e.filter(t,i,r))return;const n=e.style;return"function"==typeof n?n(t,i,r):n},i.getOrderedLayers=function(t,i){t=e.layers||t;const r=e.layerOrder;return void 0!==r?r(t,i):t},i.featureToLayer=e.featureToLayer,i.addFeatureLayer=function(t){return t.addTo(o),t.addEventParent(i),i},i.removeFeatureLayer=function(t){return t.removeEventParent(i),t.removeFrom(o),i},i.getBounds=function(){let t;return p((function(e,i,r,n){const s=t=>o.unproject(n.global(t),n.coords().z),a=e.bbox(),u=c(s(a.min),s(a.max));t?t.extend(u):t=u})),t},i}));export{T as applyBasicStyle,L as applyImageStyle,O as applyPathStyle,ft as default,N as defaultFeatureLayer,z as featureCircleLayer,E as featureIconLayer,P as featureLayerBase,D as featurePathLayer};
//# sourceMappingURL=VectorTileLayer.min.js.map