package uni.projecte.maps.utils;
import uni.projecte.maps.UTMGrid;
import edu.ub.bio.biogeolib.CoordConverter;
import edu.ub.bio.biogeolib.CoordinateLatLon;
import edu.ub.bio.biogeolib.CoordinateUTM;
public class UTMUtils {
public static final int NORTH = 1;
public static final int SOUTH = 2;
public static UTMGrid getUTMBoundingBox(CoordinateUTM utm, boolean hemisNorth, double accuracy){
double xMinus=utm.getX()%10000;
double yMinus=utm.getY()%10000;
CoordinateUTM utmBox=new CoordinateUTM(hemisNorth,utm.getZone(),utm.getX()-xMinus,utm.getY()-yMinus,accuracy);
/*
* UpperLeft --> c******d
* (lat/long) ********
* ********
* b******a <--- LowerRight (lat,long)
*
*/
CoordinateUTM utmLR = new CoordinateUTM(hemisNorth,utmBox.getZone(), utmBox.getX() + utmBox.getAccuracy(), utmBox.getY());
CoordinateUTM utmLL = new CoordinateUTM(hemisNorth,utmBox.getZone(), utmBox.getX(), utmBox.getY());
CoordinateUTM utmUL = new CoordinateUTM(hemisNorth,utmBox.getZone(), utmBox.getX(), utmBox.getY() + accuracy);
CoordinateUTM utmUR = new CoordinateUTM(hemisNorth,utmBox.getZone(), utmBox.getX() + utmBox.getAccuracy(), utmBox.getY()+ accuracy);
CoordConverter conv=CoordConverter.getInstance();
CoordinateLatLon lowerRight=conv.toLatLon(utmLR);
CoordinateLatLon lowerLeft=conv.toLatLon(utmLL);
CoordinateLatLon upperLeft=conv.toLatLon(utmUL);
CoordinateLatLon upperRight=conv.toLatLon(utmUR);
return new UTMGrid(lowerRight,lowerLeft,upperLeft,upperRight);
}
public static int getHemis(boolean north){
if(north) return NORTH;
else return SOUTH;
}
}