سؤال

هل هذا غير دقيق؟ أعيد تزرور الشيء كله مع الدقة التعسفي Apfloوات ولم يحدث فرق يجب أن أعرفه به !!

public static double bearing(LatLng latLng1, LatLng latLng2) {
 double deltaLong = toRadians(latLng2.longitude - latLng1.longitude);

 double lat1 = toRadians(latLng1.latitude);
 double lat2 = toRadians(latLng2.latitude);

 double y = sin(deltaLong) * cos(lat2);
 double x = cos(lat1) * sin(lat2) - sin(lat1) * cos(lat2) * cos(deltaLong);
 double result = toDegrees(atan2(y, x));
 return (result + 360.0) % 360.0;
}

@Test
 public void testBearing() {

  LatLng first = new LatLng(36.0, 174.0);
  LatLng second = new LatLng(36.0, 175.0);
  assertEquals(270.0, LatLng.bearing(second, first), 0.005);
  assertEquals(90.0, LatLng.bearing(first, second), 0.005);
 }

أول تأكيد في الاختبار يعطي هذا:

java.lang.assertionError: المتوقع: <270.0> ولكن كان: <270.29389750911355>

0.29 يبدو أنها طويلة جدا قبالة؟ هل هذه هي الصيغة التي اخترتها لتنفيذها؟

هل كانت مفيدة؟

المحلول

إذا كنت قد فعلت ما يبدو أنه قد فعلت وفعلته بشكل صحيح، فقد أحضت على تحمل أ دائرة كبيرة بين A و B، وليس قوس خط خط العرض بين A و B.

تعطي وظائف الرياضيات الجيوديسية للمحامل، لمراكز الاختبار الخاصة بك، كما 89.7061 و 270.294.

لذلك، يبدو أنه إذا كان (أ) حسابك صحيحا ولكن (ب) تحتاج المهارات الخاصة بك بالملاحة إلى تلميع.

نصائح أخرى

هل أنت متأكد من أن هذا بسبب مشاكل رقمية؟ يجب أن أعترف، أنني لا أعرف بالضبط ما تحاول حسابه، ولكن عندما تتعامل مع زوايا على كرة، انحرافات صغيرة مما تتوقعه في هندسة Euclidian.

java.lang.assertionError: المتوقع: <270.0> ولكن كان: <270.29389750911355>

هذا الخطأ 0.29 يمثل الخطأ المطلق خطأ نسبا بنسبة 0.1٪. كيف هذا "طريق طويل"؟

يطفو سيعطي 7 أرقام كبيرة؛ الزوجي جيدة ل 16. يمكن أن تكون وظائف Trig أو درجات تحويل الرضعين.

الصيغة تبدو صحيحة، إذا هذا المصدر هو أن يعتقد.

إذا قمت بتوصيل القيم البداية والنهائية في تلك الصفحة، فإن النتيجة التي يقدمها هي 089 ° 42'22 ". إذا قمت بطرح الناتج عن 360 وتحويل إلى درجات، والدقائق والثواني تكون النتيجة مماثلة لصالحهم. إما أنك صحيحة أو كنت مخطئا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top