Sha256: 12fdd4970ba303ead9499a3c3c1bd6e9ae7b6a583ab941f643371a27d26de138

Contents?: true

Size: 996 Bytes

Versions: 2

Compression:

Stored size: 996 Bytes

Contents

function vanDerGrinten2(λ, φ) {
  if (Math.abs(φ) < ε) return [λ, 0];
  var sinθ = Math.abs(2 * φ / π),
      θ = asin(sinθ);
  if (Math.abs(λ) < ε || Math.abs(Math.abs(φ) - π / 2) < ε) return [0, sgn(φ) * π * Math.tan(θ / 2)];
  var cosθ = Math.cos(θ),
      A = Math.abs(π / λ - λ / π) / 2,
      A2 = A * A,
      x1 = cosθ * (Math.sqrt(1 + A2) - A * cosθ) / (1 + A2 * sinθ * sinθ);
  return [
    sgn(λ) * π * x1,
    sgn(φ) * π * asqrt(1 - x1 * (2 * A + x1))
  ];
}

vanDerGrinten2.invert = function(x, y) {
  if (!x) return [0, π / 2 * Math.sin(2 * Math.atan(y / π))];
  var x1 = Math.abs(x / π),
      A = (1 - x1 * x1 - (y /= π) * y) / (2 * x1),
      A2 = A * A,
      B = Math.sqrt(A2 + 1);
  return [
    sgn(x) * π * (B - A),
    sgn(y) * π / 2 * Math.sin(2 * Math.atan2(Math.sqrt((1 - 2 * A * x1) * (A + B) - x1), Math.sqrt(B + A + x1)))
  ];
};

(d3.geo.vanDerGrinten2 = function() { return projection(vanDerGrinten2); }).raw = vanDerGrinten2;

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
d3js-plugins-rails-0.0.4 vendor/assets/javascripts/d3/plugins/geo/projection/van-der-grinten2.js
d3js-plugins-rails-0.0.3 vendor/assets/javascripts/d3/plugins/geo/projection/van-der-grinten2.js