```
//ASSUMES UNITS IN METERS
function get_new_coordinates(central_coord:TCoordinate; X,Y: real):Tcoordinate;
const R:real = 6378137; //Earth Radious in M
var central_lat,central_long,new_lat,new_long,bearing, distance: real;
begin
//Degrees to Radians
central_lat := central_coord.lat * (pi/180);
central_long := central_coord.long * (pi/180);
bearing := ArcTan2(Y,X);
distance := sqrt(sqr(X)+sqr(Y));
new_lat := arcsin(sin(central_lat)*cos(distance/R) + cos(central_lat)*sin(distance/R)*cos(bearing));
new_long := central_long + arctan2(sin(bearing)*sin(distance/R)*cos(central_lat),cos(distance/R)-sin(central_lat)*sin(new_lat));
//back to degrees
new_lat := new_lat * (180/pi);
new_long := new_long * (180/pi);
//round to 8 decimal places
result.lat := roundto(new_lat,-8);
result.long := roundto(new_long,-8);
end;
```