मुझे @nibot द्वारा समाधान निकालने के लिए लगभग दो घंटे बिताने थे, मुझे बस एक केंद्र बिंदु बनाने की विधि की आवश्यकता थी जो किलोमीटर में इसकी केंद्र बिंदु और चौड़ाई / ऊँचाई (या त्रिज्या) को देखते हुए:
मैं समाधान को गणितीय / भौगोलिक रूप से नहीं समझता। मैंने चार निर्देशांक प्राप्त करने के लिए समाधान (कोशिश और त्रुटि द्वारा) को ट्विक किया:
उत्तर:
private static Position FromKmToNPosition(Position p, double km)
{
double r_earth = 6378;
var pi = Math.PI;
var new_latitude = p.Lat + (km / r_earth) * (180 / pi);
return new Position(new_latitude, p.Long);
}
पूर्व:
private static Position FromKmToEPosition(Position p, double km)
{
double r_earth = 6378;
var pi = Math.PI;
var new_longitude = p.Long + (km / r_earth) * (180 / pi) / Math.Cos(p.Lat * pi / 180);
return new Position(p.Lat, new_longitude);
}
दक्षिण:
private static Position FromKmToSPosition(Position p, double km)
{
double r_earth = 6378;
var pi = Math.PI;
var new_latitude = p.Lat - (km / r_earth) * (180 / pi);
return new Position(new_latitude, p.Long);
}
पश्चिम:
private static Position FromKmToWPosition(Position p, double km)
{
double r_earth = 6378;
var pi = Math.PI;
var new_longitude = p.Long - (km / r_earth) * (180 / pi) / Math.Cos(p.Lat * pi / 180);
return new Position(p.Lat, new_longitude);
}