title: How can I determine if a point is hidden on a projection?
body: <p>I'm working of a fairly simple world globe interface using D3 and the D3.geo.projection to create a spinning globe with data points on it. </p>
  
  <p>Everything worked fine (i.e. the points "eclipsed" when they rotated away behind the horizon) when I was just plotting the points with circles:</p>
  
  <pre><code>svg.append("g")
      .attr("class","points")
      .selectAll("text")
      .data(places.features)
    .enter()
  
    //for circle-point------------------------------
    .append("path")
    .attr("d", path.pointRadius(function(d) {
        if (d.properties)
          return 3+(4*d.properties.scalerank);
                      }))
      .attr("d", path)
  
      .attr("class", "point")
      .on("click",pointClick)
  ;
  </code></pre>
  
  <p>But now I'm trying to plot symbols instead of circles:</p>
  
  <pre><code>svg.append("g")
      .attr("class","points")
      .selectAll("text")
      .data(places.features)
    .enter()
      //for image-------------------------------------
      .append("image")
      .attr("xlink:href", "img/x_symbol.png")
      .attr("x", -12)
      .attr("y", -12)
      .attr("width", 24)
      .attr("height", 24)
      .attr("transform", function(d) {
          return "translate(" + projection([
            d.properties.longitude,
            d.properties.latitude
          ]) + ")"
        })
  
      .attr("class", "point")
      .on("click",pointClick)
  ;
  </code></pre>
  
  <p>And while this works, and the symbols plot in the right place on the globe, they persist even when they wrap to the back of the globe.
  I can hide them with a visibility property if I had a way to determine if they were eclipsed, but I don't see a method in d3.geo.projection to do that. Any ideas?</p>