سلام دوستان
من با استفاده از دستور ajax لیست تمامی رانندگان را میگیرم و داخل صفحه با مارکر روی نقشه نشونشون میدم
اما حالا میخوام بگم پین مبدا من هر جا بود فقط تا شعاع دو کیلومتری راننده ها را نشون بده
عین اسنپ که هر منظقه ای که میری فقط راننده های همون منظقه رو نشون میده
حالا باید چیکار کنم ؟
البته راه حل ها رو تئوری بلدم ولی چون جاوااسکریپتم قوی نیست نمیتونم پیاده سازی کنیم
کسی کدی میتونه کمک کنه ؟
با تشکر
باید point لوکیشن طرف رو بگیری و با تمام ماشین های اطرافش با استفاده از رابطه فیثاغورسی که بین فاصله مبدا و مقصد میبندی یه rate که میشه وتر مثلث به دست بیاری
بعد ببینی نسبت به scale نقشه چه عددی کمتر از ۲ کیلومتره و با یه tolerance حساب کنی
البته خیلی دقیق نیست چون کوچه ها ، خیابون ها و ... رو حساب نمیکنه فقط یک خط صاف از مبدا تا ماشین رو میگیره
@tabeshr
خودم پیداش کردم
گفتم با دوستان به اشتراک بذارم
<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>
من به دوستانی که میخوان با نقشه کار کنن قویا توصیه میکنم به جای استفاده از google maps از osm برای سرور نقشه و از leaflet برای کلاینت جاوااسکریپتی استفاده کنن
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟