2

我正在做一个类似优步的应用程序。实时跟踪没有问题,但是当我需要将车辆引导到某个地方时,地图上有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 个标记可见。第一个标记也应该显示我当前的位置。我从上面的脚本代码中得到了经纬度信息,但是没有更新。

谢谢。

4

0 回答 0