ali jvn.
6 سال پیش توسط ali jvn. مطرح شد
7 پاسخ

حساب کردن هزینه پیک روی نقشه با لاراول

با سلام خدمت دوستان عزیز راکتی
من چند وقته دنبال راهی برای محاسبه ی قیمت پیک از روی نقشه میگردم مثل اسنپ فود
کسی میدونه توی لاراول پکیجی برای اینکار هست یا خیر؟
اگر کسی میتونه این کار رو پیاده سازی کنه و توضیح بده با من تماس بگیره هزینش هم متقبل میشم
ممنون


ثبت پرسش جدید
vahid Mohammadi
@viva.mohammadi 6 سال پیش مطرح شد
1

@alijavanmardi1996
بیبنید اگر اصرار دارید که حتما از یک پکیج استفاده کنید از پکیج زیر می تونید استفاده بفرمایید

https://github.com/bodunadebiyi/Laravel-Google-Geocoder

اما شما با استفاده از تابع زیر هم میتونید اینکارو انجام بدید

function getDistanceBetweenPointsNew($latitude1, $longitude1, $latitude2, $longitude2, $unit = 'Km') {
     $theta = $longitude1 - $longitude2;
     $distance = (sin(deg2rad($latitude1)) * sin(deg2rad($latitude2))) + (cos(deg2rad($latitude1)) * cos(deg2rad($latitude2)) * cos(deg2rad($theta)));
     $distance = acos($distance);
     $distance = rad2deg($distance);
     $distance = $distance * 60 * 1.1515; switch($unit) {
          case 'Mi': break; case 'Km' : $distance = $distance * 1.609344;
     }
     return (round($distance,2));
}

البته از API خود google map هم می تونید استفاده کنید


ali jvn.
تخصص : توسعه دهنده وب (back-end)
@alijavanmardi 6 سال پیش مطرح شد
0

@tabeshr
@hesammousavi
مهندسین عزیز شما میتونید راهنمایی کنید؟


vahid Mohammadi
@viva.mohammadi 6 سال پیش مطرح شد
1

@alijavanmardi1996
بیبنید اگر اصرار دارید که حتما از یک پکیج استفاده کنید از پکیج زیر می تونید استفاده بفرمایید

https://github.com/bodunadebiyi/Laravel-Google-Geocoder

اما شما با استفاده از تابع زیر هم میتونید اینکارو انجام بدید

function getDistanceBetweenPointsNew($latitude1, $longitude1, $latitude2, $longitude2, $unit = 'Km') {
     $theta = $longitude1 - $longitude2;
     $distance = (sin(deg2rad($latitude1)) * sin(deg2rad($latitude2))) + (cos(deg2rad($latitude1)) * cos(deg2rad($latitude2)) * cos(deg2rad($theta)));
     $distance = acos($distance);
     $distance = rad2deg($distance);
     $distance = $distance * 60 * 1.1515; switch($unit) {
          case 'Mi': break; case 'Km' : $distance = $distance * 1.609344;
     }
     return (round($distance,2));
}

البته از API خود google map هم می تونید استفاده کنید


ali jvn.
تخصص : توسعه دهنده وب (back-end)
@alijavanmardi 6 سال پیش مطرح شد
0

@viva.mohammadi
ممنون از راهنماییت مهندس
فقط یه چیزی اگر بخوام مثل اسنپ روی نقشه به صورت منطقه ای قیمت بدم چکار باید بکنم؟


vahid Mohammadi
@viva.mohammadi 6 سال پیش آپدیت شد
0

@alijavanmardi1996
خواهش میکنم
اسنپ بعد از تحریم های گوگل مپ از سرویس نقشه زیر داره استفاده میکنه. شما می تونید راهنمای اون رو مطالعه بفرمایید

http://corp.map.ir/

ali jvn.
تخصص : توسعه دهنده وب (back-end)
@alijavanmardi 6 سال پیش مطرح شد
0

خیلی ممنون از راهنماییت دوست عزیز


arazsalmasi
@araz2salmasi 6 سال پیش مطرح شد
0

سلام مهندس
@viva.mohammadi
تو تابعی که گفتید نتیجه ای که برگشت داده میشه چیه؟عدد فاصله به کیلومتر هست؟
چون کیلو متر باشه من با مپ چک کردم جایی که مثلا یه کیلومتر فاصله داره رو 3 کیلومتر میگه
خیلی ممنون میشم کمک کنید


vahid Mohammadi
@viva.mohammadi 6 سال پیش مطرح شد
0

@araz2salmasi

سلام
بیبنید تابع یه ورودی پیش فرض داره به نام $unit که Km هست و نتیجه رو به کیلومتر بر می گردونه و اگر خواستید به مایل باشه باید Mi رو پاس بدید بهش.
در مورد اون یک کیلومتر مورد عجیبیه که می فرمایید شما به نظرم یک کار کنید توی وب سایت زیر نگاه کنید ببینید فاصله رو چقدر می زنه و با خروجی تابع مقایسه کنید.

https://www.movable-type.co.uk/scripts/latlong.html

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام