الیاس سخاوتی نیا
5 سال پیش توسط الیاس سخاوتی نیا مطرح شد
4 پاسخ

راهنمایی برای طراحی و پیاده سازی نقشه

@ali.bayat @hesammousavi @Alimotreb @milad @ali.farmani @khanzadimahdi @GHM @endworld

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


ثبت پرسش جدید
Reza Jashnsaz
تخصص : مهندس نرم افزار
@rezajashnsaz0011 5 سال پیش مطرح شد
1

اندروید کار نکردم ولی الگوریتمش احتمالا اینجوری باشه
وقتی درخواست ثبت میکنه مختصات طرف رو با api نقشه میگیری و بعد یه محدوده ای خودت مشخص میکنی و با سرویس های نوتیفیکشن واسشون نوتیف میفرستی
نقشه نشان رو زیاد دیدم ازش تعریف میکردن .. قطعا api هم خودش داره


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
1

درود

ابتدا طول و عرض جغرافیای کاربر رو پیدا کنید.
بعد متدی بنویسید که طول و عرض رو بگیره و در شعاع داخلی و خارجی (inner & outer Radius) یه دایره دنبالش بگرده


الیاس سخاوتی نیا
تخصص : علاقه‌مند به برنامه‌‎نویسی
@elyassir 5 سال پیش مطرح شد
0

@ali.bayat
ممنون
ببخشید میشه راجع به این متدی که گفتین یه توضیحی بدین؟
چجوری شعاع مناسب رو تشخیص بدم و تعیین کنم؟
تشکر


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
2

بخش اول رو باید با فلاتر بنویسید و بخش دوم در واقع لاجیک سمت سرور شما میشه.
در سمت سرور باید طول و عرض رو در جایی مثلا جدول users ذخیره کنید..

بقیه اش رو میتونید سمت سرور اجرا کنید و نتیجه رو به اپ پاس بدید و یا سمت اپ کوئری بزنید به سرور.

به فرض اینکه سمت سرور از دیتابیس SQL استفاده شده باشه نتیجه به صورت زیر میشه
وقتی اطلاعات طول و عرض در دیتابیس باشه.. میتونید راحت فاصله رو محاسبه کنید:

$sql = "((ACOS(SIN(? * PI() / 180) * SIN(" . $latName . " * PI() / 180) + COS(? * PI() / 180) * COS(" .
    $latName . " * PI() / 180) * COS((? - " . $lonName . ") * PI() / 180)) * 180 / PI()) * 60 * ?) as distance";

latName و lonName نام فیلدهای مربوط به طول و عرض جغرافیایی هستند

با اضافه کردن یه قسمت کوچیک به کوئری بالا میتونید فواصل موجود در دایره رو چک کنید:

'distance BETWEEN ? AND ?' $inner_radius $outer_radius

چنانچه توی نت درباره مبحث Geofencing سرچ کنید.. احتمالا مثال های دیگه هم پیدا کنید


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

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