Khaled Mohammed7 نشر 16 أغسطس 2021 أرسل تقرير نشر 16 أغسطس 2021 تحديد المسافة بين موقعين باستخدام php فلدي قيمة x , y الخاصة بي و لدي قيمة x, y للموقع الذي اريد تحديد المسافة بيني و بينه 1 اقتباس
0 بلال زيادة نشر 16 أغسطس 2021 أرسل تقرير نشر 16 أغسطس 2021 بتاريخ 13 دقائق مضت قال Khaled Mohammed7: x 0 , y 0 , x -1, y 4 ربما استطيع مساعدتك في برمجة دالة تحدد المسافة , فلنقم بصنع دالة وليكن اسمها getDistance function getDistance(){ } و لنمرر لها المتغيرات الأتية و هي $lat1, $lon1, $lat2, $lon2, $radius بحيث $lat1, $lon1 هي أحداثيات الموقع الخاص بك و $lat2, $lon2 هي أحداثيات الموقع الذي تريد جلب المسافة بينك وبينه و $radius هو نصف قطر بين كل أحداثيين فتكون الدالة بهذا الشكل function getDistance( $lat1, $lon1, $lat2, $lon2, $radius ) { } ثم نقوم بجلب الزاوية باستخدام متغير $radius $angle = $radius / 180; ثم نقسم كل أحداثية على هذه الزاوية $lat1 /= $angle; $lon1 /= $angle; $lat2 /= $angle; $lon2 /= $angle; ثم نستخدم rad2deg لتحويل الرقم الدائري إلى رقم مكافئ بالدرجات ثم نمرر لها دالة acos لجيب تمام القوسي للرقم ثم نمرر المتغيرات الأربعة داخل دالة sin لإرجاع جيب الرقم بهذا الشكل return rad2deg( acos( sin( deg2rad( $lat1 ) ) * sin( deg2rad( $lat2 ) ) + cos( deg2rad( $lat1 ) ) * cos( deg2rad( $lat2 ) ) * cos( deg2rad( $lon1 - $lon2 ) ) ) ) * $angle; ثم نضرب الرقم الناتج بالزاوية حتى نحصل على المسافة فتكون الدالة بهذا الشكل function getDistance( $lat1, $lon1, $lat2, $lon2, $radius ) { $angle = $radius / 180; $lat1 /= $angle; $lon1 /= $angle; $lat2 /= $angle; $lon2 /= $angle; return rad2deg( acos( sin( deg2rad( $lat1 ) ) * sin( deg2rad( $lat2 ) ) + cos( deg2rad( $lat1 ) ) * cos( deg2rad( $lat2 ) ) * cos( deg2rad( $lon1 - $lon2 ) ) ) ) * $angle; } يرجى تطبيق الحل و أخباري بالنتيجة , فهذا الحل ربما يفيدك و أتمنى أن أكون أجبت على سؤالك بشكلٍ جيد, الأمر قد يكون معقد نوعاً ما و لكن بعد مراجعة الدوال المستخدمة ستوضح لك الأمور كاملة بإذن الله 1 اقتباس
0 بلال زيادة نشر 16 أغسطس 2021 أرسل تقرير نشر 16 أغسطس 2021 هل يمكنك إرفاق الأحداثيات لموقعك و الموقع الأخر , أي كيف تكون شكل الأحداثيات ؟ 1 اقتباس
0 Khaled Mohammed7 نشر 16 أغسطس 2021 الكاتب أرسل تقرير نشر 16 أغسطس 2021 x 0 , y 0 , x -1, y 4 اقتباس
0 Hassan Hedr نشر 16 أغسطس 2021 أرسل تقرير نشر 16 أغسطس 2021 (معدل) يمكن ايجاد المسافة باستخدام التابع التالي function distance($x1, $y1, $x2, $y2) { return sqrt(pow(abs($x1 - $x2), 2) + pow(abs($y1 - $y2), 2)); } أو استعمال التابع hypot في PHP كما يلي $distance = hypot($x1 - $x2, $y1 - $y2); كلا الطريقتين تعتمدان مبدأ معادلة حساب الوتر المتشكل بين النقطتين تم التعديل في 16 أغسطس 2021 بواسطة Hassan Hedr 1 اقتباس
السؤال
Khaled Mohammed7
تحديد المسافة بين موقعين باستخدام php فلدي قيمة x , y الخاصة بي و لدي قيمة x, y للموقع الذي اريد تحديد المسافة بيني و بينه
4 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.