dgeoutils 2.2.24 → 2.3.0

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.
Files changed (49) hide show
  1. package/dist/{DCircle.d.ts → cjs/DCircle.d.ts} +0 -0
  2. package/dist/cjs/DCircle.js +102 -0
  3. package/dist/{DLine.d.ts → cjs/DLine.d.ts} +0 -0
  4. package/dist/cjs/DLine.js +300 -0
  5. package/dist/{DNumbers.d.ts → cjs/DNumbers.d.ts} +0 -0
  6. package/dist/cjs/DNumbers.js +30 -0
  7. package/dist/{DPlane.d.ts → cjs/DPlane.d.ts} +0 -0
  8. package/dist/cjs/DPlane.js +132 -0
  9. package/dist/{DPoint.d.ts → cjs/DPoint.d.ts} +0 -0
  10. package/dist/cjs/DPoint.js +574 -0
  11. package/dist/{DPolygon.d.ts → cjs/DPolygon.d.ts} +0 -0
  12. package/dist/cjs/DPolygon.js +1555 -0
  13. package/dist/{DPolygonLoop.d.ts → cjs/DPolygonLoop.d.ts} +0 -0
  14. package/dist/cjs/DPolygonLoop.js +401 -0
  15. package/dist/{FastSearch.d.ts → cjs/FastSearch.d.ts} +0 -0
  16. package/dist/cjs/FastSearch.js +53 -0
  17. package/dist/{TraceMatrix.d.ts → cjs/TraceMatrix.d.ts} +0 -0
  18. package/dist/cjs/TraceMatrix.js +256 -0
  19. package/dist/{index.d.ts → cjs/index.d.ts} +0 -0
  20. package/dist/{index.js → cjs/index.js} +0 -0
  21. package/dist/{utils.d.ts → cjs/utils.d.ts} +0 -0
  22. package/dist/cjs/utils.js +191 -0
  23. package/dist/{DCircle.js → es2015/DCircle.js} +14 -18
  24. package/dist/{DLine.js → es2015/DLine.js} +24 -28
  25. package/dist/es2015/DNumbers.js +22 -0
  26. package/dist/{DPlane.js → es2015/DPlane.js} +22 -26
  27. package/dist/{DPoint.js → es2015/DPoint.js} +52 -56
  28. package/dist/{DPolygon.js → es2015/DPolygon.js} +41 -45
  29. package/dist/{DPolygonLoop.js → es2015/DPolygonLoop.js} +1 -5
  30. package/dist/{FastSearch.js → es2015/FastSearch.js} +1 -5
  31. package/dist/{TraceMatrix.js → es2015/TraceMatrix.js} +35 -39
  32. package/dist/es2015/index.js +13 -0
  33. package/dist/{utils.js → es2015/utils.js} +26 -36
  34. package/dist/esm/DCircle.js +99 -0
  35. package/dist/esm/DLine.js +297 -0
  36. package/dist/esm/DNumbers.js +27 -0
  37. package/dist/esm/DPlane.js +129 -0
  38. package/dist/esm/DPoint.js +571 -0
  39. package/dist/esm/DPolygon.js +1552 -0
  40. package/dist/esm/DPolygonLoop.js +398 -0
  41. package/dist/esm/FastSearch.js +50 -0
  42. package/dist/esm/TraceMatrix.js +253 -0
  43. package/dist/esm/index.js +13 -0
  44. package/dist/esm/utils.js +181 -0
  45. package/dist/umd/dgeoutils.js +3569 -0
  46. package/dist/umd/dgeoutils.min.js +1 -0
  47. package/dist/umd/dgeoutils.min.js.map +1 -0
  48. package/package.json +17 -10
  49. package/dist/DNumbers.js +0 -26
@@ -0,0 +1 @@
1
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("jsts")):"function"==typeof define&&define.amd?define(["exports","jsts"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).DGeoUtils={},t.jsts)}(this,function(d,c){"use strict";function x(t){return function(){return t}}function l(b){return{checkArgument:function(t){return et.DEBUG?{shouldBeDegree:function(t){return t.likeWorldGeodeticSystem||P('"'+v+'" -> "'+m+'" should be degree!'),g},shouldBeMeters:function(t){return t.likePseudoMercator||P('"'+d+'" -> "'+y+'" should be meters!'),p},shouldBeInt:function(t){return t.clone().round().equal(t)||P('"'+l+'" -> "'+f+'" should be Int!'),c},shouldBeUInt:function(t){return t.clone().round().equal(t)&&t.gtOrEqual(M.zero())||P('"'+u+'" -> "'+h+'" should be UInt!'),a},shouldBeRadians:function(t){return t.likeRadians||P('"'+o+'" -> "'+s+'" should be radians!'),i},shouldExist:(e=i=a=c=p=g=this,r=o=u=l=d=v=b,n=s=h=f=y=m=t,function(t){return w(t)||P('"'+r+'" -> "'+n+'" should exist!'),e})}:{shouldBeDegree:x(this),shouldBeMeters:x(this),shouldBeInt:x(this),shouldBeUInt:x(this),shouldBeRadians:x(this),shouldExist:x(this)};var e,r,n,i,o,s,a,u,h,c,l,f,p,d,y,g,v,m}}}function f(t,e){var r=t.h,n=t.w;return void 0===e&&(e=0),g(r).map(function(){return g(n,e)})}function p(t){for(var e=t.length,r=f(new M(e+1,e)),n=0;n<e;n++)for(var i=0;i<e+1;i++)t[n][i]=0===t[n][i]?p.MIN:t[n][i],r[n][i]=t[n][i];for(var o=0;o<e;o++){for(n=0;n<e+1;n++)r[o][n]/=t[o][o];for(n=o+1;n<e;n++)for(var s=r[n][o]/r[o][o],i=0;i<e+1;i++)r[n][i]-=r[o][i]*s;for(n=0;n<e;n++)for(i=0;i<e+1;i++)t[n][i]=r[n][i]}for(o=e-1;-1<o;o--){for(n=e;-1<n;n--)r[o][n]/=t[o][o];for(n=o-1;-1<n;n--)for(s=r[n][o]/r[o][o],i=e;-1<i;i--)r[n][i]-=r[o][i]*s}for(var a=g(e),n=0;n<e;n++)a[n]=r[n][e];return a}function y(t,e,r){var n=0,i=0,o=!1,e=(i=t instanceof M?(n=t.x,t.y):n=t,"boolean"==typeof e?o=e:"number"==typeof e&&(i=e),(o="boolean"==typeof r?r:o)?new OffscreenCanvas(n,i):(null!==(t=y.document)&&void 0!==t?t:document).createElement("canvas"));return o||(e.width=n,e.height=i),[e,e.getContext("2d")]}var r=function(t,e){var r="function"==typeof Symbol&&t[Symbol.iterator];if(!r)return t;var n,i,o=r.call(t),s=[];try{for(;(void 0===e||0<e--)&&!(n=o.next()).done;)s.push(n.value)}catch(t){i={error:t}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(i)throw i.error}}return s},n=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,o=e.length;i<o;i++)!n&&i in e||((n=n||Array.prototype.slice.call(e,0,i))[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))},P=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];et.DEBUG&&console.warn.apply(console,n([],r(t),!1))},w=function(t){return null!=t},g=function(t,e){return void 0===e&&(e=0),new Array(t).fill(e)},h=(p.MIN=1e-10,i.like=function(t,e,r){return void 0===r&&(r=.001),Math.abs(t-e)<r},i.likeZero=function(t){return i.like(t,0)},i.like2PI=function(t){return i.like(i.rad2Deg(t),F)},i.likePI=function(t){return i.like(i.rad2Deg(t),C)},i.rad2Deg=function(t){return t*E},i.deg2Rad=function(t){return t*Y},i);function i(){}s.prototype.clone=function(){return new s(this.a,this.b,this.c,this.begin.clone(),this.end.clone())},s.prototype.findPerpendicular=function(t){return l("findPerpendicular").checkArgument("this.begin").shouldBeMeters(this.begin).checkArgument("this.end").shouldBeMeters(this.end).checkArgument("p").shouldBeMeters(t),new s(-this.b,this.a,this.b*t.x-this.a*t.y)},s.prototype.perpendicularDistance=function(t){return l("perpendicularDistance").checkArgument("this.begin").shouldBeMeters(this.begin).checkArgument("this.end").shouldBeMeters(this.end).checkArgument("p").shouldBeMeters(t),this.findPerpendicular(t).findPoint(this).distance(t)},s.prototype.intersection=function(t,e,r){void 0===e&&(e=0),void 0===r&&(r=!1);var n=this.findPoint(t);return n?r?this.insideRange(n,e)&&t.insideRange(n,e)?n:null:this.inRange(n,e)&&t.inRange(n,e)?n:null:null},s.prototype.intersectionWithCircle=function(t){var e=t.center,t=t.r,r=this.findPerpendicular(e),r=this.findPoint(r),n=r.distance(e);if(this.begin.equal(e)&&(n=0),(n=this.end.equal(e)?0:n)<t){var i,o=this.a,s=this.b,a=this.c;if(this.isParallel){var u=e.distance(r),u=Math.sqrt(t*t-u*u);if(this.isParallelY)return r.x=this.begin.x,[r.clone().move(0,-u),r.clone().move(0,u)];if(this.isParallelX)return r.y=this.begin.y,[r.clone().move(u,0),r.clone().move(-u,0)]}if(this.begin.like(e))return i=this.begin.clone(),[this.movePoint(i,t),this.movePoint(i,-t)];if(this.end.like(e))return i=this.end.clone(),[this.movePoint(i,t),this.movePoint(i,-t)];u=o*o+s*s,e=Math.sqrt((t*t-a*a/u)/u);return[r.clone().move(s*e,-o*e),r.clone().move(-s*e,o*e)]}return n===t?r:null},s.prototype.inRange=function(t,e){var r=this.minX,n=this.minY,i=this.maxX,o=this.maxY,s=t.x,t=t.y;return r-(e=void 0===e?0:e)<=s&&s<=i+e&&(n-e<=t&&t<=o+e)},s.prototype.insideRange=function(t,e){var r=this.begin,n=this.end;return this.inRange(t,e=void 0===e?0:e)&&!r.like(t,1e-5)&&!n.like(t,1e-5)},Object.defineProperty(s.prototype,"center",{get:function(){return this.begin.clone().setIfLessThan(this.end).move(this.end.clone().move(this.begin.clone().minus()).abs().minus().divide(2))},enumerable:!1,configurable:!0}),Object.defineProperty(s.prototype,"minX",{get:function(){return Math.min(this.begin.x,this.end.x)},enumerable:!1,configurable:!0}),Object.defineProperty(s.prototype,"minY",{get:function(){return Math.min(this.begin.y,this.end.y)},enumerable:!1,configurable:!0}),Object.defineProperty(s.prototype,"maxX",{get:function(){return Math.max(this.begin.x,this.end.x)},enumerable:!1,configurable:!0}),Object.defineProperty(s.prototype,"maxY",{get:function(){return Math.max(this.begin.y,this.end.y)},enumerable:!1,configurable:!0}),s.prototype.toString=function(){return"("+this.a+", "+this.b+", "+this.c+")"},s.prototype.getValue=function(){return[this.a,this.b,this.c]},s.prototype.x=function(t){return this.isParallelY?new M(-this.c/this.a,t.y):this.isParallelX?new M(t.x,-this.c/this.b):new M(-this.b/this.a*t.y-this.c/this.a,t.y)},s.prototype.y=function(t){return this.isParallelY?new M(-this.c/this.a,t.y):this.isParallelX?new M(t.x,-this.c/this.b):new M(t.x,-this.a/this.b*t.x-this.c/this.b)},s.prototype.findPoint=function(t){if(this.isParallelY&&t.isParallelY)return null;if(this.isParallelX&&t.isParallelX)return null;if(this.isParallelX&&t.isParallelY)return new M(-t.c/t.a,-this.c/this.b);if(this.isParallelY&&t.isParallelX)return new M(-this.c/this.a,-t.c/t.b);var e;if(this.isParallelY)return r=-this.c/this.a,t.y(new M(r));if(this.isParallelX)return e=-this.c/this.b,t.x(new M(0,e));if(t.isParallelY)return r=-t.c/t.a,this.y(new M(r));if(t.isParallelX)return e=-t.c/t.b,this.x(new M(0,e));var r=this.y(new M((t.c/t.b-this.c/this.b)/(this.a/this.b-t.a/t.b)));return isFinite(r.x)||isFinite(r.y)?r:null},Object.defineProperty(s.prototype,"isParallel",{get:function(){return this.isParallelX||this.isParallelY},enumerable:!1,configurable:!0}),Object.defineProperty(s.prototype,"isParallelY",{get:function(){return Math.abs(this.b)<.001},enumerable:!1,configurable:!0}),Object.defineProperty(s.prototype,"isParallelX",{get:function(){return Math.abs(this.a)<.001},enumerable:!1,configurable:!0}),Object.defineProperty(s.prototype,"points",{get:function(){return[this.begin,this.end]},enumerable:!1,configurable:!0}),s.prototype.getFi=function(){l("getFi").checkArgument("this.begin").shouldBeMeters(this.begin).checkArgument("this.end").shouldBeMeters(this.end);var t=this.end.clone().move(this.begin.clone().minus()),e=t.x,t=t.y,t=Math.atan2(t,e)-Math.PI;return 0<t&&(t=Math.PI-t),(Math.PI-t)%(2*Math.PI)},s.prototype.toWKT=function(){var t=this.begin,e=t.x,t=t.y,r=this.end;return"LINESTRING ("+e+" "+t+", "+r.x+" "+r.y+")"},s.prototype.movePoint=function(t,e){var r=this.findFi(new s(1,0,0)),n=this.x(new M(1,1)).distance(this.x(new M(2,2)))/2,r=new M(Math.sin(r),Math.cos(r)),n=r.clone().scale(n),i=t.clone().move(n.clone().minus()),n=t.clone().move(n);return h.like(this.y(i).y,i.y)||h.like(this.y(n).y,n.y)?t.clone().move(r.scale(e)):t.clone().move(r.scale(e).setX(function(t){return-t.x}))},s.prototype.findFi=function(t,e){var r=t.a,t=t.b,n=(void 0===e&&(e=1.0001),this.a),i=this.b,n=(n*r+i*t)/(Math.sqrt(n*n+i*i)*Math.sqrt(r*r+t*t));return 1<n&&n<e?n=1:n<-1&&-e<n&&(n=-1),Math.acos(n)},s.prototype.vectorProduct=function(t){var e=t.a,r=t.b,t=t.c,n=this.a,i=this.b,o=this.c;return new s(i*t-o*r,o*e-n*t,n*r-i*e)};var u,T=s;function s(t,e,r,n,i){void 0===n&&(n=M.zero()),void 0===i&&(i=M.zero()),this.a=t,this.b=e,this.c=r,this.begin=n,this.end=i}(e=u=u||{})[e.getTileFromCoords=0]="getTileFromCoords",e[e.getCoordsFromTile=1]="getCoordsFromTile",e[e.height=2]="height",e[e.setX=3]="setX",e[e.setY=4]="setY",e[e.setZ=5]="setZ",e[e.rotate=6]="rotate",e[e.rotate3dX=7]="rotate3dX",e[e.rotate3dY=8]="rotate3dY",e[e.rotate3dZ=9]="rotate3dZ",e[e.move=10]="move",e[e.round=11]="round",e[e.ceil=12]="ceil",e[e.floor=13]="floor",e[e.toFixed=14]="toFixed",e[e.abs=15]="abs",e[e.scale=16]="scale",e[e.divide=17]="divide",e[e.degreeToRadians=18]="degreeToRadians",e[e.radiansToDegrees=19]="radiansToDegrees",e[e.radiansToMeters=20]="radiansToMeters",e[e.metersToRadians=21]="metersToRadians",e[e.hipPoint=22]="hipPoint",e[e.xPoint=23]="xPoint",e[e.yPoint=24]="yPoint",e[e.wPoint=25]="wPoint",e[e.hPoint=26]="hPoint",e[e.setIfLessThan=27]="setIfLessThan",e[e.minus=28]="minus",e[e.degreeToMeters=29]="degreeToMeters",e[e.metersToDegree=30]="metersToDegree",e[e.flipVertically=31]="flipVertically";function o(e,t){var r=t.functionName,n=t.pointArg,i=t.numberPointArg,o=t.numberArg,s=t.setterArg,a=e;switch(r){case u.getTileFromCoords:a=function(t){return e(t).getTileFromCoords(o)};break;case u.getCoordsFromTile:a=function(t){return e(t).getCoordsFromTile(o)};break;case u.height:a=function(t){return e(t).height(o)};break;case u.setX:a=function(t){return e(t).setX(s)};break;case u.setY:a=function(t){return e(t).setY(s)};break;case u.setZ:a=function(t){return e(t).setZ(s)};break;case u.rotate:a=function(t){return e(t).rotate(o)};break;case u.rotate3dX:a=function(t){return e(t).rotate3dX(o)};break;case u.rotate3dY:a=function(t){return e(t).rotate3dY(o)};break;case u.rotate3dZ:a=function(t){return e(t).rotate3dZ(o)};break;case u.move:a=function(t){return e(t).move(i,o)};break;case u.round:a=function(t){return e(t).round()};break;case u.ceil:a=function(t){return e(t).ceil()};break;case u.floor:a=function(t){return e(t).floor()};break;case u.toFixed:a=function(t){return e(t).toFixed(o)};break;case u.abs:a=function(t){return e(t).abs()};break;case u.scale:a=function(t){return e(t).scale(i,o)};break;case u.divide:a=function(t){return e(t).divide(i,o)};break;case u.degreeToRadians:a=function(t){return e(t).degreeToRadians()};break;case u.radiansToDegrees:a=function(t){return e(t).radiansToDegrees()};break;case u.radiansToMeters:a=function(t){return e(t).radiansToMeters()};break;case u.metersToRadians:a=function(t){return e(t).metersToRadians()};break;case u.hipPoint:a=function(t){return e(t).hipPoint};break;case u.xPoint:a=function(t){return e(t).xPoint};break;case u.yPoint:a=function(t){return e(t).yPoint};break;case u.wPoint:a=function(t){return e(t).wPoint};break;case u.hPoint:a=function(t){return e(t).hPoint};break;case u.setIfLessThan:a=function(t){return e(t).setIfLessThan(n)};break;case u.minus:a=function(t){return e(t).minus()};break;case u.degreeToMeters:a=function(t){return e(t).degreeToMeters()};break;case u.metersToDegree:a=function(t){return e(t).metersToDegree()};break;case u.flipVertically:a=function(t){return e(t).flipVertically(i)}}return a}t.prototype.getLoopFunction=function(){return this.pool.reduce(o,function(t){return t})},t.prototype.run=function(){return this.parent.map(this.getLoopFunction())},t.prototype.getTileFromCoords=function(t){return this.pool.push({functionName:u.getTileFromCoords,numberArg:t}),this},t.prototype.getCoordsFromTile=function(t){return this.pool.push({functionName:u.getCoordsFromTile,numberArg:t}),this},t.prototype.height=function(t){return this.pool.push({functionName:u.height,numberArg:t}),this},t.prototype.setX=function(t){return this.pool.push({functionName:u.setX,setterArg:t}),this},t.prototype.setY=function(t){return this.pool.push({functionName:u.setY,setterArg:t}),this},t.prototype.setZ=function(t){return this.pool.push({functionName:u.setZ,setterArg:t}),this},t.prototype.rotate=function(t){return this.pool.push({functionName:u.rotate,numberArg:t}),this},t.prototype.rotate3dX=function(t){return this.pool.push({functionName:u.rotate3dX,numberArg:t}),this},t.prototype.rotate3dY=function(t){return this.pool.push({functionName:u.rotate3dY,numberArg:t}),this},t.prototype.rotate3dZ=function(t){return this.pool.push({functionName:u.rotate3dZ,numberArg:t}),this},t.prototype.move=function(t,e){return this.pool.push({functionName:u.move,numberPointArg:t,numberArg:e=void 0===e?t:e}),this},t.prototype.round=function(){return this.pool.push({functionName:u.round}),this},t.prototype.ceil=function(){return this.pool.push({functionName:u.ceil}),this},t.prototype.floor=function(){return this.pool.push({functionName:u.floor}),this},t.prototype.toFixed=function(t){return this.pool.push({functionName:u.toFixed,numberArg:t=void 0===t?2:t}),this},t.prototype.abs=function(){return this.pool.push({functionName:u.abs}),this},t.prototype.scale=function(t,e){return this.pool.push({functionName:u.scale,numberPointArg:t,numberArg:e=void 0===e?t:e}),this},t.prototype.divide=function(t,e){return this.pool.push({functionName:u.divide,numberPointArg:t,numberArg:e}),this},t.prototype.degreeToRadians=function(){return this.pool.push({functionName:u.degreeToRadians}),this},t.prototype.radiansToDegrees=function(){return this.pool.push({functionName:u.radiansToDegrees}),this},t.prototype.radiansToMeters=function(){return this.pool.push({functionName:u.radiansToMeters}),this},t.prototype.metersToRadians=function(){return this.pool.push({functionName:u.metersToRadians}),this},t.prototype.getHipPoint=function(){return this.pool.push({functionName:u.hipPoint}),this},t.prototype.getXPoint=function(){return this.pool.push({functionName:u.xPoint}),this},t.prototype.getYPoint=function(){return this.pool.push({functionName:u.yPoint}),this},t.prototype.getWPoint=function(){return this.pool.push({functionName:u.wPoint}),this},t.prototype.getHPoint=function(){return this.pool.push({functionName:u.hPoint}),this},t.prototype.setIfLessThan=function(t){return this.pool.push({functionName:u.setIfLessThan,pointArg:t}),this},t.prototype.minus=function(){return this.pool.push({functionName:u.minus}),this},t.prototype.degreeToMeters=function(){return this.pool.push({functionName:u.degreeToMeters}),this},t.prototype.metersToDegree=function(){return this.pool.push({functionName:u.metersToDegree}),this},t.prototype.flipVertically=function(t){return this.pool.push({functionName:u.flipVertically,numberPointArg:t}),this};var v=t;function t(t){this.parent=t,this.pool=[]}var m=function(n,i){var o,s,a,u={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},t={next:e(0),throw:e(1),return:e(2)};return"function"==typeof Symbol&&(t[Symbol.iterator]=function(){return this}),t;function e(r){return function(t){var e=[r,t];if(o)throw new TypeError("Generator is already executing.");for(;u;)try{if(o=1,s&&(a=2&e[0]?s.return:e[0]?s.throw||((a=s.return)&&a.call(s),0):s.next)&&!(a=a.call(s,e[1])).done)return a;switch(s=0,(e=a?[2&e[0],a.value]:e)[0]){case 0:case 1:a=e;break;case 4:return u.label++,{value:e[1],done:!1};case 5:u.label++,s=e[1],e=[0];continue;case 7:e=u.ops.pop(),u.trys.pop();continue;default:if(!(a=0<(a=u.trys).length&&a[a.length-1])&&(6===e[0]||2===e[0])){u=0;continue}if(3===e[0]&&(!a||e[1]>a[0]&&e[1]<a[3])){u.label=e[1];break}if(6===e[0]&&u.label<a[1]){u.label=a[1],a=e;break}if(a&&u.label<a[2]){u.label=a[2],u.ops.push(e);break}a[2]&&u.ops.pop(),u.trys.pop();continue}e=i.call(n,u)}catch(t){e=[6,t],s=0}finally{o=a=0}if(5&e[0])throw e[1];return{value:e[0]?e[1]:void 0,done:!0}}}},S=function(t){var e="function"==typeof Symbol&&Symbol.iterator,r=e&&t[e],n=0;if(r)return r.call(t);if(t&&"number"==typeof t.length)return{next:function(){return{value:(t=t&&n>=t.length?void 0:t)&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")},z=function(t,e){var r="function"==typeof Symbol&&t[Symbol.iterator];if(!r)return t;var n,i,o=r.call(t),s=[];try{for(;(void 0===e||0<e--)&&!(n=o.next()).done;)s.push(n.value)}catch(t){i={error:t}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(i)throw i.error}}return s},k=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,o=e.length;i<o;i++)!n&&i in e||((n=n||Array.prototype.slice.call(e,0,i))[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))},e=c.operation.buffer.BufferParameters,b=e.CAP_ROUND,I=e.CAP_FLAT,e=e.CAP_SQUARE,O=(N.arrayOfTrianglesToVertices=function(t,e){return t.map(function(t){return(w(e)?t.loop().height(e).run():t).toArrayOfCoords()}).flat(2)},N.minAreaRectangleSize=function(t){var t=t.clone().open(),e=t.first,r=t.second,t=t.last;return new M(e.distance(r),e.distance(t))},N.toDash=function(t){var e,r,n=new N,i=[n],o=!0;try{for(var s=S(t.points),a=s.next();!a.done;a=s.next()){var u=a.value;o&&n.push(u.clone()),u.properties.pieceBorder&&(o=!o)&&(n=new N,i.push(n),n.push(u.clone()))}}catch(t){e={error:t}}finally{try{a&&!a.done&&(r=s.return)&&r.call(s)}finally{if(e)throw e.error}}return i},N.minAreaRectangleDirection=function(t){var t=t.clone().open(),e=t.first,r=t.second,t=t.last;return e&&r&&t?(e.distance(r)>e.distance(t)?e.findLine(r):e.findLine(t)).getFi():0},N.parseFromWKT=function(t){var e,r,n,t=t.trim().toUpperCase(),i=new N;return 0===t.indexOf("POLYGON")&&(n=/POLYGON \(\((?<data>(?:(?!\)\)$).)*?)\)\)$/imu.exec(t),e=(r=z(n.groups.data.split("), (").map(function(t){return new N(t.split(", ").map(function(t){return M.parse(t.split(" ").map(Number))}))})))[0],(r=r.slice(1))&&r.length&&(e.holes=r),i=e),0===t.indexOf("LINESTRING")&&(i=new N((n=/LINESTRING \((?<data>(?:(?!\)$).)*?)\)$/imu.exec(t)).groups.data.split(", ").map(function(t){return M.parse(t.split(" ").map(Number))}))),i=0===t.indexOf("POINT")?new N([M.parseFromWKT(t)]):i},N.createSquareBySize=function(t){return new N([M.zero(),t.clone().setX(0),t.clone(),t.clone().setY(0)]).close()},N.prototype.loop=function(){return new v(this)},Object.defineProperty(N.prototype,"points",{get:function(){return this.pPoints},set:function(t){this.pPoints=t},enumerable:!1,configurable:!0}),Object.defineProperty(N.prototype,"maxX",{get:function(){return this.reduce(function(t,e){return Math.max(t,e.x)},-1/0)},enumerable:!1,configurable:!0}),Object.defineProperty(N.prototype,"minX",{get:function(){return this.reduce(function(t,e){return Math.min(t,e.x)},1/0)},enumerable:!1,configurable:!0}),Object.defineProperty(N.prototype,"maxY",{get:function(){return this.reduce(function(t,e){return Math.max(t,e.y)},-1/0)},enumerable:!1,configurable:!0}),Object.defineProperty(N.prototype,"minY",{get:function(){return this.reduce(function(t,e){return Math.min(t,e.y)},1/0)},enumerable:!1,configurable:!0}),Object.defineProperty(N.prototype,"center",{get:function(){return this.leftTop.move(this.size.divide(2))},enumerable:!1,configurable:!0}),Object.defineProperty(N.prototype,"h",{get:function(){return this.maxY-this.minY},enumerable:!1,configurable:!0}),Object.defineProperty(N.prototype,"w",{get:function(){return this.maxX-this.minX},enumerable:!1,configurable:!0}),Object.defineProperty(N.prototype,"dY",{get:function(){return this.h},enumerable:!1,configurable:!0}),Object.defineProperty(N.prototype,"dX",{get:function(){return this.w},enumerable:!1,configurable:!0}),Object.defineProperty(N.prototype,"extend",{get:function(){var t=this.minX,e=this.minY,r=this.maxX,n=this.maxY;return new N([new M(t,e),new M(r,e),new M(r,n),new M(t,n),new M(t,e)])},enumerable:!1,configurable:!0}),Object.defineProperty(N.prototype,"size",{get:function(){var t=this.w,e=this.h;return new M(t,e)},enumerable:!1,configurable:!0}),Object.defineProperty(N.prototype,"leftTop",{get:function(){var t=this.minX,e=this.minY;return new M(t,e)},enumerable:!1,configurable:!0}),Object.defineProperty(N.prototype,"rightBottom",{get:function(){var t=this.maxX,e=this.maxY;return new M(t,e)},enumerable:!1,configurable:!0}),Object.defineProperty(N.prototype,"length",{get:function(){return this.pPoints.length},enumerable:!1,configurable:!0}),Object.defineProperty(N.prototype,"fullLength",{get:function(){return this.clone().open().perimeter},enumerable:!1,configurable:!0}),Object.defineProperty(N.prototype,"perimeter",{get:function(){var e,t,r=0;try{for(var n=S(this.loopPointsGenerator()()),i=n.next();!i.done;i=n.next()){var o=z(i.value,2),s=o[0],a=o[1];r+=s.distance(a)}}catch(t){e={error:t}}finally{try{i&&!i.done&&(t=n.return)&&t.call(n)}finally{if(e)throw e.error}}return r},enumerable:!1,configurable:!0}),Object.defineProperty(N.prototype,"area",{get:function(){var e,t,r=0;try{for(var n=S(this.deintersection.loopPointsGenerator()()),i=n.next();!i.done;i=n.next()){var o=z(i.value,2),s=o[0],a=s.x,u=s.y,h=o[1],c=h.x;r+=a*h.y-u*c}}catch(t){e={error:t}}finally{try{i&&!i.done&&(t=n.return)&&t.call(n)}finally{if(e)throw e.error}}return Math.abs(r/2)-this.holes.reduce(function(t,e){return t+e.area},0)},enumerable:!1,configurable:!0}),Object.defineProperty(N.prototype,"deintersection",{get:function(){for(var e,t,i=this.clone().close(),r={},o=0;o<i.length-1;o++)for(var n=i.at(o).toString(),s=(r[n]=r[n]||[],r[n].push(o),o+2);s<i.length-1;s++)!function(t){var e=i.at(o).findLine(i.at(o+1)),r=i.at(t).findLine(i.at(t+1)),n=e.intersection(r);n&&!k(k([],z(e.points),!1),z(r.points),!1).some(function(t){return t.like(n)})&&(e=i.removePart(o,t-o).reverse(),i.insertAfter.apply(i,k([o],z(e),!1)),i.insertAfter(t,n),i.insertAfter(o,n))}(s);try{for(var a=S(Object.keys(r)),u=a.next();!u.done;u=a.next()){var h=r[u.value];if(1<h.length)for(var c=function(t){var r=i.clone(),e=h[t]-h[t-1];1<e&&((e=new N(r.removePart(h[t-1],e))).reduce(function(t,e){return t&&function(t,e){var r,c;if(t.points.some(function(t){return t.equal(e)}))return!0;try{for(var n=S(t.loopPointsGenerator(!0)()),i=n.next();!i.done;i=n.next()){var l=z(i.value,3)[2];if(l.x(e).equal(e)&&l.inRange(e))return!0}}catch(t){h={error:t}}finally{try{i&&!i.done&&(u=n.return)&&u.call(n)}finally{if(h)throw h.error}}var o=0;try{for(var s=S(t.loopPointsGenerator()()),a=s.next();!a.done;a=s.next()){var f=z(a.value,2),p=f[0],d=p.x,y=p.y,g=f[1],v=g.x,m=g.y,b=new T(d-e.x,y-e.y,0),x=new T(v-e.x,m-e.y,0),P=b.findFi(x);0<b.vectorProduct(x).c?o+=P:o-=P}}catch(t){r={error:t}}finally{try{a&&!a.done&&(c=s.return)&&c.call(s)}finally{if(r)throw r.error}}var u=Math.PI/1e4,h=!1,t=Math.abs(o);if(t<u)h=!1;else{if(!(Math.abs(2*Math.PI-t)<u))throw new Error("contains2 faild");h=!0}return h}(r,e)},!0)&&r.isClockwise===e.isClockwise&&(r.insertAfter.apply(r,k([h[t-1]-1],z(e.reverse().points),!1)),i=r))},s=h.length-1;0<s;s--)c(s)}}catch(t){e={error:t}}finally{try{u&&!u.done&&(t=a.return)&&t.call(a)}finally{if(e)throw e.error}}return i},enumerable:!1,configurable:!0}),Object.defineProperty(N.prototype,"valid",{get:function(){return 3<this.length},enumerable:!1,configurable:!0}),Object.defineProperty(N.prototype,"first",{get:function(){return this.at(0)},enumerable:!1,configurable:!0}),Object.defineProperty(N.prototype,"second",{get:function(){return this.at(1)},enumerable:!1,configurable:!0}),Object.defineProperty(N.prototype,"last",{get:function(){return this.at(this.length-1)},enumerable:!1,configurable:!0}),Object.defineProperty(N.prototype,"minAreaRectangle",{get:function(){var c,l,e,f,t=this.convex,p=new N,d=1/0;try{for(var r=S(t.loopPointsGenerator(!0)()),n=r.next();!n.done;n=r.next()){var y,g,v,m,i=z(n.value,3)[2],b=0,o=null,s=null,x=0,a=null;try{e=void 0;for(var u=S(t.loopPointsGenerator()()),h=u.next();!h.done;h=u.next()){var P=z(h.value,4),M=P[0],w=P[3],T=i.findPoint(i.findPerpendicular(M)),k=T.distance(M);x<=k&&(x=k,a=M);for(var I=w;I<t.length-1;I++){var O=i.findPoint(i.findPerpendicular(t.at(I))),A=T.distance(O);b<=A&&(b=A,o=T,s=O)}}}catch(t){e={error:t}}finally{try{h&&!h.done&&(f=u.return)&&f.call(u)}finally{if(e)throw e.error}}o&&s&&a&&(g=(y=o.findLine(s)).findPerpendicular(o),(m=new N([o,s,(v=y.findPerpendicular(s)).findPoint(v.findPerpendicular(a)),g.findPoint(g.findPerpendicular(a))]).close()).area<d&&(d=(p=m).area))}}catch(t){c={error:t}}finally{try{n&&!n.done&&(l=r.return)&&l.call(r)}finally{if(c)throw c.error}}return p},enumerable:!1,configurable:!0}),Object.defineProperty(N.prototype,"convex",{get:function(){var t=this.clone().open(),e=t.isClockwise;e||t.reverse();do{var r=t.last,n=t.first,i=t.second}while(((u=n.findInnerAngle(r,i))>Math.PI||h.likeZero(h.rad2Deg(u))||h.likePI(u)||h.like2PI(u))&&(t.removePart(-1,1),t.length));t.close();var o=0;do{for(var s=(t=t.deintersection).length,a=1;a<t.length-1;a++){var u,r=t.at(a-1),n=t.at(a),i=t.at(a+1);((u=n.findInnerAngle(r,i))>Math.PI||h.likeZero(h.rad2Deg(u))||h.likePI(u)||h.like2PI(u))&&t.removePart(--a,1)}}while(o++,t.length!==s&&o<100);return e||t.reverse(),t},enumerable:!1,configurable:!0}),Object.defineProperty(N.prototype,"isClockwise",{get:function(){var e,t,r=0;try{for(var n=S(this.clone().close().loopPointsGenerator()()),i=n.next();!i.done;i=n.next()){var o=z(i.value,2),s=o[0],a=s.x,u=s.y,h=o[1];r+=(h.x-a)*(h.y+u)}}catch(t){e={error:t}}finally{try{i&&!i.done&&(t=n.return)&&t.call(n)}finally{if(e)throw e.error}}return r<0},enumerable:!1,configurable:!0}),Object.defineProperty(N.prototype,"clockWise",{get:function(){return this.isClockwise?this.clone():this.clone().reverse()},enumerable:!1,configurable:!0}),Object.defineProperty(N.prototype,"noHoles",{get:function(){var t=this.clone();return t.holes=[],t},enumerable:!1,configurable:!0}),N.prototype.reduce=function(t,e){return this.pPoints.reduce(t,e)},N.prototype.intersection=function(t,e){void 0===e&&(e=!1);var r,n,i=[];try{for(var o=S(this.loopPointsGenerator(!0)()),s=o.next();!s.done;s=o.next()){var a=z(s.value,3)[2].intersection(t,0,e);a&&i.push(a)}}catch(t){r={error:t}}finally{try{s&&!s.done&&(n=o.return)&&n.call(o)}finally{if(r)throw r.error}}return i},N.prototype.setCenter=function(t){return this.loop().move(t.clone().move(this.center.minus())).run()},N.prototype.toWKT=function(t,e){return void 0===e&&(e=!1),(t=void 0===t?N.WKT_POLYGON:t)===N.WKT_POLYGON?(t="",this.holes&&this.holes.length&&(t=", "+this.holes.map(function(t){return t.toString()}).join(", ")),"POLYGON (("+this.deintersection.mapArray(function(t){return t.x+" "+t.y+(e?" "+t.z:"")}).join(", ")+")"+t+")"):"LINESTRING ("+this.mapArray(function(t){return t.x+" "+t.y+(e?" "+t.z:"")}).join(", ")+")"},N.prototype.filter=function(t){return this.pPoints=this.pPoints.filter(t),this},N.prototype.map=function(e){return this.pPoints=this.mapArray(e),this.holes=this.holes.map(function(t){return t.map(e)}),this},N.prototype.mapArray=function(t){return this.pPoints.map(t)},N.prototype.sort=function(t){return this.points.sort(t),this},N.prototype.at=function(t){var e=this.length;return this.points[(t%e+e)%e]},N.prototype.pop=function(){return this.pPoints.pop()},N.prototype.push=function(){for(var t,e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];return(t=this.pPoints).push.apply(t,k([],z(e),!1))},N.prototype.shift=function(){return this.pPoints.shift()},N.prototype.unshift=function(){for(var t,e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];return(t=this.pPoints).unshift.apply(t,k([],z(e),!1))},N.prototype.reverse=function(){return this.pPoints=this.pPoints.reverse(),this.holes=this.holes.map(function(t){return t.reverse()}),this},N.prototype.getValue=function(){return this.pPoints.map(function(t){return t.getValue()})+this.holes.reduce(function(t,e){return t+e.getValue()},"")},N.prototype.toString=function(){return"("+this.mapArray(function(t){return t.toString()}).join(", ")+")"},N.prototype.close=function(){var t=this.first;return t&&!this.closed&&this.push(t.clone()),this},N.prototype.open=function(){var t=this.first;return 2<this.length&&t&&this.closed&&this.pop(),this},N.prototype.add=function(t){var e=new N(k(k([],z(this.points),!1),z(t.points),!1)).close();return e.holes=k(k([],z(this.holes),!1),z(t.holes),!1).map(function(t){return t.clone()}),e},N.prototype.has=function(e){return this.pPoints.some(function(t){return t.equal(e)})},N.prototype.clone=function(){var t=new N(this.points.map(function(t){return t.clone()}));return t.holes=this.holes.map(function(t){return t.clone()}),t.properties=this.properties,t},N.prototype.equal=function(r){return r instanceof N&&(this.length===r.length&&this.holes.length===r.holes.length&&(this.same(r)&&this.holes.reduce(function(t,e){return t&&r.holes.some(function(t){return t.same(e)})},!0)))},N.prototype.same=function(t){for(var e=t.clone().close(),r=this.clone().close().toString(),n=0;n<e.length;n++){if(r===e.toString()||r===e.clone().reverse().toString())return!0;e.nextStart()}return!1},N.prototype.findIndex=function(e){return e instanceof M?this.points.findIndex(function(t){return t.equal(e)}):this.points.findIndex(e)},N.prototype.approximation=function(t){return void 0===t&&(t=.1*Math.sqrt(this.perimeter)),new N(this.clone().douglasPeucker(this.pPoints,t))},N.prototype.insertAfter=function(t){for(var e,r=[],n=1;n<arguments.length;n++)r[n-1]=arguments[n];(e=this.pPoints).splice.apply(e,k([t+1,0],z(r),!1))},N.prototype.removePart=function(t,e){return this.pPoints.splice(t+1,e)},N.prototype.hasSimpleIntersection=function(t){var e=this.extend,r=t.extend,t=e.points,n=r.points,t=t.some(function(t){return r.simpleInclude(t)}),n=n.some(function(t){return e.simpleInclude(t)});return t||n},N.prototype.simpleInclude=function(t){return this.simpleIncludeX(t)&&this.simpleIncludeY(t)},N.prototype.drawPolygonOnCanvas=function(t,e,r,n,i,o){void 0===i&&(i=1),void 0===o&&(o=this.length-1),this.length<2||(t=t.getContext("2d"),e&&(t.fillStyle=e),r&&(t.strokeStyle=r),i&&(t.lineWidth=i),(e||r)&&t.beginPath(),this.goByPath(t,o%this.length),n&&(t.shadowColor=n,t.shadowBlur=0,t.shadowOffsetX=1,t.shadowOffsetY=1),e&&(t.closePath(),t.fill()),r&&t.stroke())},N.prototype.clearPolygonOnCanvas=function(t){var t=t.getContext("2d"),e=t.globalCompositeOperation;t.globalCompositeOperation="destination-out",this.goByPath(t),t.fill(),t.globalCompositeOperation=e},N.prototype.contain=function(t,e){var r;if(void 0===e&&(e=!1),!this.simpleInclude(t))return!1;if(this.onBorder(t))return e;var e=this.deintersection,n=0;try{for(var i=S(e.loopPointsGenerator()()),o=i.next();!o.done;o=i.next()){var s=z(o.value,2),a=s[0],c=a.x,l=a.y,u=s[1],f=u.x,p=u.y,d=new T(c-t.x,l-t.y,0),y=new T(f-t.x,p-t.y,0),g=d.findFi(y);0<d.vectorProduct(y).c?n+=g:n-=g}}catch(t){r={error:t}}finally{try{o&&!o.done&&(h=i.return)&&h.call(i)}finally{if(r)throw r.error}}var e=Math.PI/1e4,h=Math.abs(n);if(h<e)return!1;if(Math.abs(2*Math.PI-h)<e)return!0;throw new Error("contains2 faild")},N.prototype.onBorder=function(e){var r,t;if(this.simpleInclude(e)){var n=this.deintersection;if(this.points.some(function(t){return t.equal(e)}))return!0;try{for(var i=S(n.loopPointsGenerator(!0)()),o=i.next();!o.done;o=i.next()){var s=z(o.value,3)[2];if(s.x(e).equal(e)&&s.inRange(e))return!0}}catch(t){r={error:t}}finally{try{o&&!o.done&&(t=i.return)&&t.call(i)}finally{if(r)throw r.error}}}return!1},N.prototype.nextStart=function(){return this.open(),this.push(this.shift()),this.close(),this},N.prototype.removeDuplicates=function(){for(var t=0;t<this.length-1;t++){var e=this.at(t),r=this.at(t+1);e.equal(r)&&(this.removePart(t,1),t--)}return this},N.parse=function(t){return new N(t.map(function(t){return M.parse(t)}))},N.prototype.toArrayOfCoords=function(){return this.mapArray(function(t){return t.toCoords()})},N.prototype.divideToPieces=function(t){var e,r,s=this.fullLength/t,a=s,u=this;try{for(var n=S(this.loopPointsGenerator()()),i=n.next();!i.done;i=n.next()){var o=z(i.value,4);!function(t,e,r){var n,i,o=t.distance(e);o===a?(e.properties.pieceBorder=!0,a=s):0<o-a?(n=new q(t,a),(t=(i=t.findLine(e)).intersectionWithCircle(n).filter(function(t){return i.inRange(t,.001)})[0]).properties.pieceBorder=!0,u.insertAfter(r,t),a=s):a-=o}(o[0],o[1],o[3])}}catch(t){e={error:t}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(e)throw e.error}}return this},N.prototype.prepareToFastSearch=function(){var e,t;this.searchStore={};try{for(var r=S(this.points),n=r.next();!n.done;n=r.next()){var i=n.value,o=i.x,s=i.y,a=i.z;this.searchStore[o]||(this.searchStore[o]={}),this.searchStore[o][s]||(this.searchStore[o][s]={}),this.searchStore[o][s][a||"undefined"]=!0}}catch(t){e={error:t}}finally{try{n&&!n.done&&(t=r.return)&&t.call(r)}finally{if(e)throw e.error}}},N.prototype.fastHas=function(t){var e=t.x,r=t.y,t=t.z;return this.searchStore[e]&&this.searchStore[e][r]&&this.searchStore[e][r][t||"undefined"]||!1},Object.defineProperty(N.prototype,"growingPiecesGenerator",{get:function(){var a=this;return function(){var e,r,n,i,o,s;return m(this,function(t){switch(t.label){case 0:e=new N,t.label=1;case 1:t.trys.push([1,6,7,8]),r=S(a.pPoints),n=r.next(),t.label=2;case 2:return n.done?[3,5]:(i=n.value,e.push(i),i.properties.pieceBorder?[4,e.clone()]:[3,4]);case 3:t.sent(),t.label=4;case 4:return n=r.next(),[3,2];case 5:return[3,8];case 6:return i=t.sent(),o={error:i},[3,8];case 7:try{n&&!n.done&&(s=r.return)&&s.call(r)}finally{if(o)throw o.error}return[7];case 8:return[2,e.clone()]}})}},enumerable:!1,configurable:!0}),N.prototype.simpleUnion=function(t){try{var e=this.simpleLogicFunction(t,!0,!0);return null===e?null:e instanceof N?e:null}catch(t){return null}},N.prototype.simpleIntersection=function(t){return this.simpleLogicFunction(t,!1,!1)},N.prototype.simpleDifference=function(t){return this.simpleLogicFunction(t,!0,!1)},N.prototype.smartUnion=function(t){var e,r,n=this.clone().simpleUnion(t);if(n){var o=k(k(k([],z(this.holes),!1),z(t.holes),!1),z(n.holes),!1).map(function(t){return t.clone()}),i=function(r){var e,t;try{e=void 0;for(var n=S(o),i=n.next();!i.done;i=n.next())!function(e){if(r.equal(e))return;var t=r.simpleUnion(e);t&&(o=o.filter(function(t){return!t.equal(r)&&!t.equal(e)})).push(t)}(i.value)}catch(t){e={error:t}}finally{try{i&&!i.done&&(t=n.return)&&t.call(n)}finally{if(e)throw e.error}}};try{for(var s=S(o),a=s.next();!a.done;a=s.next())i(a.value)}catch(t){e={error:t}}finally{try{a&&!a.done&&(r=s.return)&&r.call(s)}finally{if(e)throw e.error}}n.holes=o}return n},N.prototype.toTriangles=function(){for(var o=function(t,e,r){var n=e.findLine(r),i=n.center,e=t.holes.reduce(function(t,e){return t&&Boolean(e.clone().close().intersection(n,!0).length)},Boolean(t.clone().close().intersection(n,!0).length)),r=t.holes.reduce(function(t,e){return t&&!e.contain(i)},t.contain(i));return!e&&r},t=this.clone().clockWise.open();t.holes.length;)for(var e=t.holes.shift().clone().clockWise.reverse().close(),r=0;r<t.length;r++){if(o(t,t.first,e.first)){t.insertAfter.apply(t,k(k([0],z(e.points),!1),[t.first],!1));break}t.push(t.shift())}for(var n=[];3<t.length;){var i=function(t){for(var e=0;e<t.length;e++){var r=t.at(0),n=t.at(1),i=t.at(2);if(o(t,r,i))return t.removePart(0,1),new N([r.clone(),n.clone(),i.clone()]);t.push(t.shift())}}(t);i&&n.push(i)}return n.push(t),n},N.prototype.getTrianglesPointIndexes=function(){var o=function(t,e,r){var n=e.findLine(r),i=n.center,e=t.holes.reduce(function(t,e){return t&&Boolean(e.clone().close().intersection(n,!0).length)},Boolean(t.clone().close().intersection(n,!0).length)),r=t.holes.reduce(function(t,e){return t&&!e.contain(i)},t.contain(i));return!e&&r},t=this.clone(),e=0;for(t.points.forEach(function(t){t.properties.index=e++}),t.holes.forEach(function(t){t.pPoints.forEach(function(t){t.properties.index=e++})}),t=t.clockWise.open();t.holes.length;)for(var r=t.holes.shift().clone().clockWise.reverse().close(),n=0;n<t.length;n++){if(o(t,t.first,r.first)){t.insertAfter.apply(t,k(k([0],z(r.points),!1),[t.first],!1));break}t.push(t.shift())}for(var i=[];3<t.length;){var s=function(t){for(var e=0;e<t.length;e++){var r=t.at(0),n=t.at(1),i=t.at(2);if(o(t,r,i))return t.removePart(0,1),[r.properties.index,n.properties.index,i.properties.index];t.push(t.shift())}}(t);s&&i.push.apply(i,k([],z(s),!1))}return i.push.apply(i,k([],z(t.points.map(function(t){return t.properties.index})),!1)),i},Object.defineProperty(N.prototype,"closed",{get:function(){return this.first.equal(this.last)},enumerable:!1,configurable:!0}),N.prototype.buffer=function(t,e,r){void 0===e&&(e=64),void 0===r&&(r=N.CAP_ROUND);var n=new c.io.WKTReader,i=this.noHoles,o=this.closed;return new N(n.read(i.toWKT(o?N.WKT_POLYGON:N.WKT_LINESTRING)).buffer(t,e,r).getCoordinates().map(function(t){var e=t.x,t=t.y;return new M(e,t)}))},N.prototype.sideBuffers=function(t,e){var r=this.first,n=this.last,t=this.buffer(t,e=void 0===e?64:e,N.CAP_FLAT).open(),e=z(r.sortByDistance(t).points.map(function(t){return t.properties.index}),2),r=e[0],e=e[1],n=z(n.sortByDistance(t).points.map(function(t){return t.properties.index}),2),i=n[0],n=n[1],o=Math.min(Math.max(r,e),Math.max(i,n)),r=Math.max(Math.min(r,e),Math.min(i,n)),e=new N(t.removePart(o-1,r-o+1));return t.unshift(t.pop()),[e,t]},N.prototype.bezier=function(t){void 0===t&&(t=.1);for(var e=new N,r=0;r<1;r+=t)e.push(this.clone().getBezierPoint(r));return e},N.prototype.setGrowingHeight=function(e,t){var r=this.fullLength,n=this.first,i=t-e,o=0;return this.loop().setZ(function(t){return o+=n.distance(t),n=t,e+o/r*i}).run(),this},N.prototype.loopPointsGenerator=function(i){void 0===i&&(i=!1);var o=this;return function(){var e,r,n;return m(this,function(t){switch(t.label){case 0:e=0,t.label=1;case 1:return e<o.length-1?(r=o.at(e),n=o.at(e+1),[4,[r,n,i?r.findLine(n):void 0,e]]):[3,4];case 2:t.sent(),t.label=3;case 3:return e++,[3,1];case 4:return[2]}})}},N.prototype.getBezierPoint=function(t){var e,r;if(1===this.length)return this.first;try{for(var n=S(this.loopPointsGenerator()()),i=n.next();!i.done;i=n.next()){var o=z(i.value,2),s=o[0],a=o[1];s.move(a.clone().move(s.clone().minus()).scale(t))}}catch(t){e={error:t}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(e)throw e.error}}return this.pop(),this.getBezierPoint(t)},N.prototype.simpleIncludeX=function(t){t=t.x;return this.minX<=t&&this.maxX>=t},N.prototype.simpleIncludeY=function(t){t=t.y;return this.minY<=t&&this.maxY>=t},N.prototype.douglasPeucker=function(t,e){for(var r,n=0,i=0,o=t.length-1,s=t[0].findLine(t[o]),a=1;a<o;a++){var u=s.perpendicularDistance(t[a]);n<u&&(i=a,n=u)}return e<=n?(r=this.douglasPeucker(t.slice(0,i+1),e),e=this.douglasPeucker(t.slice(i),e),r.pop(),k(k([],z(r),!1),z(e),!1)):[t[0],t[o]]},N.prototype.goByPath=function(t,e){void 0===e&&(e=this.length-1);var r=this.first;t.moveTo(r.x,r.y);for(var n=1;n<=e%this.length;n++){var i=this.at(n),o=i.x,i=i.y;t.lineTo(o,i)}},N.prototype.getJSTSGeometry=function(t,e,r){var r=r===e,n=new c.io.WKTReader,i=n.read(this.noHoles.toWKT()),n=n.read(t.noHoles.toWKT());return r?e?i.union(n):i.intersection(n):i.difference(n)},N.prototype.simpleLogicFunction=function(c,l,f){var p,d,e,y,g,v,r,m,c=this.getJSTSGeometry(c,l,f);if(c){var o=c.getCoordinates();if(o.length){var n=o.reduce(function(t,e,r){var n=e.x,e=e.y,i=t.length-1,n=new M(n,e),e=t[i].first;return n.equal(e)?o[r+1]&&(e=new M(o[r+1].x,o[r+1].y),1<t[i].length&&t.push(new N([e]))):t[i].push(n),t},[new N([new M(o[0].x,o[0].y)])]);if(f&&l&&1<n.length)try{for(var t=S(n),i=t.next();!i.done;i=t.next()){var s=i.value;try{e=void 0;for(var b=S(n),a=b.next();!a.done;a=b.next())if("break"===function(e){var t,r;return s.has(e.first)&&!s.equal(e)?(r=s.findIndex(e.first),(t=s.points).splice.apply(t,k([r,0],z(e.points),!1)),n=n.filter(function(t){return!t.equal(e)}),"continue"):n.length<2?"break":void 0}(a.value))break}catch(t){e={error:t}}finally{try{a&&!a.done&&(y=b.return)&&y.call(b)}finally{if(e)throw e.error}}if(n.length<2)break}}catch(t){p={error:t}}finally{try{i&&!i.done&&(d=t.return)&&d.call(t)}finally{if(p)throw p.error}}n=n.filter(function(t){return 2<t.length}).map(function(t){return t.close()});try{for(var x=S(n),u=x.next();!u.done;u=x.next()){s=u.value;try{r=void 0;for(var P=S(n),h=P.next();!h.done;h=P.next())if("break"===function(e){if(n.length<2)return"break";s.equal(e)||s.contain(e.first,!0)&&(s.holes.push(e),n=n.filter(function(t){return!t.equal(e)}))}(h.value))break}catch(t){r={error:t}}finally{try{h&&!h.done&&(m=P.return)&&m.call(P)}finally{if(r)throw r.error}}if(n.length<2)break}}catch(t){g={error:t}}finally{try{u&&!u.done&&(v=x.return)&&v.call(x)}finally{if(g)throw g.error}}return 0===n.length?null:1===n.length?n[0].close():n.map(function(t){return t.close()})}}return null},N.CAP_ROUND=b,N.CAP_FLAT=I,N.CAP_SQUARE=e,N.WKT_LINESTRING="LINESTRING",N.WKT_POLYGON="POLYGON",N);function N(t){this.pPoints=t=void 0===t?[]:t,this.properties={},this.holes=[],this.searchStore={}}var A=function(){return(A=Object.assign||function(t){for(var e,r=1,n=arguments.length;r<n;r++)for(var i in e=arguments[r])Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i]);return t}).apply(this,arguments)},B=function(t,e){var r="function"==typeof Symbol&&t[Symbol.iterator];if(!r)return t;var n,i,o=r.call(t),s=[];try{for(;(void 0===e||0<e--)&&!(n=o.next()).done;)s.push(n.value)}catch(t){i={error:t}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(i)throw i.error}}return s},j=new O,D=new O,R=new O,G=6371008.8,b=20037508.34,L=b/180,C=180,F=360,Y=Math.PI/C,E=C/Math.PI,M=(a.zero=function(){return new a},a.parse=function(t){var e=t.lat,r=t.lng;if(e&&r)return new a(e,r,0);e=B(t,3);return new a(e[0],e[1],e[2])},a.parseFromWKT=function(t){t=t.trim().toUpperCase(),t=/POINT \((?<data>(?:(?!\)).)*?)\)$/imu.exec(t),t=B(t.groups.data.split(" ").map(Number),3);return new a(t[0],t[1],t[2])},a.random=function(){return new a(Math.random(),Math.random())},a.prototype.getTileFromCoords=function(t){return void 0===t&&(t=this.z),l("getTileFromCoords").checkArgument("this").shouldBeDegree(this),new a(Math.floor((this.x+C)/F*Math.pow(2,t)),Math.floor((1-Math.log(Math.tan(this.y*Y)+1/Math.cos(this.y*Y))/Math.PI)/2*Math.pow(2,t)),t)},a.prototype.getCoordsFromTile=function(t){void 0===t&&(t=this.z),l("getCoordsFromTile").checkArgument("this").shouldBeUInt(this);var e=Math.PI-2*Math.PI*this.y/Math.pow(2,t);return new a(this.x/Math.pow(2,t)*F-C,C/Math.PI*Math.atan((Math.exp(e)-Math.exp(-e))/2),t)},a.prototype.toCoords=function(){return void 0===this.z?[this.x,this.y]:[this.x,this.y,this.z]},a.prototype.findLine=function(t){if(l("findLine").checkArgument("this").shouldBeMeters(this).checkArgument("p").shouldBeMeters(t),this.equal(t))return this.findLine(t.clone().move(0,1));var e=this.y-t.y,r=t.x-this.x,n=this.x*t.y-t.x*this.y;return 0==e?new T(0,1,n/r,this,t):0==r?new T(1,0,n/e,this,t):new T(e,r,n,this,t)},a.prototype.findInnerAngle=function(t,e){l("findInnerAngle").checkArgument("this").shouldBeMeters(this).checkArgument("p1").shouldBeMeters(t).checkArgument("p3").shouldBeMeters(e);t=this.findLine(t).getFi(),e=this.findLine(e).getFi();return t<=e?e-t:e+2*Math.PI-t},a.prototype.toString=function(){return this.x+" "+this.y},a.prototype.getValue=function(){return[this.x,this.y]},a.prototype.height=function(t){return this.z=t,this},a.prototype.toWKT=function(){return"POINT ("+this.x+" "+this.y+")"},a.prototype.distance=function(t){l("distance").checkArgument("this").shouldBeMeters(this).checkArgument("p").shouldBeMeters(t);var e=t.x-this.x,t=t.y-this.y;return Math.sqrt(e*e+t*t)},a.prototype.distance3d=function(t){l("distance3d").checkArgument("this").shouldBeMeters(this).checkArgument("p").shouldBeMeters(t).checkArgument("this.z").shouldExist(this.z).checkArgument("p.z").shouldExist(t.z);var e=t.x-this.x,r=t.y-this.y,t=t.z-this.z;return Math.sqrt(e*e+r*r+t*t)},a.prototype.setX=function(t){return this.x="number"==typeof t?t:t(this),this},a.prototype.setZ=function(t){return this.z="number"==typeof t?t:t(this),this},a.prototype.setY=function(t){return this.y="number"==typeof t?t:t(this),this},a.prototype.clone=function(){var t=new a(this.x,this.y,this.z);return t.properties=A({},this.properties),t},a.prototype.gt=function(t){return this.x>t.x&&this.y>t.y},a.prototype.lt=function(t){return this.x<t.x&&this.y<t.y},a.prototype.gtOrEqual=function(t){return this.gt(t)||this.equal(t)},a.prototype.ltOrEqual=function(t){return this.lt(t)||this.equal(t)},a.prototype.rotate=function(t){var e=this.x*Math.cos(t)-this.y*Math.sin(t),t=this.x*Math.sin(t)+this.y*Math.cos(t);return this.x=e,this.y=t,this},a.prototype.rotate3dX=function(t){var e=this.y,r=this.z;return this.y=e*Math.cos(t)+r*Math.sin(t),this.z=-e*Math.sin(t)+r*Math.cos(t),this},a.prototype.rotate3dY=function(t){var e=this.x,r=this.z;return this.x=e*Math.cos(t)+r*Math.sin(t),this.z=-e*Math.sin(t)+r*Math.cos(t),this},a.prototype.rotate3dZ=function(t){var e=this.x,r=this.y;return this.x=e*Math.cos(t)-r*Math.sin(t),this.y=-e*Math.sin(t)+r*Math.cos(t),this},a.prototype.move=function(t,e,r){void 0===e&&(e=t);var n=0,i=0,o=void 0;return t instanceof a?(n=this.x+t.x,i=this.y+t.y,w(this.z)&&w(t.z)&&(o=this.z+t.z)):(n=this.x+t,i=this.y+e,w(this.z)&&w(r)&&(o=this.z+r)),this.x=n,this.y=i,w(o)&&(this.z=o),this},a.prototype.degreeToMeters=function(){l("degreeToMeters").checkArgument("this").shouldBeDegree(this);var t=((this.x+C)%F-C)*L,e=Math.log(Math.tan((this.y+90)%C*(Math.PI/F)))/Y*L;return this.x=t,this.y=e,this},a.prototype.metersToDegree=function(){l("metersToDegree").checkArgument("this").shouldBeMeters(this);var t=8983152842445679e-21*this.x,e=Math.atan(Math.pow(Math.E,this.y/L*Y))*(F/Math.PI)-90;return this.x=t,this.y=e,this},a.prototype.degreeToRadians=function(){return l("degreeToRadians").checkArgument("this").shouldBeDegree(this),this.scale(Y)},a.prototype.radiansToDegrees=function(){return l("radiansToDegrees").checkArgument("this").shouldBeRadians(this),this.scale(E)},a.prototype.radiansToMeters=function(){return l("radiansToMeters").checkArgument("this").shouldBeRadians(this),this.radiansToDegrees().degreeToMeters()},a.prototype.metersToRadians=function(){return l("metersToRadians").checkArgument("this").shouldBeMeters(this),this.metersToDegree().degreeToRadians()},a.prototype.round=function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},a.prototype.ceil=function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this},a.prototype.floor=function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},a.prototype.toFixed=function(t){return void 0===t&&(t=2),this.x=parseFloat(this.x.toFixed(t)),this.y=parseFloat(this.y.toFixed(t)),this},a.prototype.abs=function(){return this.x=Math.abs(this.x),this.y=Math.abs(this.y),this},a.prototype.scale=function(t,e,r){void 0===e&&(e=t);var n=0,i=0,o=void 0;return t instanceof a?(n=this.x*t.x,i=this.y*t.y,w(this.z)&&w(t.z)&&(o=this.z*t.z)):(n=this.x*t,i=this.y*e,w(this.z)&&w(r)&&(o=this.z*r)),this.x=n,this.y=i,w(o)&&(this.z=o),this},a.prototype.divide=function(t,e,r){void 0===e&&(e=t);var n=0,i=0,o=void 0;return t instanceof a?(n=this.x/t.x,i=this.y/t.y,w(this.z)&&w(t.z)&&(o=this.z/t.z)):(n=this.x/t,i=this.y/e,w(this.z)&&w(r)&&(o=this.z/r)),this.x=n,this.y=i,w(o)&&(this.z=o),this},a.prototype.equal=function(t){return this.x===t.x&&this.y===t.y&&this.z===t.z},a.prototype.like=function(t,e){if(void 0===e&&(e=.001),this.equal(t))return!0;var r=Math.abs(this.x-t.x)<e,n=Math.abs(this.y-t.y)<e,i=Math.abs((null!==(i=null!==(i=this.z)&&void 0!==i?i:t.z)&&void 0!==i?i:0)-(null!==(t=null!==(i=t.z)&&void 0!==i?i:this.z)&&void 0!==t?t:0))<e;return r&&n&&i},a.prototype.flipVertically=function(t){var e=t;return t instanceof a&&(e=t.y),this.y=e-this.y,this},Object.defineProperty(a.prototype,"likeRadians",{get:function(){return 0===j.length&&j.push(new a(-Math.PI,-Math.PI/2),new a(Math.PI,Math.PI/2)),j.simpleInclude(this)},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"likeWorldGeodeticSystem",{get:function(){return 0===R.length&&R.push(new a(-180,-90),new a(180,90)),!this.likeRadians&&R.simpleInclude(this)},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"likePseudoMercator",{get:function(){return 0===D.length&&D.push(new a(-20026376.39,-20048966.1),new a(20026376.39,20048966.1)),!this.likeRadians&&!this.likeWorldGeodeticSystem&&D.simpleInclude(this)},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"w",{get:function(){return this.x},set:function(t){this.x=t},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"h",{get:function(){return this.y},set:function(t){this.y=t},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"area",{get:function(){return l("area").checkArgument("this").shouldBeMeters(this),this.w*this.h},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"hip",{get:function(){return l("hip").checkArgument("this").shouldBeMeters(this),Math.sqrt(this.w*this.w+this.h*this.h)},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"min",{get:function(){return Math.min(this.x,this.y)},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"max",{get:function(){return Math.max(this.x,this.y)},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"hipPoint",{get:function(){var t=this.hip;return new a(t,t)},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"xPoint",{get:function(){var t=this.x;return new a(t,t)},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"yPoint",{get:function(){var t=this.y;return new a(t,t)},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"wPoint",{get:function(){return this.xPoint},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"hPoint",{get:function(){return this.yPoint},enumerable:!1,configurable:!0}),a.prototype.simple=function(t,e){var r;return void 0===e&&(e="y"),(r={})[t=void 0===t?"x":t]=this.x,r[e]=this.y,r},a.prototype.setIfLessThan=function(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this},a.prototype.minus=function(){return this.scale(-1)},a.prototype.orthodromicPath=function(t,e){void 0===e&&(e=360),l("orthodromicPath").checkArgument("this").shouldBeDegree(this).checkArgument("point").shouldBeDegree(t);var r=this.clone().degreeToRadians(),n=t.clone().degreeToRadians(),i=Math.sin(n.x-r.x),o=(n.x-r.x)/(e-1);return new O(g(e).map(function(t,e){e=r.x+o*e;return new a(e,Math.atan(Math.tan(r.y)*Math.sin(n.x-e)/i+Math.tan(n.y)*Math.sin(e-r.x)/i)).radiansToDegrees()}))},a.prototype.sortByDistance=function(t){var r=this;return t.clone().map(function(t,e){return t.properties.distance=t.distance(r),t.properties.index=e,t}).sort(function(t,e){return t.properties.distance-e.properties.distance})},a);function a(t,e,r){void 0===t&&(t=0),void 0===e&&(e=t),this.x=t,this.y=e,this.z=r,this.properties={}}X.prototype.toString=function(){return"("+this.center.toString()+", "+this.r+")"},X.prototype.getValue=function(){return{center:this.center,r:this.r}},X.prototype.clone=function(){return new X(this.center,this.r)},X.prototype.findPoints=function(t){if(this.equal(t))return 1/0;var e=this.center,r=e.x,e=e.y,n=this.r,i=t.center,o=i.x,i=i.y,s=t.r,n=n*n,t=this.center.distance(t.center),s=(n-s*s+t*t)/(2*t),a=s/t,u=i-e,h=o-r,n=Math.sqrt(n-s*s)/t,s=r+a*(o-r),t=e+a*(i-e),o=s+n*u,r=t-n*h,a=s-n*u,i=t+n*h,e=[];return isNaN(o)||isNaN(r)||e.push(new M(o,r)),isNaN(a)||isNaN(i)||o===a&&r===i||e.push(new M(a,i)),e},X.prototype.equal=function(t){var e=t.center,t=t.r;return this.center.equal(e)&&this.r===t},X.prototype.findPolygonInside=function(t,e,r){void 0===t&&(t=64),void 0===e&&(e=0),void 0===r&&(r=2*Math.PI);for(var n=2*Math.PI/t,i=[],o=e;o<r-n;)i.push(new M(this.r).scale(Math.cos(o),Math.sin(o)).move(this.center)),o+=n;t=this.r*Math.cos(r)+this.center.x,e=this.r*Math.sin(r)+this.center.y;return i.push(new M(t,e)),new O(i)},X.prototype.findPolygonInsideOnSphere=function(t,e,r){void 0===t&&(t=64),void 0===e&&(e=0),void 0===r&&(r=2*Math.PI),l("findPolygonInsideOnSphere").checkArgument("center").shouldBeDegree(this.center);for(var n=2*Math.PI/t,i=[],o=e;o<r-n;)i.push(this.sphereOffset(o)),o+=n;return i.push(this.sphereOffset(r)),new O(i)},X.prototype.sphereOffset=function(t,e){void 0===e&&(e=G);var r=this.center.clone().degreeToRadians(),n=r.x,r=r.y,e=this.r/e,i=Math.asin(Math.sin(r)*Math.cos(e)+Math.cos(r)*Math.sin(e)*Math.cos(t)),n=n+Math.atan2(Math.sin(t)*Math.sin(e)*Math.cos(r),Math.cos(e)-Math.sin(r)*Math.sin(i));return new M(n,i).radiansToDegrees()};var q=X;function X(t,e){void 0===t&&(t=M.zero()),void 0===e&&(e=0),this.center=t,this.r=e}var V=function(t){var e="function"==typeof Symbol&&Symbol.iterator,r=e&&t[e],n=0;if(r)return r.call(t);if(t&&"number"==typeof t.length)return{next:function(){return{value:(t=t&&n>=t.length?void 0:t)&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")},_=(W.prototype.add=function(t){var e,r;try{for(var n=V(t),i=n.next();!i.done;i=n.next()){var o=i.value,s=o.x,a=o.y,u=o.z;this.searchStore[s]||(this.searchStore[s]={}),this.searchStore[s][a]||(this.searchStore[s][a]={}),this.searchStore[s][a][u||"undefined"]=!0}}catch(t){e={error:t}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(e)throw e.error}}},W.prototype.find=function(t){var e=t.x,r=t.y,t=t.z;return!!this.searchStore[e]&&(!!this.searchStore[e][r]&&this.searchStore[e][r][t||"undefined"])},W);function W(){this.searchStore={}}function U(t,e,r){return void 0===r&&(r=d.TraceMatrixValues.f),void 0===t[e.y]||void 0===t[e.y][e.x]?r:t[e.y][e.x]}function Z(t,e,r){return void 0===t[e.y]||void 0===t[e.y][e.x]?r:(t[e.y][e.x]=r,t[e.y][e.x])}var K=function(t,e){var r="function"==typeof Symbol&&t[Symbol.iterator];if(!r)return t;var n,i,o=r.call(t),s=[];try{for(;(void 0===e||0<e--)&&!(n=o.next()).done;)s.push(n.value)}catch(t){i={error:t}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(i)throw i.error}}return s},H=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,o=e.length;i<o;i++)!n&&i in e||((n=n||Array.prototype.slice.call(e,0,i))[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))},$=function(t){var e="function"==typeof Symbol&&Symbol.iterator,r=e&&t[e],n=0;if(r)return r.call(t);if(t&&"number"==typeof t.length)return{next:function(){return{value:(t=t&&n>=t.length?void 0:t)&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")},e=(d.TraceMatrixValues=void 0,(I=d.TraceMatrixValues||(d.TraceMatrixValues={}))[I.f=0]="f",I[I.t=1]="t",J.prototype.fullMatrixTrace=function(){var r=this,t=this.findAllGroupsInMatrix(this.m),n=t.map(function(t){return r.traceGroup(r.m,t)}),i=t.map(this.createHoleMatrix),o=i.map(function(t){return t&&r.findAllGroupsInMatrix(t)}),s=o.map(function(t,e){return t&&t.map(function(t){return r.traceGroup(i[e],t)}).filter(function(t){return 3<t.length})});return t.map(function(t,e){var r=n[e];return o[e]&&o[e].length&&(r.holes=s[e]),r})},J.prototype.reverseMatrix=function(e){return J.createMatrix(this.size,function(t){return U(e,t)===d.TraceMatrixValues.f?d.TraceMatrixValues.t:d.TraceMatrixValues.f})},J.prototype.findMarked=function(t,e){for(var r=this.size,n=!1,i=0;i<r.w;i++)for(var o=0;o<r.h;o++)if(n||!e){if(U(t,new M(i,o))===d.TraceMatrixValues.t)return new M(i,o)}else i=e.x,o=e.y,n=!0;return null},J.prototype.totalCountInMatrix=function(t){for(var e=0,r=this.size,n=0;n<r.w;n++)for(var i=0;i<r.h;i++)U(t,new M(n,i))&&e++;return e},J.createMatrix=function(e,n){return void 0===n&&(n=function(){return d.TraceMatrixValues.f}),g(e.h).map(function(t,r){return g(e.w).map(function(t,e){return n(new M(e,r))})})},J);function J(t,e){var p=this;this.size=t,this.findGroupByIndex=function(t,e){var r=new O;if(e&&U(t,e)===d.TraceMatrixValues.t){r.push(e);var n=0,i=J.createMatrix(p.size,function(){return d.TraceMatrixValues.f});for(Z(i,e,d.TraceMatrixValues.t);n<r.length;){for(var o=r.at(n),s=-1;s<2;s++)for(var a=-1;a<2;a++){var u=new M(o.x+s,o.y+a);U(i,u,d.TraceMatrixValues.t)===d.TraceMatrixValues.f&&U(t,u,d.TraceMatrixValues.f)===d.TraceMatrixValues.t&&(r.push(u),Z(i,u,d.TraceMatrixValues.t))}n++}}return r},this.findAllGroupsInMatrix=function(t){var e=p.findMarked(t);if(!e)return[];var e=p.findGroupByIndex(t,e),r=[e],n=e.length,i=H([],K(e.points),!1),o=new _;for(o.add(i);n<p.totalCountInMatrix(t);){for(var s=p.findMarked(t);s&&o.find(s);)s=p.findMarked(t,s);var a=p.findGroupByIndex(t,s);n+=a.length,i=H(H([],K(i),!1),K(a.points),!1),o.add(a.points),r.push(a)}return r.filter(function(t){return 2<t.length})},this.traceGroup=function(t,e){function r(t){return(t+i.length+1)%i.length}var n,i=[new M(-1,-1),new M(-1,0),new M(-1,1),new M(0,1),new M(1,1),new M(1,0),new M(1,-1),new M(0,-1)];if(e.length<2)return n=e.at(0).clone(),new O([n,n,n]);for(var o=new O,s=0,a=1/0,u=e.at(0);!u.equal(e.at(0))||o.length<2;){for(;;){var h=U(t,u.clone().move(i[s])),c=U(t,u.clone().move(i[r(s)]));if(h===d.TraceMatrixValues.t&&c===d.TraceMatrixValues.f)break;s=(s+i.length-1)%i.length}a!==s&&(o.push(u),a=s),u=u.clone().move(i[s]),s=r(r(s))}return o.approximation().close()},this.createHoleMatrix=function(e){for(var r,t,c=[new M(-1,0),new M(0,1),new M(1,0),new M(0,-1)],n=(e.prepareToFastSearch(),J.createMatrix(p.size,function(t){return e.fastHas(t)?d.TraceMatrixValues.t:d.TraceMatrixValues.f})),i=new O,o=0;o<p.size.w;o++)i.push(new M(o,-1)),i.push(new M(o,p.size.h));for(o=0;o<p.size.h;o++)i.push(new M(-1,o)),i.push(new M(p.size.w,o));for(;i.length;){var l=i.pop();try{r=void 0;for(var s=$(c),a=s.next();!a.done;a=s.next()){var f=a.value,u=l.clone().move(f);U(n,u,d.TraceMatrixValues.t)===d.TraceMatrixValues.f&&(Z(n,u,d.TraceMatrixValues.t),i.push(u))}}catch(t){r={error:t}}finally{try{a&&!a.done&&(t=s.return)&&t.call(s)}finally{if(r)throw r.error}}}var h=p.reverseMatrix(n);return p.totalCountInMatrix(h)?h:null},this.m=J.createMatrix(this.size,e)}var Q=function(t,e){var r="function"==typeof Symbol&&t[Symbol.iterator];if(!r)return t;var n,i,o=r.call(t),s=[];try{for(;(void 0===e||0<e--)&&!(n=o.next()).done;)s.push(n.value)}catch(t){i={error:t}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(i)throw i.error}}return s},b=(tt.find=function(t,e,r){if(t.x===e.x&&e.x===r.x)return new tt(1,0,0,-t.x,t,e,r);if(t.y===e.y&&e.y===r.y)return new tt(0,1,0,-t.y,t,e,r);if(t.z===e.z&&e.z===r.z)return new tt(0,0,1,-t.z,t,e,r);var n=Q(p([[t.x,t.y,t.z,-1],[e.x,e.y,e.z,-1],[r.x,r.y,r.z,-1]]),3);return new tt(n[0],n[1],n[2],1,t,e,r)},tt.prototype.x=function(t){var e,r,n,i,o,s,a=this;return t instanceof M?(e=this.a,r=this.b,n=this.c,i=this.d,o=t.y,s=t.z,t.x=-(r*o+n*s+i)/e,t):t.map(function(t){return a.x(t)})},tt.prototype.y=function(t){var e,r,n,i,o,s,a=this;return t instanceof M?(e=this.a,r=this.b,n=this.c,i=this.d,o=t.x,s=t.z,t.y=-(e*o+n*s+i)/r,t):t.map(function(t){return a.y(t)})},tt.prototype.z=function(t){var e,r,n,i,o,s,a=this;return t instanceof M?(e=this.a,r=this.b,n=this.c,i=this.d,o=t.x,s=t.y,t.z=-(e*o+r*s+i)/n,t):t.map(function(t){return a.z(t)})},tt.prototype.clone=function(){var t=this;return new tt(t.a,t.b,t.c,t.d,t.p1,t.p2,t.p3)},tt.prototype.distance=function(t){var e,r;if(t instanceof M)return n=t.x,i=t.y,o=t.z,a=this.a,e=this.b,r=this.c,s=this.d,Math.abs(a*n+e*i+r*o+s)/Math.sqrt(a*a+e*e+r*r);var n=t.a,i=t.b,o=t.c,s=t.d,a=this.d;return Math.abs(s-a)/Math.sqrt(n*n+i*i+o*o)},tt.prototype.equal=function(t){var e=t.a,r=t.b,n=t.c,t=t.d,i=this.a,o=this.b,s=this.c,a=this.d;return h.like(e,i)&&h.like(r,o)&&h.like(n,s)&&h.like(t,a)},tt.prototype.same=function(t){var e=t.a,r=t.b,n=t.c,t=t.d,i=this.a,o=this.b,e=e/i,i=n/this.c,t=t/this.d;return h.like(e,r/o)&&h.like(e,i)&&h.like(e,n)&&h.like(e,t)},tt.prototype.parallel=function(t){var e=t.a,r=t.b,n=t.c,t=t.d,i=this.a,o=this.b,e=e/i,i=n/this.c,t=t/this.d;return h.like(e,r/o)&&h.like(e,i)&&h.like(e,n)&&!h.like(e,t)},tt);function tt(t,e,r,n,i,o,s){void 0===i&&(i=M.zero()),void 0===o&&(o=M.zero()),void 0===s&&(s=M.zero()),this.a=t,this.b=e,this.c=r,this.d=n,this.p1=i,this.p2=o,this.p3=s}var et={DEBUG:!1};d.DCircle=q,d.DEGREE_TO_PI=E,d.DGeo=et,d.DLine=T,d.DNumbers=h,d.DOUBLE_PI_IN_DEGREE=F,d.DPlane=b,d.DPoint=M,d.DPolygon=O,d.DPolygonLoop=v,d.EARTH_RADIUS_IN_METERS=G,d.FastSearch=_,d.HALF_PI_IN_DEGREE=90,d.MIN_POINTS_IN_VALID_POLYGON=3,d.PI_IN_DEGREE=C,d.PI_TO_DEGREE=Y,d.TraceMatrix=e,d.createArray=g,d.createCanvas=y,d.createMatrix=f,d.gaussianElimination=p,d.isDefAndNotNull=w,Object.defineProperty(d,"__esModule",{value:!0})});
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["dgeoutils.js"],"names":["global","factory","exports","module","require","define","amd","globalThis","self","DGeoUtils","jsts","this","hook","scope","checkFunction","funcName","checkArgument","argName","DGeo","DEBUG","shouldBeDegree","p","likeWorldGeodeticSystem","warn","shouldBeMeters","likePseudoMercator","shouldBeInt","clone","round","equal","shouldBeUInt","gtOrEqual","DPoint","zero","shouldBeRadians","likeRadians","shouldExist","isDefAndNotNull","createMatrix","_a","fillSymbol","h","w","createArray","map","gaussianElimination","matrix","n","length","matrixClone","i","j","MIN","k","K","answer","createCanvas","a","b","c","offscreen","canvas","x","y","OffscreenCanvas","document","createElement","width","height","getContext","__read$4","o","m","Symbol","iterator","r","e","call","ar","next","done","push","value","error","__spreadArray$2","to","from","pack","arguments","l","Array","prototype","slice","concat","args","_i","console","apply","undefined","v","fill","DNumbers","like","s","d","Math","abs","likeZero","like2PI","rad2Deg","DOUBLE_PI_IN_DEGREE","likePI","PI_IN_DEGREE","DEGREE_TO_PI","deg2Rad","PI_TO_DEGREE","DLine","begin","end","findPerpendicular","perpendicularDistance","findPoint","distance","intersection","includeOnly","insideRange","inRange","intersectionWithCircle","circle","center","per","t","isParallel","ct","move","sqrt","isParallelY","isParallelX","movePoint","mult","minX","minY","maxX","maxY","Object","defineProperty","get","setIfLessThan","minus","divide","enumerable","configurable","min","max","toString","getValue","res","isFinite","getFi","atan2","PI","toWKT","_b","x1","y1","_c","fi","findFi","td","sinCos","sin","cos","dt","scale","p1T","p2T","setX","delta","q","val","acos","vectorProduct","LoopFunctions","decodePoolRecord","functionName","pointArg","numberPointArg","numberArg","setterArg","getTileFromCoords","getCoordsFromTile","setY","setZ","rotate","rotate3dX","rotate3dY","rotate3dZ","ceil","floor","toFixed","degreeToRadians","radiansToDegrees","radiansToMeters","metersToRadians","hipPoint","xPoint","yPoint","wPoint","hPoint","degreeToMeters","metersToDegree","flipVertically","DPolygonLoop","getLoopFunction","pool","reduce","run","parent","zoom","z","getHipPoint","getXPoint","getYPoint","getWPoint","getHPoint","size","__generator","thisArg","body","f","_","label","sent","trys","ops","g","verb","throw","return","step","op","TypeError","pop","__values$2","__read$3","__spreadArray$1","operation","buffer","BufferParameters","CAP_ROUND","CAP_FLAT","CAP_SQUARE","DPolygon","arrayOfTrianglesToVertices","triangles","loop","toArrayOfCoords","flat","minAreaRectangleSize","poly","open","first","second","last","toDash","e_3","result","trigger","points","point","properties","pieceBorder","e_3_1","minAreaRectangleDirection","findLine","parseFromWKT","wkt","path","holes","reg","data","trim","toUpperCase","indexOf","exec","groups","split","pares","parse","Number","createSquareBySize","close","pPoints","set","Infinity","leftTop","perimeter","e_4","loopPointsGenerator","_d","p1","p2","e_4_1","e_5","sum","deintersection","_e","_f","e_5_1","hole","area","e_6","store","at","firstLine","secondLine","intersectionPoint","some","part","removePart","reverse","insertAfter","_loop_1","keys","record","_loop_2","origin_1","e_2","polygonLine","e_1_1","e_1","totalFi","_g","_h","_j","_k","line1","line2","fiDif","e_2_1","eps","absTotalFi","Error","containCalculator","isClockwise","e_6_1","e_7","e_8","convex","resultPolygon","resultArea","widthLine","perpendicular1","perpendicular2","tempPolygon","maxWidth","maxWidthPoint1","maxWidthPoint2","maxHeight","maxHeightPoint","e_8_1","e_7_1","p3","findInnerAngle","iteration","e_9","e_9_1","e_10","intersect","e_10_1","setCenter","newCenter","type","withZ","WKT_POLYGON","join","mapArray","filter","sort","index","shift","unshift","p0","closed","add","has","same","pHoles","pClone","thisAsString","nextStart","findIndex","approximation","douglasPeucker","splice","count","hasSimpleIntersection","extend1","extend","extend2","extend1points","extend2points","in1","simpleInclude","in2","simpleIncludeX","simpleIncludeY","drawPolygonOnCanvas","fillColor","strokeColor","shadowColor","lineWidth","steps","ctx","fillStyle","strokeStyle","beginPath","goByPath","shadowBlur","shadowOffsetX","shadowOffsetY","closePath","stroke","clearPolygonOnCanvas","old","globalCompositeOperation","contain","isBorderInside","e_11","onBorder","e_11_1","e_12","e_12_1","removeDuplicates","toCoords","divideToPieces","piecesCount","e_13","pieceLength","fullLength","currentPieceLength","this_1","line_1","DCircle","_loop_3","e_13_1","prepareToFastSearch","e_14","searchStore","e_14_1","fastHas","polygon","e_15_1","e_15","simpleUnion","simpleLogicFunction","ex","simpleIntersection","simpleDifference","smartUnion","e_16","allHoles","_loop_4","e_17","allHoles_2","allHoles_2_1","_loop_5","e_17_1","allHoles_1","allHoles_1_1","e_16_1","toTriangles","innerAndNotIntersect","intersections","Boolean","clockWise","triangle","getTriangle","getTrianglesPointIndexes","forEach","quadrantSegments","reader","io","WKTReader","noHoles","read","WKT_LINESTRING","getCoordinates","sideBuffers","sortByDistance","start0","start1","end0","end1","fromPoint","toPoint","linePart","bezier","getBezierPoint","setGrowingHeight","prevPoint","currentDistance","withLine","that","e_18","e_18_1","recResult1","dMax","line","recResult2","start","moveTo","lineTo","getJSTSGeometry","unionThis","unionThat","unionOrIntersection","union","difference","e_19","e_20","e_21","e_22","coordinates_1","ak","lastIndex","nextPoint","result_1","result_1_1","result_2","result_2_1","_loop_6","e_20_1","e_19_1","result_3","result_3_1","result_4","result_4_1","_loop_7","e_22_1","e_21_1","__assign","assign","hasOwnProperty","__read$2","radiansPolygon","pseudoMercatorPolygon","worldGeodeticPolygon","EARTH_RADIUS_IN_METERS","EARTH_IN_MITERS","MITERS_IN_ONE_DEGREE","lat","lng","random","pow","log","tan","atan","exp","a1","a2","dx","dy","distance3d","dz","gt","lt","ltOrEqual","xV","yV","zV","lon","DEGREES_IN_EARTH","E","parseFloat","likeX","likeY","likeZ","hip","simple","xKey","yKey","orthodromicPath","pointsCount","_this","findPoints","x0","y0","r0","r1","r02","ad","hd","x2","y2","x31","y31","x32","y32","isNaN","findPolygonInside","pointCount","startAngle","stopAngle","angle","findPolygonInsideOnSphere","sphereOffset","bearing","earthRadius","lon1","lat1","dByR","asin","__values$1","FastSearch","points_1","points_1_1","find","getByPosition","defaultValue","TraceMatrixValues","setByPosition","__read$1","__spreadArray","__values","TraceMatrix","fullMatrixTrace","findAllGroupsInMatrix","paths","traceGroup","holeMatrixs","createHoleMatrix","holesGroups","holesPaths","hg","reverseMatrix","findMarked","init","ini","totalCountInMatrix","v2","findGroupByIndex","startIndex","marked","firstMark","group","groupSum","allGroups","fs","mark","nextGroup","left","traceDirections","direction","prevDirection","nextValue","nextNeighbourValue","fullTraceDirections","tmpMatrix","startCoords","fullTraceDirections_1","fullTraceDirections_1_1","tmpPoint","__read","DPlane","b_1","c_1","a_1","d_1","u","parallel","HALF_PI_IN_DEGREE","MIN_POINTS_IN_VALID_POLYGON"],"mappings":"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"}
package/package.json CHANGED
@@ -1,23 +1,28 @@
1
1
  {
2
2
  "name": "dgeoutils",
3
- "version": "2.2.24",
3
+ "version": "2.3.0",
4
4
  "description": "",
5
5
  "scripts": {
6
- "build": "node_modules/.bin/tsc",
6
+ "build": "npm run build:es2015 && npm run build:esm && npm run build:cjs && npm run build:umd && npm run build:umd:min",
7
+ "build:es2015": "tsc --module es2015 --target es2015 --outDir dist/es2015",
8
+ "build:esm": "tsc --module es2015 --target es5 --downlevelIteration --outDir dist/esm",
9
+ "build:cjs": "tsc --module commonjs --target es5 --declaration --downlevelIteration --outDir dist/cjs",
10
+ "build:umd": "rollup dist/esm/index.js --format umd --name \"DGeoUtils\" -m inline --file dist/umd/dgeoutils.js",
11
+ "build:umd:min": "cd dist/umd && uglifyjs --compress --mangle --source-map --comments -o dgeoutils.min.js -- dgeoutils.js",
7
12
  "prepublishOnly": "npm run lint:report && npm run test && npm run test:badges && npm run doc && npm run build",
8
- "lint": "node_modules/.bin/eslint src/",
9
- "lint:report": "node_modules/.bin/eslint -o ./media/eslit.html -f html src/",
10
- "doc": "node_modules/.bin/typedoc",
11
- "test": "node_modules/.bin/jest --coverage",
12
- "test:badges": "node_modules/.bin/jest-coverage-badges --input \"./media/coverage-summary.json\" --output \"./media/badges\"",
13
+ "lint": "eslint src/",
14
+ "lint:report": "eslint -o ./media/eslit.html -f html src/",
15
+ "doc": "typedoc",
16
+ "test": "jest --coverage",
17
+ "test:badges": "jest-coverage-badges --input \"./media/coverage-summary.json\" --output \"./media/badges\"",
13
18
  "release-fix": "node ./release.js fix",
14
19
  "release-minor": "node ./release.js minor",
15
20
  "release-major": "node ./release.js major"
16
21
  },
17
22
  "author": "",
18
23
  "license": "MIT",
19
- "main": "dist/index.js",
20
- "types": "dist/index.d.ts",
24
+ "main": "dist/cjs/index.js",
25
+ "types": "dist/cjs/index.d.ts",
21
26
  "files": [
22
27
  "/dist"
23
28
  ],
@@ -46,7 +51,9 @@
46
51
  "jsdom": "^17.0.0",
47
52
  "ts-jest": "^27.0.4",
48
53
  "typedoc": "^0.22.11",
49
- "typescript": "^4.4.3"
54
+ "typescript": "^4.4.3",
55
+ "rollup": "^2.67.0",
56
+ "uglify-js": "^3.15.0"
50
57
  },
51
58
  "jest": {
52
59
  "setupFiles": [
package/dist/DNumbers.js DELETED
@@ -1,26 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DNumbers = void 0;
4
- const DPoint_1 = require("./DPoint");
5
- const delta = 0.001;
6
- class DNumbers {
7
- static like(v, s, d = delta) {
8
- return Math.abs(v - s) < d;
9
- }
10
- static likeZero(v) {
11
- return DNumbers.like(v, 0);
12
- }
13
- static like2PI(v) {
14
- return DNumbers.like(DNumbers.rad2Deg(v), DPoint_1.DOUBLE_PI_IN_DEGREE);
15
- }
16
- static likePI(v) {
17
- return DNumbers.like(DNumbers.rad2Deg(v), DPoint_1.PI_IN_DEGREE);
18
- }
19
- static rad2Deg(v) {
20
- return v * DPoint_1.DEGREE_TO_PI;
21
- }
22
- static deg2Rad(v) {
23
- return v * DPoint_1.PI_TO_DEGREE;
24
- }
25
- }
26
- exports.DNumbers = DNumbers;