leaflet-vector-tile-layer
Version:
Leaflet layer for vector tiles
5 lines (4 loc) • 23.5 kB
JavaScript
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("leaflet")):"function"==typeof define&&define.amd?define(["leaflet"],e):(t="undefined"!=typeof globalThis?globalThis:t||self).VectorTileLayer=e(t.L)}(this,(function(t){"use strict";var e=Object.freeze((function(e,i){const r={},n=i.getTileSize(),s=t.SVG.create("svg"),o=t.SVG.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 i(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var r=n;function n(t,e){this.x=t,this.y=e}n.prototype={clone:function(){return new n(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}},n.convert=function(t){return t instanceof n?t:Array.isArray(t)?new n(t[0],t[1]):t};var s=r,o=a;function a(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(u,this,e)}function u(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 h(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}a.types=["Unknown","Point","LineString","Polygon"],a.prototype.loadGeometry=function(){var t=this._pbf;t.pos=this._geometry;for(var e,i=t.readVarint()+t.pos,r=1,n=0,o=0,a=0,u=[];t.pos<i;){if(n<=0){var h=t.readVarint();r=7&h,n=h>>3}if(n--,1===r||2===r)o+=t.readSVarint(),a+=t.readSVarint(),1===r&&(e&&u.push(e),e=[]),e.push(new s(o,a));else{if(7!==r)throw new Error("unknown command "+r);e&&e.push(e[0].clone())}}return e&&u.push(e),u},a.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]},a.prototype.toGeoJSON=function(t,e,i){var r,n,s=this.extent*Math.pow(2,i),o=this.extent*t,u=this.extent*e,f=this.loadGeometry(),c=a.types[this.type];function l(t){for(var e=0;e<t.length;e++){var i=t[e],r=180-360*(i.y+u)/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 d=[];for(r=0;r<f.length;r++)d[r]=f[r][0];l(f=d);break;case 2:for(r=0;r<f.length;r++)l(f[r]);break;case 3:for(f=function(t){var e=t.length;if(e<=1)return[t];for(var i,r,n=[],s=0;s<e;s++){var o=h(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}(f),r=0;r<f.length;r++)for(n=0;n<f[r].length;n++)l(f[r][n])}1===f.length?f=f[0]:c="Multi"+c;var p={type:"Feature",geometry:{type:c,coordinates:f},properties:this.properties};return"id"in this&&(p.id=this.id),p};var f=o,c=l;function l(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(d,this,e),this.length=this._features.length}function d(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))}l.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 f(this._pbf,e,this.extent,this._keys,this._values)};var p=c,y=function(t,e){this.layers=t.readFields(g,{},e)};function g(t,e,i){if(3===t){var r=new p(i,i.readVarint()+i.pos);r.length&&(e[r.name]=r)}}var v=y,b=o;function w(e,i,r,n){const s=new t.Layer(n);return s.feature=e,s.layerName=i,s.properties=e.properties,s.addTo=function(t){s._map=t,s.addInteractiveTarget(s.graphics)},s.removeFrom=function(){s.removeInteractiveTarget(s.graphics),delete s._map},s.scalePoint=function(e){return t.point(e).scaleBy(r)},s.bbox=function(){const[i,r,n,o]=e.bbox();return t.bounds(s.scalePoint([i,r]),s.scalePoint([n,o]))},s.applyOptions=function(e){e.className&&t.DomUtil.addClass(s.graphics,e.className),s.setStyle({})},s}function x(e,i){i.interactive?(e.setAttribute("pointer-events","auto"),t.DomUtil.addClass(e,"leaflet-interactive")):(t.DomUtil.removeClass(e,"leaflet-interactive"),e.removeAttribute("pointer-events")),i.hidden?e.setAttribute("visibility","hidden"):e.removeAttribute("visibility")}function m(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 F(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 S(e,i,r,n){const s=w(e,i,r,n=t.extend({},t.CircleMarker.prototype.options,n)),o=s.scalePoint(e.loadGeometry()[0][0]);return s.graphics=t.SVG.create("circle"),s.graphics.setAttribute("cx",o.x),s.graphics.setAttribute("cy",o.y),s.setStyle=function(e){e=t.extend({},n,e),x(s.graphics,e),m(s.graphics,e),s.graphics.setAttribute("r",e.radius)},s.applyOptions(n),s}function V(e,i,r,n){const s=b.types[e.type],o=w(e,i,r,n=t.extend({},"Polygon"===s?t.Polygon.prototype.options:t.Path.prototype.options,n)),a=e.loadGeometry();return o.graphics=t.SVG.create("path"),o.graphics.setAttribute("d",t.SVG.pointsToPath(a.map((t=>t.map(o.scalePoint))),"Polygon"===s)),o.setStyle=function(e){e=t.extend({},n,e),x(o.graphics,e),m(o.graphics,e)},o.applyOptions(n),o}function _(e,i,r,n){const s=w(e,i,r,n);s.setStyle=function(e){e=t.extend({},n,e),x(s.graphics,e),F(s.graphics,e)},s.graphics=t.SVG.create("image");const o=s.scalePoint(e.loadGeometry()[0][0]),a=n.icon.options.iconAnchor||[0,0];return s.graphics.setAttribute("x",o.x-a[0]),s.graphics.setAttribute("y",o.y-a[1]),s.applyOptions(n),s}function M(t,e,i,r){switch(b.types[t.type]){case"Point":return r.icon?_(t,e,i,r):S(t,e,i,r);case"Polygon":case"LineString":return V(t,e,i,r);default:throw new Error("Unknown feature type")}}var B={
/*! 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}},k=A,P=B;function A(t){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(t)?t:new Uint8Array(t||0),this.pos=0,this.type=0,this.length=this.buf.length}A.Varint=0,A.Fixed64=1,A.Bytes=2,A.Fixed32=5;var T=4294967296,L=1/T,O="undefined"==typeof TextDecoder?null:new TextDecoder("utf8");function z(t){return t.type===A.Bytes?t.readVarint()+t.pos:t.pos+1}function D(t,e,i){return i?4294967296*e+(t>>>0):4294967296*(e>>>0)+(t>>>0)}function E(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 C(t,e){for(var i=0;i<t.length;i++)e.writeVarint(t[i])}function G(t,e){for(var i=0;i<t.length;i++)e.writeSVarint(t[i])}function U(t,e){for(var i=0;i<t.length;i++)e.writeFloat(t[i])}function N(t,e){for(var i=0;i<t.length;i++)e.writeDouble(t[i])}function j(t,e){for(var i=0;i<t.length;i++)e.writeBoolean(t[i])}function Z(t,e){for(var i=0;i<t.length;i++)e.writeFixed32(t[i])}function R(t,e){for(var i=0;i<t.length;i++)e.writeSFixed32(t[i])}function I(t,e){for(var i=0;i<t.length;i++)e.writeFixed64(t[i])}function q(t,e){for(var i=0;i<t.length;i++)e.writeSFixed64(t[i])}function $(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+16777216*t[e+3]}function W(t,e,i){t[i]=e,t[i+1]=e>>>8,t[i+2]=e>>>16,t[i+3]=e>>>24}function J(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+(t[e+3]<<24)}A.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=$(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=J(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=$(this.buf,this.pos)+$(this.buf,this.pos+4)*T;return this.pos+=8,t},readSFixed64:function(){var t=$(this.buf,this.pos)+J(this.buf,this.pos+4)*T;return this.pos+=8,t},readFloat:function(){var t=P.read(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=P.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 D(t,r,e);if(n=s[i.pos++],r|=(127&n)<<3,n<128)return D(t,r,e);if(n=s[i.pos++],r|=(127&n)<<10,n<128)return D(t,r,e);if(n=s[i.pos++],r|=(127&n)<<17,n<128)return D(t,r,e);if(n=s[i.pos++],r|=(127&n)<<24,n<128)return D(t,r,e);if(n=s[i.pos++],r|=(1&n)<<31,n<128)return D(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&&O?function(t,e,i){return O.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!==A.Bytes)return t.push(this.readVarint(e));var i=z(this);for(t=t||[];this.pos<i;)t.push(this.readVarint(e));return t},readPackedSVarint:function(t){if(this.type!==A.Bytes)return t.push(this.readSVarint());var e=z(this);for(t=t||[];this.pos<e;)t.push(this.readSVarint());return t},readPackedBoolean:function(t){if(this.type!==A.Bytes)return t.push(this.readBoolean());var e=z(this);for(t=t||[];this.pos<e;)t.push(this.readBoolean());return t},readPackedFloat:function(t){if(this.type!==A.Bytes)return t.push(this.readFloat());var e=z(this);for(t=t||[];this.pos<e;)t.push(this.readFloat());return t},readPackedDouble:function(t){if(this.type!==A.Bytes)return t.push(this.readDouble());var e=z(this);for(t=t||[];this.pos<e;)t.push(this.readDouble());return t},readPackedFixed32:function(t){if(this.type!==A.Bytes)return t.push(this.readFixed32());var e=z(this);for(t=t||[];this.pos<e;)t.push(this.readFixed32());return t},readPackedSFixed32:function(t){if(this.type!==A.Bytes)return t.push(this.readSFixed32());var e=z(this);for(t=t||[];this.pos<e;)t.push(this.readSFixed32());return t},readPackedFixed64:function(t){if(this.type!==A.Bytes)return t.push(this.readFixed64());var e=z(this);for(t=t||[];this.pos<e;)t.push(this.readFixed64());return t},readPackedSFixed64:function(t){if(this.type!==A.Bytes)return t.push(this.readSFixed64());var e=z(this);for(t=t||[];this.pos<e;)t.push(this.readSFixed64());return t},skip:function(t){var e=7&t;if(e===A.Varint)for(;this.buf[this.pos++]>127;);else if(e===A.Bytes)this.pos=this.readVarint()+this.pos;else if(e===A.Fixed32)this.pos+=4;else{if(e!==A.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),W(this.buf,t,this.pos),this.pos+=4},writeSFixed32:function(t){this.realloc(4),W(this.buf,t,this.pos),this.pos+=4},writeFixed64:function(t){this.realloc(8),W(this.buf,-1&t,this.pos),W(this.buf,Math.floor(t*L),this.pos+4),this.pos+=8},writeSFixed64:function(t){this.realloc(8),W(this.buf,-1&t,this.pos),W(this.buf,Math.floor(t*L),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&&E(e,i,this),this.pos=e-1,this.writeVarint(i),this.pos+=i},writeFloat:function(t){this.realloc(4),P.write(this.buf,t,this.pos,!0,23,4),this.pos+=4},writeDouble:function(t){this.realloc(8),P.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&&E(i,r,this),this.pos=i-1,this.writeVarint(r),this.pos+=r},writeMessage:function(t,e,i){this.writeTag(t,A.Bytes),this.writeRawMessage(e,i)},writePackedVarint:function(t,e){e.length&&this.writeMessage(t,C,e)},writePackedSVarint:function(t,e){e.length&&this.writeMessage(t,G,e)},writePackedBoolean:function(t,e){e.length&&this.writeMessage(t,j,e)},writePackedFloat:function(t,e){e.length&&this.writeMessage(t,U,e)},writePackedDouble:function(t,e){e.length&&this.writeMessage(t,N,e)},writePackedFixed32:function(t,e){e.length&&this.writeMessage(t,Z,e)},writePackedSFixed32:function(t,e){e.length&&this.writeMessage(t,R,e)},writePackedFixed64:function(t,e){e.length&&this.writeMessage(t,I,e)},writePackedSFixed64:function(t,e){e.length&&this.writeMessage(t,q,e)},writeBytesField:function(t,e){this.writeTag(t,A.Bytes),this.writeBytes(e)},writeFixed32Field:function(t,e){this.writeTag(t,A.Fixed32),this.writeFixed32(e)},writeSFixed32Field:function(t,e){this.writeTag(t,A.Fixed32),this.writeSFixed32(e)},writeFixed64Field:function(t,e){this.writeTag(t,A.Fixed64),this.writeFixed64(e)},writeSFixed64Field:function(t,e){this.writeTag(t,A.Fixed64),this.writeSFixed64(e)},writeVarintField:function(t,e){this.writeTag(t,A.Varint),this.writeVarint(e)},writeSVarintField:function(t,e){this.writeTag(t,A.Varint),this.writeSVarint(e)},writeStringField:function(t,e){this.writeTag(t,A.Bytes),this.writeString(e)},writeFloatField:function(t,e){this.writeTag(t,A.Fixed32),this.writeFloat(e)},writeDoubleField:function(t,e){this.writeTag(t,A.Fixed64),this.writeDouble(e)},writeBooleanField:function(t,e){this.writeVarintField(t,Boolean(e))}};var H=i(k);function K(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 Q(t){return`${t.x}|${t.y}|${t.z}`}const X={featureToLayer:M,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 Y=Object.freeze((function(i,r){const n=new t.GridLayer(r),s=Object.getPrototypeOf(n),o={};"string"==typeof(r=t.Util.extend({},X,r)).subdomains&&(r.subdomains=r.subdomains.split("")),r.vectorTileLayerStyles&&!r.style&&(r.style=function(t,e,i){const{getFeatureId:n,vectorTileLayerStyles:s}=r;let a=s[e];if(n){const e=n(t);o[e]&&(a=o[e])}if("function"==typeof a&&(a=a(t.properties,i,t.type)),Array.isArray(a)){if(!a.length)return;a=a[0]}return a});const a={};let u;function h(t){const e=Math.abs(t.x+t.y)%r.subdomains.length;return r.subdomains[e]}function f(t){const{minDetailZoom:e,maxDetailZoom:i}=r;return void 0!==e&&t<e?e:void 0!==i&&i<t?i:t}function c(t){const{maxZoom:e,zoomReverse:i,zoomOffset:n}=r;return i&&(t=e-t),f(t+n)}function l(t){Object.keys(a).forEach((e=>a[e].eachFeatureLayer(t)))}return n.on("tileunload",(function(t){const e=Q(t.coords),i=a[e];i&&(i.eachFeatureLayer(n.removeFeatureLayer),delete a[e])})),n.onAdd=function(t,...e){return u=t,s.onAdd.call(n,t,...e)},n.onRemove=function(...t){return u=void 0,s.onRemove.call(n,...t)},n.createTile=function(t,i){const s=Q(t),o=e(t,n);return a[s]=o,K(n.getTileUrl(t),r.fetchOptions).then((function(t){o.addVectorTile(new v(new H(t))),i(null,o)}),(function(t){i(t,o)})),o.domElement()},n.getTileUrl=function(e){const s={s:h(e),x:e.x,y:e.y,z:c(e.z)};return u.options.crs.infinite||(s["-y"]=n._globalTileRange.max.y-e.y),t.Util.template(i,t.Util.extend(s,r))},n.setStyle=function(t){return r.style=t,l((function(t,e,i,r){const{feature:s,layerName:o}=t,a=n.getFeatureStyle(s,o,r.coords().z);t.setStyle(a)})),n},n.setFeatureStyle=function(t,e){return o[t]=e,n.setStyle(r.style),n},n.resetFeatureStyle=function(t){return delete o[t],n.setStyle(r.style),n},n.getTileSize=function(){const t=s.getTileSize.call(n),e=n._tileZoom;return t.divideBy(u.getZoomScale(f(e),e)).round()},n.getFeatureStyle=function(t,e,i){if(r.filter&&!r.filter(t,e,i))return;const n=r.style;return"function"==typeof n?n(t,e,i):n},n.getOrderedLayers=function(t,e){t=r.layers||t;const i=r.layerOrder;return void 0!==i?i(t,e):t},n.featureToLayer=r.featureToLayer,n.addFeatureLayer=function(t){return t.addTo(u),t.addEventParent(n),n},n.removeFeatureLayer=function(t){return t.removeEventParent(n),t.removeFrom(u),n},n.getBounds=function(){let e;return l((function(i,r,n,s){const o=t=>u.unproject(s.global(t),s.coords().z),a=i.bbox(),h=t.latLngBounds(o(a.min),o(a.max));e?e.extend(h):e=h})),e},n}));function tt(...t){return Y(...t)}return Object.assign(tt,{default:Y,applyBasicStyle:x,applyImageStyle:F,applyPathStyle:m,defaultFeatureLayer:M,featureCircleLayer:S,featureIconLayer:_,featureLayerBase:w,featurePathLayer:V}),Object.freeze(tt)}));
//# sourceMappingURL=VectorTileLayer.umd.min.js.map