سلام ، پروژه ای در پیش رو دارم و ماهیتش اینطوره که وقتی دو نفر بهم رسیدن یه رویدادی اجرا بشه و این اتفاق باید با مختصاتی که از لوکیشن ارسال میشه انجام بشه ، سوالم اینه که برسی این مورد چطور امکان پذیره؟
@samanzdev
@endworld
@ehsndvr
@alarus7
@mhyeganeh
@milad
@mohammadphp
@Nima.nori
@spaceman
@spaceman
@hosseinshirinegad98
با سلام خدمت شما.
بنده فکر میکنم منطق کار باید به این صورت باشه که شما 2 تا نقطه یا 2 تا هدف روی نقشه دارید ، هر 1 ثانیه یا کمتر مختصات نقاط به سرور ارسال میشن ، با استفاده از مختصات بدست اومده شما میتونید فاصله 2 نقطه از هم رو روی نقشه پیدا کنید ، یعنی از دستگاه اول چنتا مقدار برای شما میاد ، مثلا اینکه متخصاتش کجاست و هدف اون دستگاه کیه/چیه (که میشه نقطه دوم) این مقادیر به API ارسال میشن و اون API مقادیر رو به دستگاه دوم میفرسته و این روند انقدر ادامه پیدا میکنه تا وقتی نزدیک به هم شدن یک مثلا پیام برای 2 دستگاه ارسال بشه.
مثل کاری که اسنپ انجام میده ، بنده تا حالا از اسنپ استفاده نکردم اما فکر میکنم شما میتونید مسیر حرکت ماشین رو روی نقشه ببینید، اونم یه همچین قائده ایی داره ، حالا مثلا فرض کنیم به جای یک ماشین ، 2 تا ماشین روی نقشه هستن و دارن مسیر های هم دیگه رو میبینن که به هم نزدیک میشن.
دقیقا مطمئن نیستم که منطق بنده درسته یا نه و باید از یه کسی سوال بکنم اما حس میکنم همینه.
امیدوارم مفید بوده باشه.
@spaceman ببین فرض کن یه تعداد نامعلومی کاربر هستن که ثبت نام کردند و لوکیشنشون رو در اختیار اپ گذاشتن و اپ وظیفه داره تا برسی که کنه این افراد هر موقع که از نظر موقعیت مکانی کنار همدیگه قرار گرفتن یه رویدادی رو اجرا کنه مثلا صدای بوق رو برای اون دوکاربر پخش کنه سوال من اینه چطور این برسی که ایا کنار هم دیگه هستن رو انجام بدم
@Ho3ein ببینید فکر نکنم این موضوع رو بشه اینجا توضیح داد و اینکه صوتی خیلی راحت تره ، لطف کنید به تلگرام بنده پیام بدید.
آیدی : ehsndvr
اگر نتونستید هیچ اشکالی نداره ، بنده امشب یا فردا صبح سعی میکنم براتون کامل توضیحات رو بنویسم.
برای اینکه منطق کار رو بهتون توضیح بدم یک مثال میزنم ، همین بخش پرسش و پاسخ رو فرض کنید ، کاربران وقتی پیام میدن پیامشون توی سیستم ثبت میشه و شما وقتی وارد بخش پرسش و پاسخ میشید میتونید پاسخ افراد رو ببینید ، حالا اگه کسی شما رو مخاطب قرار بده در جایی ، سریع بات تلگرام برای شما پیامی میفرسته و میگه کسی شما رو مخاطب قرار داده.
حالا همین منطق رو بیارید توی کاری که شما میخواید انجام بدید ، هر یک ثانیه مختصات کاربران به سرور ارسال میشه و شما اونارو دارید ، حالا بررسی میکنید که کدوم مختصات به مختصات کاربر x نزدیک تره و این عمل باید برای تمامی کاربران اعمال بشه ، مسئله ایی که پیش میاد ذخیره مختصات در پایگاه داده هست که اون باید بررسی بشه ، کار شما آسون میشد اگر فقط 2 تا نقطه روی نقشه میخواستن بهم برسن ، مثل اسنپ که یک نقطه میخواد به یک نقطه دیگه برسه ، اما کار شما یکم پیچیده تره ، یعنی چندین تا نقطه روی نقشه هست و باید تمامی نقاط نسبت به سایر نقاط دیگه بررسی بشن ،بنده باید پرس و جو بکنم ببینم منطقم درسته یا نه ، چون منطق اینکار خیلی خیلی مهمه.
@samanzdev
@endworld
@alarus7
@mhyeganeh
@milad
@mohammadphp
@Nima.nori
@spaceman
@spaceman
@hosseinshirinegad98
دوستان به نظرتون پاسخ بنده منطقی هست ؟ شما نظری ندارید ؟
اول باید با یه کدی مثل این
<script>
var x = document.getElementById("demo");
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
} else {
x.innerHTML = "Geolocation is not supported by this browser.";
}
}
function showPosition(position) {
x.innerHTML = "Latitude: " + position.coords.latitude +
"<br>Longitude: " + position.coords.longitude;
}
</script>
لوکیشن کاربر رو بگیرین و توی یک دیتا بیس realtime ثبت کنید و هر چند ثانیه اپدیتیش هم کنید
بعد هم از اونور توی سرور هعی باید کوعری بزنید با دستور group by لوکیشن های برابر رو بگیرین
بعد به اون دستگاه هایی که لوکیشن برابر دارند باید با API یا هر چیز دیگه اطلاع بدین
سمت فرانت اند هم باید اون کاری می خواهید مثل بوق زدن رو اجرا کنید
در کل این مراحل به سرور خیلی فشار میاره خیلی خیلی بخاطر همین پیشنهادش نمی کنم
سلام
امیدوارم درست متوجه شده باشم.
در واقع شما می خوایید مختصات هر کاربر رو به دست بیارید بعدش هر کاربری که به هم نزدیک هستن، مثلا بهشون یه پيامی بدید.
اگه اینطور باشه شما می تونید مختصات هر کاربر رو بدست بیارید و بعدش داخل دیتابیس ذخیره کنید و یه نکته ای هم هست ممکنه کاربر یک مختصات ثابت نداشته باشه و شما باید آخرین متخصات کاربر رو ذخیره کنید و بعدش چک کنید که کدام دو کاربر به هم نزدیک هستن.
امیدوارم درست راهنمایی کرده باشم.
@Nima.nori
ایده اش برای من نیست مربوط به شهرداری میشه و سمت فرانتش همینطوره فقط بک اندش لاراوله
این روشی که فرمودید درسته اما فشار بسیار زیادی به سرور وارد میشه روش دیگری مد نظر ندارین؟
@samanzdev
می تونید از دیتابیس MongoDB استفاده کنید.
یه راه حل دیگه ای هم هست می تونید هر بار متخصات رو ذخیره نکنید مثلا کاربری برای بار اول با مختصات 50 ذخیره کردید برای بار دوم می تونید به شکلی ذخیره کنید که اگه بیشتر از 100 شد دوباره اون ردیف رو آپدیت کنید.
مثلا 100 تا 100 تا ذخیره کنید.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟