我正在做一个类似优步的应用程序。实时跟踪没有问题,但是当我需要将车辆引导到某个地方时,地图上有3个标记。第一个标记实时跟踪。第二个是起点,第三个标记是目标。通常,应该有 2 家杂货店。我的即时位置和目的地。我在某个地方遇到了问题,但我无法解决问题。我该如何解决这个问题?
无需此请求即可进行实时跟踪:
<script type="text/javascript">
var timer_control = 0;
var lati,longi;
timer_control = setInterval(req_control,15000)
function onLocationFound(e) {
if (current_position) {
map.removeLayer(current_position);
}
var radius = e.accuracy / 2;
current_position = L.marker(e.latlng).addTo(map).bindPopup("Test : {{ $car->test }}");
lati = e.latlng.lat;
longi = e.latlng.lng;
$.get( "/trac/mobil?lati="+e.latlng.lat + "&longi=" + e.latlng.lng+"&car_id="+carid);
}
function onLocationError(e) {
alert(e.message);
}
map.on('locationfound', onLocationFound);
map.on('locationerror', onLocationError);
function locate() {
map.locate({setView: true, maxZoom: 16});
}
setInterval(locate, 10000);
</script>
至于路由请求:
<script type="text/javascript">
$.post( "{{ route('example.route.request') }}",
{
car_id:data.car_id
},
).done(function(data2) {
if(data2!=0 || data2!=2)
{
document.getElementById("address1").setAttribute("value", data.address1);
document.getElementById("address2").setAttribute("value", data.address2);
clearInterval(req_control);
if (current_position) {
map.removeLayer(current_position);
}
example_data = L.Routing.control({
waypoints: [
L.latLng(lati,longi),
L.latLng(data2.lati,data2.longi)
]
}).addTo(map);
}
});
</script>
我想将它用作导航应用程序。随着您越来越接近目标,路线应该会更新,并且应该只有 2 个标记可见。第一个标记也应该显示我当前的位置。我从上面的脚本代码中得到了经纬度信息,但是没有更新。
谢谢。