Javascript 对于回路内部航路点-谷歌地图

Javascript 对于回路内部航路点-谷歌地图,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,我正在尝试显示一条带有旅行航路点的路线。我将所有坐标保存到一个MySQL varchar属性中,然后使用php将其取出,并将其分割成一个数组,这样两个数组元素FROUTS[0]和FROUTS[1]表示开始,FROUTS[2]和FROUTS[3]表示第一个航路点,即访问的第二个地点,依此类推 我试图显示行程的路线,如果我不使用航路点,也就是说,如果我不使用除起点和终点之外的所有点填充waypts数组,它将非常有效 这是我的密码 <style> #map-canvas {

我正在尝试显示一条带有旅行航路点的路线。我将所有坐标保存到一个MySQL varchar属性中,然后使用php将其取出,并将其分割成一个数组,这样两个数组元素FROUTS[0]和FROUTS[1]表示开始,FROUTS[2]和FROUTS[3]表示第一个航路点,即访问的第二个地点,依此类推

我试图显示行程的路线,如果我不使用航路点,也就是说,如果我不使用除起点和终点之外的所有点填充waypts数组,它将非常有效

这是我的密码

 <style>
      #map-canvas {
        width: 100%;
            height: 400px;
          }
        </style>

        <script type="text/javascript">
            var fruits = <?php echo json_encode($arr); ?>;

            for (var i = 0; i < fruits.length; i+=2) {
           //text += cars[i]; 
            }

          </script>

     <script>
var directionsDisplay;
var directionsService = new google.maps.DirectionsService();
var map;

function initialize() {
  directionsDisplay = new google.maps.DirectionsRenderer();
  var dbk = new google.maps.LatLng(fruits[0], fruits[1]);
  var mapOptions = {
    zoom: 11,
    center: dbk,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  }
  map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
  directionsDisplay.setMap(map);
  calcRoute();
}
 function calcRoute() {

    var waypts = [];

    for (var i = 2; i < fruits.length -2; i+=2) {
      waypts.push(new google.maps.LatLng(fruits[i], fruits[i+1])); 
    };

    var request = {
        origin: new google.maps.LatLng(fruits[0], fruits[1]),
        destination: new google.maps.LatLng(fruits[fruits.length-2],fruits[fruits.length-1] ),
        waypoints: waypts,
        optimizeWaypoints: true,
        travelMode: google.maps.DirectionsTravelMode.DRIVING
    };
    directionsService.route(request, function(response, status) {
      if (status == google.maps.DirectionsStatus.OK) {
        directionsDisplay.setDirections(response);
        var route = response.routes[0];
        var summaryPanel = document.getElementById("directions_panel");
        summaryPanel.innerHTML = "";
        // For each route, display summary information.
        for (var i = 0; i < route.legs.length; i++) {
          var routeSegment = i + 1;
          summaryPanel.innerHTML += "<b>Route Segment: " + routeSegment + "</b><br />";
          summaryPanel.innerHTML += route.legs[i].start_address + " to ";
          summaryPanel.innerHTML += route.legs[i].end_address + "<br />";
          summaryPanel.innerHTML += route.legs[i].distance.text + "<br /><br />";
        }
      } else {
        alert("directions response "+status);
      }
    });
  }

google.maps.event.addDomListener(window, 'load', initialize);

    </script>

#地图画布{
宽度:100%;
高度:400px;
}
var水果=;
对于(变量i=0;i<0.length;i+=2){
//text+=汽车[i];
}
var方向显示;
var directionsService=new google.maps.directionsService();
var映射;
函数初始化(){
directionsDisplay=new google.maps.DirectionsRenderer();
var dbk=new google.maps.LatLng(水果[0],水果[1]);
变量映射选项={
缩放:11,
中心:dbk,,
mapTypeId:google.maps.mapTypeId.ROADMAP
}
map=new google.maps.map(document.getElementById('map-canvas'),mapOptions);
方向显示.setMap(地图);
calcRoute();
}
函数calcRoute(){
var-waypts=[];
对于(变量i=2;i”;
summaryPanel.innerHTML+=route.legs[i]。起始地址+“to”;
summaryPanel.innerHTML+=route.legs[i]。结束地址+“
”; summaryPanel.innerHTML+=route.legs[i].distance.text+“

”; } }否则{ 警报(“方向响应”+状态); } }); } google.maps.event.addDomListener(窗口“加载”,初始化);
您需要将其用于航路点

var waypts = [];

for (var i = 2; i < fruits.length -2; i+=2) {
  waypts.push({
     location:new google.maps.LatLng(fruits[i], fruits[i+1]),
     stopover:true
  }); 
};
var-waypts=[];
对于(变量i=2;i