Google Maps Waypoints not showing whole path

后端 未结 1 2041
忘了有多久
忘了有多久 2020-12-12 06:41

I am drawing a simple route from a source to destination using Google Maps V3 Directions Service.

I need to add some locations(midpoints or waypoints) that the route

1条回答
  •  醉梦人生
    2020-12-12 07:25

    A polylineOptions anonymous object is not (and shouldn't be) a google.maps.Polyline.

    var polylineProps = new google.maps.Polyline({
            strokeColor : '#009933',
            strokeOpacity : 1.0,
            strokeWeight : 3
    
        });
    

    Should be:

    var polylineProps = {
            strokeColor : '#009933',
            strokeOpacity : 1.0,
            strokeWeight : 3
    
        };
    

    If I fix that that, the line appears for the complete route:

    working fiddle

    code snippet:

    var map;
    var wyPts = [];
    
    
    
    function addWayPoints(location) {
      wyPts.push({
        location: location,
        stopover: true
      });
    }
    
    function createInfoWindowContent(latLng, contentStr) {
      var content = '

    ' + contentStr + '

    ' + 'LatLng: ' + latLng; return content; } function displayRoute(origin, destination, service, display) { service.route({ origin: origin, destination: destination, //waypoints: [{location: new google.maps.LatLng(30.439025, -97.685654)}, {location: new google.maps.LatLng(30.434882, -97.677015)} , {location:new google.maps.LatLng(30.429495, -97.675274)}], waypoints: wyPts, optimizeWaypoints: true, travelMode: google.maps.DirectionsTravelMode.DRIVING }, function(response, status) { if (status === google.maps.DirectionsStatus.OK) { display.setDirections(response); } else { alert('Could not display directions due to: ' + status); } }); } function initMap() { //////////source destination and middle waypoints var src = new google.maps.LatLng(30.444719, -97.686202); // //school //addWayPoints(src); var midPt1 = new google.maps.LatLng(30.439025, -97.685654); // addWayPoints(midPt1); var midPt2 = new google.maps.LatLng(30.434882, -97.677015); // addWayPoints(midPt2); var midPt3 = new google.maps.LatLng(30.429495, -97.675274); // addWayPoints(midPt3); /* for (var i = 0; i < wyPts.length; i++) { alert("pts are : " + wyPts[i].location); } */ var destination = new google.maps.LatLng(30.401820, -97.669545); // ///////////draw the map map = new google.maps.Map(document.getElementById('map'), { center: src, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.TOP_RIGHT, mapTypeIds: [google.maps.MapTypeId.ROADMAP, google.maps.MapTypeId.TERRAIN, google.maps.MapTypeId.HYBRID ] }, zoomControl: true, zoomControlOptions: { position: google.maps.ControlPosition.RIGHT_CENTER }, zoom: 14 }); //draw infowindow at src and destination var coordInfoWindowSrc = new google.maps.InfoWindow({ content: createInfoWindowContent(src, "Source"), maxWidth: 180 }); coordInfoWindowSrc.setPosition(src); coordInfoWindowSrc.open(map); var coordInfoWindowDest = new google.maps.InfoWindow({ content: createInfoWindowContent(destination, "Destination"), maxWidth: 180 }); coordInfoWindowDest.setPosition(destination); coordInfoWindowDest.open(map); //display route var polylineProps = { strokeColor: '#009933', strokeOpacity: 1.0, strokeWeight: 3 }; var directionsDisplay = new google.maps.DirectionsRenderer({ draggable: false, //do not make the route draggable map: map, suppressMarkers: true, polylineOptions: polylineProps }); var directionsService = new google.maps.DirectionsService(); displayRoute(src, destination, directionsService, directionsDisplay); //add listener to map directionsDisplay.addListener( 'change', function() { displayRoute(src, destination, directionsService, directionsDisplay); }); } google.maps.event.addDomListener(window, 'load', initMap);
    html,
    body,
    #map {
      height: 100%;
      width: 100%;
      margin: 0px;
      padding: 0px
    }
    
    

    related question: Google Map API V3. Unable to create custom polyline for TRANSIT directions

    0 讨论(0)
提交回复
热议问题