-
Notifications
You must be signed in to change notification settings - Fork 0
/
d3.geo.min.js
10 lines (10 loc) · 4.82 KB
/
d3.geo.min.js
1
2
3
4
5
6
7
8
9
10
(function(){function s(b){return"m0,"+b+"a"+b+","+b+" 0 1,1 0,"+-2*b+"a"+b+","+b+" 0 1,1 0,"+ +2*b+"z"}function r(){return 0}function o(b,d){return d&&d.type in b?b[d.type](d):""}function t(b,d){b.type in w&&w[b.type](b,d)}function x(b,d){for(var g=b.coordinates,e=0,j=g.length;e<j;e++)d.apply(null,g[e])}d3.geo={};d3.geo.albers=function(){function b(c){var k=l*(q*c[0]-i);c=Math.sqrt(a-2*l*Math.sin(q*c[1]))/l;return[j*c*Math.sin(k)+h[0],j*(c*Math.cos(k)-f)+h[1]]}function d(){var c=q*e[0],k=q*e[1],n=
q*g[1],m=Math.sin(c);c=Math.cos(c);i=q*g[0];l=0.5*(m+Math.sin(k));a=c*c+2*l*m;f=Math.sqrt(a-2*l*Math.sin(n))/l;return b}var g=[-98,38],e=[29.5,45.5],j=1E3,h=[480,250],i,l,a,f;b.origin=function(c){if(!arguments.length)return g;g=[+c[0],+c[1]];return d()};b.parallels=function(c){if(!arguments.length)return e;e=[+c[0],+c[1]];return d()};b.scale=function(c){if(!arguments.length)return j;j=+c;return b};b.translate=function(c){if(!arguments.length)return h;h=[+c[0],+c[1]];return b};return d()};d3.geo.albersUsa=
function(){function b(h){var i=h[0],l=h[1];return(l<25?i<-100?e:j:l>50?g:d)(h)}var d=d3.geo.albers(),g=d3.geo.albers().origin([-160,60]).parallels([55,65]),e=d3.geo.albers().origin([-160,20]).parallels([8,18]),j=d3.geo.albers().origin([-60,10]).parallels([8,18]);b.scale=function(h){if(!arguments.length)return d.scale();d.scale(h);g.scale(h*0.6);e.scale(h);j.scale(h*1.5);return b.translate(d.translate())};b.translate=function(h){if(!arguments.length)return d.translate();var i=d.scale()/1E3,l=h[0],
a=h[1];d.translate(h);g.translate([l-400*i,a+170*i]);e.translate([l-190*i,a+200*i]);j.translate([l+580*i,a+430*i]);return b};return b.scale(d.scale())};var q=Math.PI/180;d3.geo.mercator=function(){function b(e){return[d*(e[0]/360)+g[0],d*Math.max(-0.5,Math.min(0.5,-180/Math.PI*Math.log(Math.tan(Math.PI/4+e[1]*Math.PI/360))/360))+g[1]]}var d=500,g=[480,250];b.scale=function(e){if(!arguments.length)return d;d=+e;return b};b.translate=function(e){if(!arguments.length)return g;g=[+e[0],+e[1]];return b};
return b};d3.geo.path=function(){function b(a){if(typeof e=="function")j=s(e.apply(this,arguments));return o(i,a)}function d(a){return h(a).join(",")}function g(a){for(var f=Math.abs(d3.geom.polygon(a[0].map(h)).area()),c=0,k=a.length;++c<k;)f-=Math.abs(d3.geom.polygon(a[c].map(h)).area());return f}var e=4.5,j=s(e),h=d3.geo.albersUsa(),i={FeatureCollection:function(a){var f=[];a=a.features;for(var c=-1,k=a.length;++c<k;)f.push(o(i,a[c].geometry));return f.join("")},Feature:function(a){return o(i,
a.geometry)},Point:function(a){return"M"+d(a.coordinates)+j},MultiPoint:function(a){var f=[];a=a.coordinates;for(var c=-1,k=a.length;++c<k;)f.push("M",d(a[c]),j);return f.join("")},LineString:function(a){var f=["M"];a=a.coordinates;for(var c=-1,k=a.length;++c<k;)f.push(d(a[c]),"L");f.pop();return f.join("")},MultiLineString:function(a){var f=[];a=a.coordinates;for(var c=-1,k=a.length,n,m,p;++c<k;){n=a[c];m=-1;p=n.length;for(f.push("M");++m<p;)f.push(d(n[m]),"L");f.pop()}return f.join("")},Polygon:function(a){var f=
[];a=a.coordinates;for(var c=-1,k=a.length,n,m,p;++c<k;){n=a[c];m=-1;p=n.length;for(f.push("M");++m<p;)f.push(d(n[m]),"L");f[f.length-1]="Z"}return f.join("")},MultiPolygon:function(a){var f=[];a=a.coordinates;for(var c=-1,k=a.length,n,m,p,u,v,y;++c<k;){n=a[c];m=-1;for(p=n.length;++m<p;){u=n[m];v=-1;y=u.length-1;for(f.push("M");++v<y;)f.push(d(u[v]),"L");f[f.length-1]="Z"}}return f.join("")},GeometryCollection:function(a){var f=[];a=a.geometries;for(var c=-1,k=a.length;++c<k;)f.push(o(i,a[c]));return f.join("")}},
l={FeatureCollection:function(a){var f=0;a=a.features;for(var c=-1,k=a.length;++c<k;)f+=o(l,a[c]);return f},Feature:function(a){return o(l,a.geometry)},Point:r,MultiPoint:r,LineString:r,MultiLineString:r,Polygon:function(a){return g(a.coordinates)},MultiPolygon:function(a){var f=0;a=a.coordinates;for(var c=-1,k=a.length;++c<k;)f+=g(a[c]);return f},GeometryCollection:function(a){var f=0;a=a.geometries;for(var c=-1,k=a.length;++c<k;)f+=o(l,a[c]);return f}};b.projection=function(a){h=a;return b};b.area=
function(a){return o(l,a)};b.pointRadius=function(a){if(typeof a=="function")e=a;else{e=+a;j=s(e)}return b};return b};d3.geo.bounds=function(b){var d=Infinity,g=Infinity,e=-Infinity,j=-Infinity;t(b,function(h,i){if(h<d)d=h;if(h>e)e=h;if(i<g)g=i;if(i>j)j=i});return[[d,g],[e,j]]};var w={Feature:function(b,d){t(b.geometry,d)},FeatureCollection:function(b,d){for(var g=b.features,e=0,j=g.length;e<j;e++)t(g[e].geometry,d)},LineString:x,MultiLineString:function(b,d){for(var g=b.coordinates,e=0,j=g.length;e<
j;e++)for(var h=g[e],i=0,l=h.length;i<l;i++)d.apply(null,h[i])},MultiPoint:x,MultiPolygon:function(b,d){for(var g=b.coordinates,e=0,j=g.length;e<j;e++)for(var h=g[e][0],i=0,l=h.length;i<l;i++)d.apply(null,h[i])},Point:function(b,d){d.apply(null,b.coordinates)},Polygon:function(b,d){for(var g=b.coordinates[0],e=0,j=g.length;e<j;e++)d.apply(null,g[e])}}})();