2012-01-28 33 views
6

Tôi đang cố gắng hiển thị nhiều tuyến đường trên cùng một bản đồ nhưng không thể làm như vậy.Hiển thị nhiều tuyến đường trên bản đồ google

Bất kể tôi làm gì để chỉ có một tuyến đường.

function calcRoute() { 
     var start = document.getElementById('start').value; 
     var end = document.getElementById('end').value; 
     var request = { 
      origin: start, 
      destination: end, 
      travelMode: google.maps.DirectionsTravelMode.DRIVING 
     }; 
     directionsService.route(request, function(response, status) { 
      if (status == google.maps.DirectionsStatus.OK) { 
      directionsDisplay.setDirections(response); 
      } 
     }); 
     } 

Mọi con trỏ sẽ hữu ích.

Trả lời

0

Bạn đã thử như sau?
Ở đây tôi đã chụp một đường dẫn và hiển thị nó. Bạn có thể làm tương tự bằng cách viết pointsArray = result.routes[1].overview_path; bên cạnh nó và hiển thị nó trong một vòng lặp mới.

directionsService.route (request, function (result, status) 
     { 
      if (status == google.maps.DirectionsStatus.OK) 
      { 
       directionsDisplay.setDirections (result); 
       pointsArray = result.routes[0].overview_path; 

       var i = 0; 
       var j = 0; 

       for (j = 0; j < pointsArray.length; j++) 
       { 
        var point1 = new google.maps.Marker ({ 
                position:pointsArray [j], 
                draggable:false, 
                map:map, 
                flat:true 
                }); 
       } 
      } 
     }); 
+0

có thực hiện kết quả này.routes [1] .overview_path; không cho tôi lộ trình thứ hai. –

+0

@AJ. Có lẽ không có tuyến đường thứ hai trong trường hợp này? Bạn đã thử tất cả điều này với một số tập tọa độ khác nhau chưa? Dù sao, bạn có thể trình bày mã thực sự của bạn ở đây (có chứa result.routes [1] .overview_path) cho những người khác để kiểm tra? –

+0

Cảm ơn Anisha. Có sẵn 3 tuyến đường. Tôi sẽ dán đoạn mã của tôi ở đây. –

14

Tôi đã gặp vấn đề tương tự. This thread trên nhóm Google cho các bản đồ của Google hiển thị cách thực hiện.

Tác giả (một nhân viên của Google), đã viết này:

Bạn sẽ có thể tạo ra hai đối tượng DirectionsRenderer, mỗi rằng sử dụng cùng một bản đồ và DirectionsResults khác nhau.

var map = new google.maps.Map(document.getElementById("map_canvas")); 
function renderDirections(result) { 
    var directionsRenderer = new google.maps.DirectionsRenderer; 
    directionsRenderer.setMap(map); 
    directionsRenderer.setDirections(result); 
} 

var directionsService = new google.maps.DirectionsService; 
function requestDirections(start, end) { 
    directionsService.route({ 
    origin: start, 
    destination: end, 
    travelMode: google.maps.DirectionsTravelMode.DRIVING 
    }, function(result) { 
    renderDirections(result); 
    }); 
} 
requestDirections('Huntsville, AL', 'Boston, MA'); 
requestDirections('Bakersfield, CA', 'Vancouver, BC'); 

Tôi đã thử nó và nó hoạt động.

Các vấn đề liên quan