Sha256: b59f961eacb5eded1314af8144c0fb6c4890f43aca46a2440b12b491498081e8

Contents?: true

Size: 1.07 KB

Versions: 4

Compression:

Stored size: 1.07 KB

Contents

import "projection";

var hammerAzimuthalEqualArea = d3.geo.azimuthalEqualArea.raw;

function hammer(A, B) {
  if (arguments.length < 2) B = A;
  if (B === 1) return hammerAzimuthalEqualArea;
  if (B === Infinity) return hammerQuarticAuthalic;

  function forward(λ, φ) {
    var coordinates = hammerAzimuthalEqualArea(λ / B, φ);
    coordinates[0] *= A;
    return coordinates;
  }

  forward.invert = function(x, y) {
    var coordinates = hammerAzimuthalEqualArea.invert(x / A, y);
    coordinates[0] *= B;
    return coordinates;
  };

  return forward;
}

function hammerProjection() {
  var B = 2,
      m = projectionMutator(hammer),
      p = m(B);

  p.coefficient = function(_) {
    if (!arguments.length) return B;
    return m(B = +_);
  };

  return p;
}

function hammerQuarticAuthalic(λ, φ) {
  return [
    λ * Math.cos(φ) / Math.cos(φ /= 2),
    2 * Math.sin(φ)
  ];
}

hammerQuarticAuthalic.invert = function(x, y) {
  var φ = 2 * asin(y / 2);
  return [
    x * Math.cos(φ / 2) / Math.cos(φ),
    φ
  ];
};

(d3.geo.hammer = hammerProjection).raw = hammer;

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
d3js-plugins-rails-0.0.8 vendor/assets/javascripts/d3/plugins/geo/projection/hammer.js
d3js-plugins-rails-0.0.7 vendor/assets/javascripts/d3/plugins/geo/projection/hammer.js
d3js-plugins-rails-0.0.6 vendor/assets/javascripts/d3/plugins/geo/projection/hammer.js
d3js-plugins-rails-0.0.5 vendor/assets/javascripts/d3/plugins/geo/projection/hammer.js