private boolean addGoodPts(List<ProjectionPoint> goodPts, ProjectionPoint pt) { if (!ProjectionPointImpl.isInfinite(pt)) { goodPts.add(pt); //System.out.println(" good= "+pt); return true; } else return false; }
private boolean addGoodPts(List<ProjectionPoint> goodPts, ProjectionPoint pt) { if (!ProjectionPointImpl.isInfinite(pt)) { goodPts.add(pt); //System.out.println(" good= "+pt); return true; } else return false; }
private boolean addGoodPts(List<ProjectionPoint> goodPts, ProjectionPoint pt) { if (!ProjectionPointImpl.isInfinite(pt)) { goodPts.add(pt); //System.out.println(" good= "+pt); return true; } else return false; }
private boolean addGoodPts(List<ProjectionPoint> goodPts, ProjectionPoint pt) { if (!ProjectionPointImpl.isInfinite(pt)) { goodPts.add(pt); //System.out.println(" good= "+pt); return true; } else return false; }
private boolean addGoodPts(List<ProjectionPoint> goodPts, ProjectionPoint pt) { if (!ProjectionPointImpl.isInfinite(pt)) { goodPts.add(pt); //System.out.println(" good= "+pt); return true; } else return false; }
private boolean addGoodPts(List<ProjectionPoint> goodPts, ProjectionPoint pt) { if (!ProjectionPointImpl.isInfinite(pt)) { goodPts.add(pt); //System.out.println(" good= "+pt); return true; } else return false; }
@Override public boolean crossSeam(ProjectionPoint pt1, ProjectionPoint pt2) { // either point is infinite if (ProjectionPointImpl.isInfinite(pt1) || ProjectionPointImpl.isInfinite(pt2)) return true; double x1 = pt1.getX(); double x2 = pt2.getX(); if (isGeoCoordinateScaled) { x1 = x1 * geoCoordinateScaleFactor; x2 = x2 * geoCoordinateScaleFactor; } // opposite signed X values, larger then 100 km return (x1 * x2 < 0) && (Math.abs(x1 - x2) > 100); }
/** * Does the line between these two points cross the projection "seam". * * @param pt1 the line goes between these two points * @param pt2 the line goes between these two points * @return false if there is no seam */ public boolean crossSeam(ProjectionPoint pt1, ProjectionPoint pt2) { // either point is infinite if (ProjectionPointImpl.isInfinite(pt1) || ProjectionPointImpl.isInfinite(pt2)) { return true; } // opposite signed long lines: LOOK ???? return (pt1.getX() * pt2.getX() < 0); }
/** * Does the line between these two points cross the projection "seam". * * @param pt1 the line goes between these two points * @param pt2 the line goes between these two points * @return false if there is no seam */ @Override public boolean crossSeam(ProjectionPoint pt1, ProjectionPoint pt2) { // either point is infinite if (ProjectionPointImpl.isInfinite(pt1) || ProjectionPointImpl.isInfinite(pt2)) { return true; } // opposite signed long lines: LOOK ???? return (pt1.getX() * pt2.getX() < 0); }
@Override public boolean crossSeam(ProjectionPoint pt1, ProjectionPoint pt2) { // TODO: check, taken from ucar.unidata.geoloc.projection.TransverseMercator // either point is infinite if (ProjectionPointImpl.isInfinite(pt1) || ProjectionPointImpl.isInfinite(pt2)) { return true; } double y1 = pt1.getY() - falseNorthing; double y2 = pt2.getY() - falseNorthing; // opposite signed long lines return (y1 * y2 < 0) && (Math.abs(y1 - y2) > 2 * ellipsoid.getMajor()); }
@Override public boolean crossSeam(ProjectionPoint pt1, ProjectionPoint pt2) { // TODO: check, taken from ucar.unidata.geoloc.projection.TransverseMercator // either point is infinite if (ProjectionPointImpl.isInfinite(pt1) || ProjectionPointImpl.isInfinite(pt2)) { return true; } double y1 = pt1.getY() - falseNorthing; double y2 = pt2.getY() - falseNorthing; // opposite signed long lines return (y1 * y2 < 0) && (Math.abs(y1 - y2) > 2 * ellipsoid.getMajor()); }
@Override public boolean crossSeam(ProjectionPoint pt1, ProjectionPoint pt2) { // TODO: check, taken from ucar.unidata.geoloc.projection.TransverseMercator // either point is infinite if (ProjectionPointImpl.isInfinite(pt1) || ProjectionPointImpl.isInfinite(pt2)) { return true; } double y1 = pt1.getY() - falseNorthing; double y2 = pt2.getY() - falseNorthing; // opposite signed long lines: LOOK ???? return (y1 * y2 < 0) && (Math.abs(y1 - y2) > 2 * ellipsoid.getMajor()); }
@Override public boolean crossSeam(ProjectionPoint pt1, ProjectionPoint pt2) { // TODO: check, taken from ucar.unidata.geoloc.projection.TransverseMercator // either point is infinite if (ProjectionPointImpl.isInfinite(pt1) || ProjectionPointImpl.isInfinite(pt2)) { return true; } double y1 = pt1.getY() - falseNorthing; double y2 = pt2.getY() - falseNorthing; // opposite signed long lines return (y1 * y2 < 0) && (Math.abs(y1 - y2) > 2 * ellipsoid.getMajor()); }
@Override public boolean crossSeam(ProjectionPoint pt1, ProjectionPoint pt2) { // either point is infinite if (ProjectionPointImpl.isInfinite(pt1) || ProjectionPointImpl.isInfinite(pt2)) return true; // opposite signed X values, larger then 100 km return (pt1.getX() * pt2.getX() < 0) && (Math.abs(pt1.getX() - pt2.getX()) > 100); }
@Override public boolean crossSeam(ProjectionPoint pt1, ProjectionPoint pt2) { // either point is infinite if (ProjectionPointImpl.isInfinite(pt1) || ProjectionPointImpl.isInfinite(pt2)) return true; // opposite signed X values, larger then 100 km return (pt1.getX() * pt2.getX() < 0) && (Math.abs(pt1.getX() - pt2.getX()) > 100); }
@Override public boolean crossSeam(ProjectionPoint pt1, ProjectionPoint pt2) { // either point is infinite if (ProjectionPointImpl.isInfinite(pt1) || ProjectionPointImpl.isInfinite(pt2)) return true; // opposite signed X values, larger then 100 km return (pt1.getX() * pt2.getX() < 0) && (Math.abs(pt1.getX() - pt2.getX()) > 100); }
@Override public boolean crossSeam(ProjectionPoint pt1, ProjectionPoint pt2) { // either point is infinite if (ProjectionPointImpl.isInfinite(pt1) || ProjectionPointImpl.isInfinite(pt2)) return true; // opposite signed X values, larger then 100 km return (pt1.getX() * pt2.getX() < 0) && (Math.abs(pt1.getX() - pt2.getX()) > 100); }
@Override public boolean crossSeam(ProjectionPoint pt1, ProjectionPoint pt2) { // either point is infinite if (ProjectionPointImpl.isInfinite(pt1) || ProjectionPointImpl.isInfinite(pt2)) return true; // opposite signed X values, larger then 100 km return (pt1.getX() * pt2.getX() < 0) && (Math.abs(pt1.getX() - pt2.getX()) > 100); }
/** * This returns true when the line between pt1 and pt2 crosses the seam. * When the cone is flattened, the "seam" is lon0 +- 180. * * @param pt1 point 1 * @param pt2 point 2 * @return true when the line between pt1 and pt2 crosses the seam. */ public boolean crossSeam(ProjectionPoint pt1, ProjectionPoint pt2) { // either point is infinite if (ProjectionPointImpl.isInfinite(pt1) || ProjectionPointImpl.isInfinite(pt2)) return true; // opposite signed X values, larger then 5000 km return (pt1.getX() * pt2.getX() < 0) && (Math.abs(pt1.getX() - pt2.getX()) > 5000.0); }
/** * This returns true when the line between pt1 and pt2 crosses the seam. * When the cone is flattened, the "seam" is lon0 +- 180. * * @param pt1 point 1 * @param pt2 point 2 * @return true when the line between pt1 and pt2 crosses the seam. */ public boolean crossSeam(ProjectionPoint pt1, ProjectionPoint pt2) { // either point is infinite if (ProjectionPointImpl.isInfinite(pt1) || ProjectionPointImpl.isInfinite(pt2)) return true; // opposite signed X values, larger then 5000 km return (pt1.getX() * pt2.getX() < 0) && (Math.abs(pt1.getX() - pt2.getX()) > 5000.0); }