So, adding offset to my coords would be like this (assuming +10m lon, +0m lat)
double[] xy = new double[] { 12.3798088936852, 43.993187787765493 };
double lon = (10 / 20037508.34) * 180;
double lat = (0 / 20037508.34) * 180;
lat = 180 / Math.PI * (2 * Math.Atan(Math.Exp(lat * Math.PI / 180))  Math.PI / 2);
double[] xy1 = new double[] { xy[0] + lon, xy[1] + lat };
so my point become 12.379898725213623,43.993187787765493
I calculated the distance from my point and this point with Haversine formula, and the result is 7.1926152788263975 meters
If I do this (+0m lon, +10m lat)
double lon = (0 / 20037508.34) * 180;
double lat = (10 / 20037508.34) * 180;
lat = 180 / Math.PI * (2 * Math.Atan(Math.Exp(lat * Math.PI / 180))  Math.PI / 2);
double[] xy1 = new double[] { xy[0] + lon, xy[1] + lat };
my point become 12.3798088936852,43.993277619293913
and the distance is 9.9986380096607643 (1,3mm per meter error)
