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

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

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


ثبت پرسش جدید
vahid Mohammadi
vahid Mohammadi
@viva.mohammadi7 سال پیشمطرح شد
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.
ali jvn.
تخصص :توسعه دهنده وب (back-end)
@alijavanmardi7 سال پیشمطرح شد
0

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


vahid Mohammadi
vahid Mohammadi
@viva.mohammadi7 سال پیشمطرح شد
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.
ali jvn.
تخصص :توسعه دهنده وب (back-end)
@alijavanmardi7 سال پیشمطرح شد
0

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


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

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

http://corp.map.ir/

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

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


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

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


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

@araz2salmasi

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

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

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

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