@ নিমোট দ্বারা সমাধানটি কাজ করতে আমাকে প্রায় দুই ঘন্টা ব্যয় করতে হয়েছিল, তার কেন্দ্র বিন্দু এবং প্রস্থ / উচ্চতা (বা ব্যাসার্ধ) কিলোমিটারের মধ্যে দিয়ে একটি সীমানা বাক্স তৈরি করার জন্য আমার কেবল একটি পদ্ধতির প্রয়োজন ছিল:
আমি সমাধানটি গণিত / ভৌগোলিকভাবে বুঝতে পারি না। চারটি স্থানাঙ্ক পাওয়ার জন্য আমি সমাধানটি চেষ্টা করেছিলাম (চেষ্টা করে এবং ত্রুটি করে):
উত্তর:
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);
}