Scale moderator not in line with sinusoidal projector
-----------------------------------------------------

                 Key: LUCENE-1930
                 URL: https://issues.apache.org/jira/browse/LUCENE-1930
             Project: Lucene - Java
          Issue Type: Bug
          Components: contrib/spatial
    Affects Versions: 2.9
            Reporter: Nicolas Helleringer


Current implementation in spatial Lucene does :

public double getTierBoxId (double latitude, double longitude) {
  double[] coords = projector.coords(latitude, longitude);
  double id = getBoxId(coords[0]) + (getBoxId(coords[1]) / 
tierVerticalPosDivider);
  return id ;
}

private double getBoxId (double coord){
  return Math.floor(coord / (idd / this.tierLength));
}

with
Double idd = new Double(180);
in the CartesianTierPlotter constructor.

But current Sinusoidal Projector set and used in initialisation of 
CartesianTierPlotter does :

public double[] coords(double latitude, double longitude) {
  double rlat = Math.toRadians(latitude);
  double rlong = Math.toRadians(longitude);
  double nlat = rlong * Math.cos(rlat);
  double r[] = {nlat, rlong};
return r;
}

Thus we moderate with idd = 180 a coord that is in a Radian space.

Things to do :

1°) fix idd to : double idd= PI;
2°) Move idd definition to IProjector interface : The coord space should belong 
to the projector doing the job. Change the code from CTP to use that new 
interface.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-dev-h...@lucene.apache.org

Reply via email to