added destination ruler

This commit is contained in:
afischerdev 2025-01-21 12:14:15 +01:00
parent a5fca2d8f2
commit 9bcf8714e5

View File

@ -77,4 +77,21 @@ public final class CheapRuler {
double dlat = (ilat1 - ilat2) * kxky[1]; double dlat = (ilat1 - ilat2) * kxky[1];
return Math.sqrt(dlat * dlat + dlon * dlon); // in m return Math.sqrt(dlat * dlat + dlon * dlon); // in m
} }
public static int[] destination(int lon1, int lat1, double distance, double angle) {
double[] lonlat2m = getLonLatToMeterScales(lat1);
double lon2m = lonlat2m[0];
double lat2m = lonlat2m[1];
angle = 90. - angle;
double st = Math.sin(angle * Math.PI / 180.);
double ct = Math.cos(angle * Math.PI / 180.);
int lon2 = (int) (0.5 + lon1 + ct * distance / lon2m);
int lat2 = (int) (0.5 + lat1 + st * distance / lat2m);
int[] ret = new int[2];
ret[0] = lon2;
ret[1] = lat2;
return ret;
}
} }