public long findBetween(GeoPoint pointA, GeoPoint pointB) {
   Point a = pointA.toPoint(1000.0);
   Point b = pointB.toPoint(1000.0);
   double x = (a.x + b.x) * 0.5;
   double y = (a.y + b.y) * 0.5;
   double z = (a.z + b.z) * 0.5;
   double l = 1000.0 / Vector.computeDistance(x, y, z);
   x *= l;
   y *= l;
   z *= l;
   assert Math.abs(
           Vector.computeDistance(a.x - x, a.y - y, a.z - z)
               - Vector.computeDistance(b.x - x, b.y - y, b.z - z))
       < 0.0005;
   globalPointMap.intersect(bounds.load(x, y, z), this.reset());
   assert found;
   assert globalPointEntry.getSeq() >= 0;
   return globalPointEntry.getSeq();
 }
 public long find(Point point) {
   globalPointMap.intersect(bounds.load(point), this.reset());
   assert found;
   assert globalPointEntry.getSeq() >= 0;
   return globalPointEntry.getSeq();
 }