پیدا کردن راننده در شعاع 2 کیلومتری

3 سال پیش توسط کمال مطرح شد
آفلاین
user-avatar
کمال ( 16770 تجربه )
3 سال پیش
تخصص : برنامه نویس ارشد وب

لینک کوتاه اشتراک گذاری

1

سلام دوستان
من با استفاده از دستور ajax لیست تمامی رانندگان را میگیرم و داخل صفحه با مارکر روی نقشه نشونشون میدم
اما حالا میخوام بگم پین مبدا من هر جا بود فقط تا شعاع دو کیلومتری راننده ها را نشون بده
عین اسنپ که هر منظقه ای که میری فقط راننده های همون منظقه رو نشون میده
حالا باید چیکار کنم ؟
البته راه حل ها رو تئوری بلدم ولی چون جاوااسکریپتم قوی نیست نمیتونم پیاده سازی کنیم
کسی کدی میتونه کمک کنه ؟
با تشکر

آفلاین
user-avatar
Manoochehr Mojgani ( 49 تجربه )
3 سال پیش

لینک کوتاه اشتراک گذاری

1

باید point لوکیشن طرف رو بگیری و با تمام ماشین های اطرافش با استفاده از رابطه فیثاغورسی که بین فاصله مبدا و مقصد میبندی یه rate که میشه وتر مثلث به دست بیاری
بعد ببینی نسبت به scale نقشه چه عددی کمتر از ۲ کیلومتره و با یه tolerance حساب کنی
البته خیلی دقیق نیست چون کوچه ها ، خیابون ها و ... رو حساب نمیکنه فقط یک خط صاف از مبدا تا ماشین رو میگیره
@tabeshr

آفلاین
user-avatar
کمال ( 16770 تجربه )
3 سال پیش
تخصص : برنامه نویس ارشد وب

لینک کوتاه اشتراک گذاری

2

خودم پیداش کردم
گفتم با دوستان به اشتراک بذارم

<script>
    var markers = [];
    var distance = [];
    var currentMarker;
    window.onload = function () {
        google.maps.event.addListener(map, 'center_changed', function () {

            for (var i = 0; i < markers.length; i++) {
                markers[i].setMap(null);
            }
            $.ajax({
                url: 'http://localhost:8000/showDriver',
                data: '',
                success: function (json) {
                    data = jQuery.parseJSON(json);
                    $.each(data, function (key, job) {

                        distance = google.maps.geometry.spherical.computeDistanceBetween(new google.maps.LatLng(map.getCenter().lat(), map.getCenter().lng()), new google.maps.LatLng(job.latitude, job.longitude));
                        if (distance < 2000) {
                            currentMarker = new google.maps.Marker({
                                position: new google.maps.LatLng(job.latitude, job.longitude),
                                map: map,
                                icon: 'https://web.taxi133app.com/images/pin6.png'
                            });
                            markers.push(currentMarker);
                        }

                    })
                }
            });

        });
    }

</script>
آفلاین
user-avatar
مهدی طهرانی ( 18566 تجربه )
3 سال پیش
تخصص : cloud architect

لینک کوتاه اشتراک گذاری

1

من به دوستانی که میخوان با نقشه کار کنن قویا توصیه میکنم به جای استفاده از google maps از osm برای سرور نقشه و از leaflet برای کلاینت جاوااسکریپتی استفاده کنن

برای ارسال پاسخ لازم است، ابتدا وارد سایت شوید.