آفلاین
user-avatar

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

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

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

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

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

آفلاین
user-avatar
تابش ( 3091 تجربه )
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
مهدی طهرانی ( 18476 تجربه )
2 سال پیش
تخصص : cloud architect

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

برای ارسال پاسخ باید وارد سایت شوید