添加中途停留点

时间:2014-10-11 13:13:28

标签: google-maps google-maps-api-3

我在向谷歌地图路线添加中途停留点时遇到问题。这是我在下面的calcRoute函数。基本上我有一个名为waypts的latlng对象数组,waypts [0]和waypts [waypts.length-1]之间的所有点都应该是中途停留点。我知道我只需要遍历这些点并用这样的东西进行中途停留:

<script type="text/javascript">
      var directionsDisplay;
      var directionsService = new google.maps.DirectionsService();
      var map;
      var phpway = <?php echo json_encode($phpway); ?>;
      var waypts = [];

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

      function initialize() {
        directionsDisplay = new google.maps.DirectionsRenderer();
        var chicago = new google.maps.LatLng(41.850033, -87.6500523);
        var mapOptions = {
          zoom: 6,
          center: chicago
        }
        map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);
        directionsDisplay.setMap(map);
      }

      function calcRoute() {
        var start = waypts[0];
        var end = waypts[waypts.length-1];
        var mywaypts = [];
        for (var i = 1; i < waypts.length-1; i++) {

            mywaypts.push({
                location:waypts[i],
                stopover:true});

        }

        var request = {
            origin: start,
            destination: end,
            waypoints: mywaypts,
            optimizeWaypoints: true,
            travelMode: google.maps.TravelMode.DRIVING
        };
        directionsService.route(request, function(response, status) {
          if (status == google.maps.DirectionsStatus.OK) {
            directionsDisplay.setDirections(response);
            var route = response.routes[0];

          }
        });
      }

      google.maps.event.addDomListener(window, 'load', initialize);
      </script>

1 个答案:

答案 0 :(得分:0)

您不应在路标数组中包含起点/终点,只需在请求中传递waypts数组:

var request = {
    origin : start,
    destination : end,
    waypoints: waypts,
    travelMode : google.maps.TravelMode.DRIVING
};

请参阅doc:https://developers.google.com/maps/documentation/javascript/directions?hl=FR#Waypoints