الگوریتم مسیر یابی بهیته
با سلام
دوستان در گیر یه پروژه شبیه اسنپ هستم. فرض کنین شما داخل سرور موقعیت یک سری افراد ( در خواست کننده) و همچنین افراد سرویس دهنده ( راننده) رو دارین هدف اینه که اولین در خواست کننده به نزدیک ترین راننده لینک بشه و دنبال یه الگوریتم بهینه برای انجام این کار هستم دوستانی که در چنین موردی تجربه دارند لطفا راهنمایی فرمایند
با تشکر
سلام عرض شد عزیز
ابتدا شما باید lat و lon کاربر رو بگیرید بعد عمل مقایسه با lat lon تاکسی ها داشته باشید و متر رو برگردونید . بعد اون هایی که کوچکتر هستند یعنی فاصلشون کمتر هست sort بدید که بالاتر نمایش دهند ( به ترتیب فاصله )
کد php دریافت متر از دو lat و lon :
function measure($lat1, $lon1, $lat2, $lon2) {
$R = 6378.137;
$dLat = $lat2 * pi() / 180 - $lat1 * pi()/ 180;
$dLon = $lon2 * pi() / 180 - $lon1 * pi() / 180;
$a = sin($dLat/2) * sin($dLat/2) + cos($lat1 * pi()/ 180) * cos($lat2 * pi() / 180) * sin($dLon/2) * sin($dLon/2);
$c = 2 * atan2(sqrt($a), sqrt(1-$a)); $d = $R * $c;
return $d * 1000; // meters }
}
این روش روش درستی هست و لی سوال اینه که آیا بهینه هم هست فرض کنین مثلا 1000 تا تاکسی دارین پس به ازای هر درخواست هزار محاسبه دارین و بعد هم سورت کردن نکته بعد هم اینه که مشخصات تاکسی ها بعد از گذشت زمان تغییر میکنه و این یعنی محسبات بیشتر در ست بودن این الگوریتم رو میدونم ولی بهینه بودنش رو نه
بازهم تشکر
من از این روش استفاده میکنم برای نرم افزارم . تا الان که مشکلی هم نداشته به سرور هم فشار نمیاره آنالیزش کردم اما باز بزار دوستان پاسخ بدند شاید روش بهتری پیدا شد.
اما فکر کنم در کل سرور ها اینقدر قوی هستند سر دو تا محاسبه کم نمیارن !
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .