/
d3.geo.min.js
1 lines (1 loc) · 9.5 KB
/
d3.geo.min.js
1
(function(){function s(b,c,d){var e=b[0]*a,f=b[1]*a,g=c[0]*a,h=c[1]*a,i=Math.cos(e),j=Math.sin(e),k=Math.cos(f),l=Math.sin(f),m=Math.cos(g),n=Math.sin(g),o=Math.cos(h),p=Math.sin(h),q=Math.acos(Math.max(-1,Math.min(1,l*p+k*o*Math.cos(g-e)))),r=d*q,s=Math.sin(q),t=Math.sin(q-r)/s,u=Math.sin(r)/s,v=t*k*i+u*o*m,w=t*k*j+u*o*n,x=t*l+u*p;return[Math.atan2(w,v)/a,Math.atan2(x,Math.sqrt(v*v+w*w))/a]}function q(a){return a.target}function p(a){return a.source}function o(b,c,d){var e=b.length;if(e<2)return b;var f=0,g=c*a,h=b[0],i,j=h[0]*a,k=h[1]*a,l=Math.cos(j),m=Math.sin(j),n=Math.cos(k),o=Math.sin(k),p=[h];while(++f<e){i=b[f];var q=i[0]*a,r=i[1]*a,s=Math.cos(q),t=Math.sin(q),u=Math.cos(r),v=Math.sin(r),w=Math.acos(Math.max(-1,Math.min(1,o*v+n*u*Math.cos(q-j)))),x=Math.sin(w),y=d!=null?d-1:Math.ceil(w/g),z=w/y,A=0,B=0;while(++B<y){A+=z;var C=Math.sin(w-A)/x,D=Math.sin(A)/x,E=C*n*l+D*u*s,F=C*n*m+D*u*t,G=C*o+D*v;p.push([Math.atan2(F,E)/a,Math.atan2(G,Math.sqrt(E*E+F*F))/a])}p.push(i),j=q,k=r,l=s,m=t,n=u,o=v}return p}function n(a,b){for(var c=a.coordinates[0],d=0,e=c.length;d<e;d++)b.apply(null,c[d])}function m(a,b){b.apply(null,a.coordinates)}function l(a,b){for(var c=a.coordinates,d=0,e=c.length;d<e;d++)for(var f=c[d][0],g=0,h=f.length;g<h;g++)b.apply(null,f[g])}function k(a,b){for(var c=a.coordinates,d=0,e=c.length;d<e;d++)for(var f=c[d],g=0,h=f.length;g<h;g++)b.apply(null,f[g])}function j(a,b){for(var c=a.coordinates,d=0,e=c.length;d<e;d++)b.apply(null,c[d])}function i(a,b){for(var c=a.features,d=0,e=c.length;d<e;d++)f(c[d].geometry,b)}function h(a,b){f(a.geometry,b)}function f(a,b){a.type in g&&g[a.type](a,b)}function e(a,b){return b&&b.type in a?a[b.type](b):""}function d(){return 0}function c(a){return"m0,"+a+"a"+a+","+a+" 0 1,1 0,"+ -2*a+"a"+a+","+a+" 0 1,1 0,"+2*a+"z"}d3.geo={};var a=Math.PI/180,b=6371;d3.geo.azimuthal=function(){function j(c){var g=c[0]*a-f,j=c[1]*a,k=Math.cos(g),l=Math.sin(g),m=Math.cos(j),n=Math.sin(j),o=b!=="orthographic"?i*n+h*m*k:null,p,q=b==="stereographic"?1/(1+o):b==="gnomonic"?1/o:b==="equidistant"?(p=Math.acos(o),p?p/Math.sin(p):0):b==="equalarea"?Math.sqrt(2/(1+o)):1,r=q*m*l,s=q*(i*m*k-h*n);return[d*r+e[0],d*s+e[1]]}var b="orthographic",c,d=200,e=[480,250],f,g,h,i;j.invert=function(c){var g=(c[0]-e[0])/d,j=(c[1]-e[1])/d,k=Math.sqrt(g*g+j*j),l=b==="stereographic"?2*Math.atan(k):b==="gnomonic"?Math.atan(k):b==="equidistant"?k:b==="equalarea"?2*Math.asin(.5*k):Math.asin(k),m=Math.sin(l),n=Math.cos(l);return[(f+Math.atan2(g*m,k*h*n+j*i*m))/a,Math.asin(n*i-(k?j*m*h/k:0))/a]},j.mode=function(a){if(!arguments.length)return b;b=a+"";return j},j.origin=function(b){if(!arguments.length)return c;c=b,f=c[0]*a,g=c[1]*a,h=Math.cos(g),i=Math.sin(g);return j},j.scale=function(a){if(!arguments.length)return d;d=+a;return j},j.translate=function(a){if(!arguments.length)return e;e=[+a[0],+a[1]];return j};return j.origin([0,0])},d3.geo.albers=function(){function k(){var d=a*c[0],e=a*c[1],k=a*b[1],l=Math.sin(d),m=Math.cos(d);f=a*b[0],g=.5*(l+Math.sin(e)),h=m*m+2*g*l,i=Math.sqrt(h-2*g*Math.sin(k))/g;return j}function j(b){var c=g*(a*b[0]-f),j=Math.sqrt(h-2*g*Math.sin(a*b[1]))/g;return[d*j*Math.sin(c)+e[0],d*(j*Math.cos(c)-i)+e[1]]}var b=[-98,38],c=[29.5,45.5],d=1e3,e=[480,250],f,g,h,i;j.invert=function(b){var c=(b[0]-e[0])/d,j=(b[1]-e[1])/d,k=i+j,l=Math.atan2(c,k),m=Math.sqrt(c*c+k*k);return[(f+l/g)/a,Math.asin((h-m*m*g*g)/(2*g))/a]},j.origin=function(a){if(!arguments.length)return b;b=[+a[0],+a[1]];return k()},j.parallels=function(a){if(!arguments.length)return c;c=[+a[0],+a[1]];return k()},j.scale=function(a){if(!arguments.length)return d;d=+a;return j},j.translate=function(a){if(!arguments.length)return e;e=[+a[0],+a[1]];return j};return k()},d3.geo.albersUsa=function(){function e(e){var f=e[0],g=e[1];return(g>50?b:f<-140?c:g<21?d:a)(e)}var a=d3.geo.albers(),b=d3.geo.albers().origin([-160,60]).parallels([55,65]),c=d3.geo.albers().origin([-160,20]).parallels([8,18]),d=d3.geo.albers().origin([-60,10]).parallels([8,18]);e.scale=function(f){if(!arguments.length)return a.scale();a.scale(f),b.scale(f*.6),c.scale(f),d.scale(f*1.5);return e.translate(a.translate())},e.translate=function(f){if(!arguments.length)return a.translate();var g=a.scale()/1e3,h=f[0],i=f[1];a.translate(f),b.translate([h-400*g,i+170*g]),c.translate([h-190*g,i+200*g]),d.translate([h+580*g,i+430*g]);return e};return e.scale(a.scale())},d3.geo.equirectangular=function(){function c(c){var d=c[0]/360,e=-c[1]/360;return[a*d+b[0],a*e+b[1]]}var a=500,b=[480,250];c.invert=function(c){var d=(c[0]-b[0])/a,e=(c[1]-b[1])/a;return[360*d,-360*e]},c.scale=function(b){if(!arguments.length)return a;a=+b;return c},c.translate=function(a){if(!arguments.length)return b;b=[+a[0],+a[1]];return c};return c},d3.geo.mercator=function(){function d(d){var e=d[0]/360,f=-(Math.log(Math.tan(Math.PI/4+d[1]*a/2))/a)/360;return[b*e+c[0],b*Math.max(-0.5,Math.min(.5,f))+c[1]]}var b=500,c=[480,250];d.invert=function(d){var e=(d[0]-c[0])/b,f=(d[1]-c[1])/b;return[360*e,2*Math.atan(Math.exp(-360*f*a))/a-90]},d.scale=function(a){if(!arguments.length)return b;b=+a;return d},d.translate=function(a){if(!arguments.length)return c;c=[+a[0],+a[1]];return d};return d},d3.geo.path=function(){function o(a){return Math.abs(d3.geom.polygon(a.map(f)).area())}function m(a){var b=d3.geom.polygon(a[0].map(f)),c=b.centroid(1),d=c[0],e=c[1],g=Math.abs(b.area()),h=0,i=a.length;while(++h<i)b=d3.geom.polygon(a[h].map(f)),c=b.centroid(1),d-=c[0],e-=c[1],g-=Math.abs(b.area());return[d,e,6*g]}function l(a){var b=o(a[0]),c=0,d=a.length;while(++c<d)b-=o(a[c]);return b}function i(a){return f(a).join(",")}function h(d,f){typeof a=="function"&&(b=c(a.apply(this,arguments)));return e(j,d)}var a=4.5,b=c(a),f=d3.geo.albersUsa(),g=Object,j={FeatureCollection:function(a){var b=[],c=a.features,d=-1,f=c.length;while(++d<f)b.push(e(j,c[d].geometry));return b.join("")},Feature:function(a){return e(j,a.geometry)},Point:function(a){var c=g.call(this,[a.coordinates]);return c.length?"M"+i(c[0])+b:""},MultiPoint:function(a){var c=[],d=g.call(this,a.coordinates),e=-1,f=d.length;while(++e<f)c.push("M",i(d[e]),b);return c.join("")},LineString:function(a){var b=["M"],c=g.call(this,a.coordinates),d=-1,e=c.length;while(++d<e)b.push(i(c[d]),"L");b.pop();return b.join("")},MultiLineString:function(a){var b=[],c=a.coordinates,d=-1,e=c.length,f,h,j;while(++d<e){f=g.call(this,c[d]),h=-1,j=f.length,b.push("M");while(++h<j)b.push(i(f[h]),"L");b.pop()}return b.join("")},Polygon:function(a){var b=[],c=a.coordinates,d=-1,e=c.length,f,h,j;while(++d<e){f=g.call(this,c[d]),h=-1,j=f.length-1;if(j<1)continue;b.push("M");while(++h<j)b.push(i(f[h]),"L");b[b.length-1]="Z"}return b.join("")},MultiPolygon:function(a){var b=[],c=a.coordinates,d=-1,e=c.length,f,h,j,k,l,m;while(++d<e){f=c[d],h=-1,j=f.length;while(++h<j){k=g.call(this,f[h]),l=-1,m=k.length-1;if(m<1)continue;b.push("M");while(++l<m)b.push(i(k[l]),"L");b[b.length-1]="Z"}}return b.join("")},GeometryCollection:function(a){var b=[],c=a.geometries,d=-1,f=c.length;while(++d<f)b.push(e(j,c[d]));return b.join("")}},k={FeatureCollection:function(a){var b=0,c=a.features,d=-1,f=c.length;while(++d<f)b+=e(k,c[d]);return b},Feature:function(a){return e(k,a.geometry)},Point:d,MultiPoint:d,LineString:d,MultiLineString:d,Polygon:function(a){return l(a.coordinates)},MultiPolygon:function(a){var b=0,c=a.coordinates,d=-1,e=c.length;while(++d<e)b+=l(c[d]);return b},GeometryCollection:function(a){var b=0,c=a.geometries,d=-1,f=c.length;while(++d<f)b+=e(k,c[d]);return b}},n={Feature:function(a){return e(n,a.geometry)},Polygon:function(a){var b=m(a.coordinates);return[b[0]/b[2],b[1]/b[2]]},MultiPolygon:function(a){var b=0,c=a.coordinates,d,e=0,f=0,g=0,h=-1,i=c.length;while(++h<i)d=m(c[h]),e+=d[0],f+=d[1],g+=d[2];return[e/g,f/g]}};h.projection=function(a){f=a;return h},h.clip=function(a){if(!arguments.length)return g;g=a;return h},h.area=function(a){return e(k,a)},h.centroid=function(a){return e(n,a)},h.pointRadius=function(d){typeof d=="function"?a=d:(a=+d,b=c(a));return h};return h},d3.geo.bounds=function(a){var b=Infinity,c=Infinity,d=-Infinity,e=-Infinity;f(a,function(a,f){a<b&&(b=a),a>d&&(d=a),f<c&&(c=f),f>e&&(e=f)});return[[b,c],[d,e]]};var g={Feature:h,FeatureCollection:i,LineString:j,MultiLineString:k,MultiPoint:j,MultiPolygon:l,Point:m,Polygon:n};d3.geo.greatCircle=function(){function i(a,b){return o([c.call(this,a,b),d.call(this,a,b)],f,g)}var c=p,d=q,e=Object,f=null,g=100,h=b;i.polyline=function(a,b){return o(e.call(this,a,b),f,g)},i.coordinates=function(a){if(!arguments.length)return e;e=a;return i},i.n=function(a){if(!arguments.length)return g;g=+a,f=null;return i},i.precision=function(a){if(!arguments.length)return f;f=+a,g=null;return i},i.radius=function(a){if(!arguments.length)return h;h=+a;return i},i.distance=function(b,e){var f=c.call(this,b,e),g=d.call(this,b,e),i=f[0]*a,j=f[1]*a,k=g[0]*a,l=g[1]*a,m=Math.sin((l-j)/2),n=Math.sin((k-i)/2),o=m*m+Math.cos(j)*Math.cos(l)*n*n;return h*2*Math.atan2(Math.sqrt(o),Math.sqrt(1-o))};return i},d3.geo.clip=function(){function f(b,c){var b=e.call(this,b,c),f={source:a,target:null},g=b.length,c=-1,h,i=[],j=null,k=null,l,m;while(++c<g)f.target=b[c],l=r.distance(f),l<d?(k&&i.push(s(k,f.target,(m-d)/(m-l))),i.push(b[c]),j=k=null):(k=f.target,!j&&i.length&&(i.push(s(i[i.length-1],k,(d-m)/(l-m))),j=k)),m=l;k&&i.length&&(f.target=i[0],l=r.distance(f),i.push(s(k,f.target,(m-d)/(m-l))));return i}var a=[0,0],c=90,d=b*c/180*Math.PI,e=Object;f.coordinates=function(a){if(!arguments.length)return e;e=a;return f},f.origin=function(b){if(!arguments.length)return a;a=b;return f},f.angle=function(a){if(!arguments.length)return c;c=+a,d=b*c/180*Math.PI;return f};return f};var r=d3.geo.greatCircle()})()