1 line
6.3 KiB
JavaScript
1 line
6.3 KiB
JavaScript
!function(){var m={version:"1.6.19",mesh:function(t){return q(t,l.apply(this,arguments))},meshArcs:l,merge:function(t){return q(t,o.apply(this,arguments))},mergeArcs:o,feature:s,neighbors:k,presimplify:d};function a(A,t){var u={},v={},w={},x=[],B=-1;t.forEach(function(F,C){var E=A.arcs[F<0?~F:F],D;if(E.length<3&&!E[1][0]&&!E[1][1]){D=t[++B],t[B]=F,t[C]=D}});t.forEach(function(F){var I=y(F),J=I[0],D=I[1],H,G;if(H=w[J]){delete w[H.end];H.push(F);H.end=D;if(G=v[D]){delete v[G.start];var C=G===H?H:H.concat(G);v[C.start=H.start]=w[C.end=G.end]=C}else{v[H.start]=w[H.end]=H}}else{if(H=v[D]){delete v[H.start];H.unshift(F);H.start=J;if(G=w[J]){delete w[G.end];var E=G===H?H:G.concat(H);v[E.start=G.start]=w[E.end=H.end]=E}else{v[H.start]=w[H.end]=H}}else{H=[F];v[H.start=J]=w[H.end=D]=H}}});function y(D){var C=A.arcs[D<0?~D:D],F=C[0],E;if(A.transform){E=[0,0],C.forEach(function(G){E[0]+=G[0],E[1]+=G[1]})}else{E=C[C.length-1]}return D<0?[E,F]:[F,E]}function z(D,F){for(var C in D){var E=D[C];delete F[E.start];delete E.start;delete E.end;E.forEach(function(G){u[G<0?~G:G]=1});x.push(E)}}z(w,v);z(v,w);t.forEach(function(C){if(!u[C<0?~C:C]){x.push([C])}});return x}function l(E,w,u){var t=[];if(arguments.length>1){var z=[],B;function v(H){var G=H<0?~H:H;(z[G]||(z[G]=[])).push({i:H,g:B})}function F(G){G.forEach(v)}function C(G){G.forEach(F)}function A(G){if(G.type==="GeometryCollection"){G.geometries.forEach(A)}else{if(G.type in D){B=G,D[G.type](G.arcs)}}}var D={LineString:F,MultiLineString:C,Polygon:C,MultiPolygon:function(G){G.forEach(C)}};A(w);z.forEach(arguments.length<3?function(G){t.push(G[0].i)}:function(G){if(u(G[0].g,G[G.length-1].g)){t.push(G[0].i)}})}else{for(var y=0,x=E.arcs.length;y<x;++y){t.push(y)}}return{type:"MultiLineString",arcs:a(E,t)}}function o(z,y){var w={},t=[],v=[];y.forEach(function(A){if(A.type==="Polygon"){u(A.arcs)}else{if(A.type==="MultiPolygon"){A.arcs.forEach(u)}}});function u(A){A.forEach(function(B){B.forEach(function(C){(w[C=C<0?~C:C]||(w[C]=[])).push(A)})});t.push(A)}function x(A){return j(q(z,{type:"Polygon",arcs:[A]}).coordinates[0])>0}t.forEach(function(C){if(!C._){var A=[],B=[C];C._=1;v.push(A);while(C=B.pop()){A.push(C);C.forEach(function(D){D.forEach(function(E){w[E<0?~E:E].forEach(function(F){if(!F._){F._=1;B.push(F)}})})})}}});t.forEach(function(A){delete A._});return{type:"MultiPolygon",arcs:v.map(function(A){var D=[];A.forEach(function(F){F.forEach(function(G){G.forEach(function(H){if(w[H<0?~H:H].length<2){D.push(H)}})})});D=a(z,D);if((n=D.length)>1){var E=x(A[0][0]);for(var C=0,B;C<n;++C){if(E===x(D[C])){B=D[0],D[0]=D[C],D[C]=B;break}}}return D})}}function s(u,t){return t.type==="GeometryCollection"?{type:"FeatureCollection",features:t.geometries.map(function(v){return g(u,v)})}:g(u,t)}function g(v,u){var t={type:"Feature",id:u.id,properties:u.properties||{},geometry:q(v,u)};if(u.id==null){delete t.id}return t}function q(C,v){var z=c(C.transform),t=C.arcs;function u(G,H){if(H.length){H.pop()}for(var E=t[G<0?~G:G],F=0,J=E.length,I;F<J;++F){H.push(I=E[F].slice());z(I,F)}if(G<0){i(H,J)}}function A(E){E=E.slice();z(E,0);return E}function D(G){var F=[];for(var E=0,H=G.length;E<H;++E){u(G[E],F)}if(F.length<2){F.push(F[0].slice())}return F}function w(F){var E=D(F);while(E.length<4){E.push(E[0].slice())}return E}function y(E){return E.map(w)}function x(F){var E=F.type;return E==="GeometryCollection"?{type:E,geometries:F.geometries.map(x)}:E in B?{type:E,coordinates:B[E](F)}:null}var B={Point:function(E){return A(E.coordinates)},MultiPoint:function(E){return E.coordinates.map(A)},LineString:function(E){return D(E.arcs)},MultiLineString:function(E){return E.arcs.map(D)},Polygon:function(E){return y(E.arcs)},MultiPolygon:function(E){return E.arcs.map(y)}};return x(v)}function i(y,x){var w,u=y.length,v=u-x;while(v<--u){w=y[v],y[v++]=y[u],y[u]=w}}function p(u,t){var y=0,w=u.length;while(y<w){var v=y+w>>>1;if(u[v]<t){y=v+1}else{w=v}}return y}function k(F){var v={},G=F.map(function(){return[]});function H(J,I){J.forEach(function(K){if(K<0){K=~K}var L=v[K];if(L){L.push(I)}else{v[K]=[I]}})}function B(J,I){J.forEach(function(K){H(K,I)})}function A(J,I){if(J.type==="GeometryCollection"){J.geometries.forEach(function(K){A(K,I)})}else{if(J.type in E){E[J.type](J.arcs,I)}}}var E={LineString:H,MultiLineString:B,Polygon:B,MultiPolygon:function(J,I){J.forEach(function(K){B(K,I)})}};F.forEach(A);for(var y in v){for(var z=v[y],u=z.length,x=0;x<u;++x){for(var w=x+1;w<u;++w){var D=z[x],C=z[w],t;if((t=G[D])[y=p(t,C)]!==C){t.splice(y,0,C)}if((t=G[C])[y=p(t,D)]!==D){t.splice(y,0,D)}}}}return G}function d(y,t){var x=c(y.transform),v=b(y.transform),u=h();if(!t){t=f}y.arcs.forEach(function(A){var C=[],H=0,F;for(var D=0,B=A.length,z;D<B;++D){z=A[D];x(A[D]=[z[0],z[1],Infinity],D)}for(var D=1,B=A.length-1;D<B;++D){F=A.slice(D-1,D+2);F[1][2]=t(F);C.push(F);u.push(F)}for(var D=0,B=C.length;D<B;++D){F=C[D];F.previous=C[D-1];F.next=C[D+1]}while(F=u.pop()){var G=F.previous,E=F.next;if(F[1][2]<H){F[1][2]=H}else{H=F[1][2]}if(G){G.next=E;G[2]=F[2];w(G)}if(E){E.previous=G;E[0]=F[0];w(E)}}A.forEach(v)});function w(z){u.remove(z);z[1][2]=t(z);u.push(z)}return y}function j(v){var w=-1,y=v.length,u,t=v[y-1],x=0;while(++w<y){u=t;t=v[w];x+=u[0]*t[1]-u[1]*t[0]}return x*0.5}function f(v){var u=v[0],t=v[1],w=v[2];return Math.abs((u[0]-w[0])*(t[1]-u[1])-(u[0]-t[0])*(w[1]-u[1]))}function r(u,t){return u[1][2]-t[1][2]}function h(){var u={},x=[],v=0;u.push=function(y){t(x[y._=v]=y,v++);return v};u.pop=function(){if(v<=0){return}var z=x[0],y;if(--v>0){y=x[v],w(x[y._=0]=y,0)}return z};u.remove=function(A){var z=A._,y;if(x[z]!==A){return}if(z!==--v){y=x[v],(r(y,A)<0?t:w)(x[y._=z]=y,z)}return z};function t(z,A){while(A>0){var y=((A+1)>>1)-1,B=x[y];if(r(z,B)>=0){break}x[B._=A]=B;x[z._=A=y]=z}}function w(A,B){while(true){var C=(B+1)<<1,y=C-1,z=B,D=x[z];if(y<v&&r(x[y],D)<0){D=x[z=y]}if(C<v&&r(x[C],D)<0){D=x[z=C]}if(z===B){break}x[D._=B]=D;x[A._=B=z]=A}}return u}function c(v){if(!v){return e}var x,z,y=v.scale[0],w=v.scale[1],u=v.translate[0],t=v.translate[1];return function(A,B){if(!B){x=z=0}A[0]=(x+=A[0])*y+u;A[1]=(z+=A[1])*w+t}}function b(v){if(!v){return e}var x,z,y=v.scale[0],w=v.scale[1],u=v.translate[0],t=v.translate[1];return function(A,C){if(!C){x=z=0}var B=(A[0]-u)/y|0,D=(A[1]-t)/w|0;A[0]=B-x;A[1]=D-z;x=B;z=D}}function e(){}if(typeof define==="function"&&define.amd){define(m)}else{if(typeof module==="object"&&module.exports){module.exports=m}else{this.topojson=m}}}(); |