2016-02-04 73 views
0

我正嘗試使用Google地圖創建公交地圖指示,但是當我從輸入(使用自動填充地址)創建「開始」和「結束」標記時,儘管將drag選項設置爲true,但仍無法拖動任何標記。谷歌公交地圖上的可拖拽標記

travelMode選項更改爲google.maps.TravelMode.DRIVING draggin'啓用。然後回到這個屬性google.maps.TravelMode.TRANSIT daggin'回到殘疾。

有辦法解決這個問題嗎?

代碼:

var directionsService; 
    var directionsDisplay; 

    function initMap() { 
    var map = new google.maps.Map(document.getElementById('map'), { 
     zoom: 14, 
     center: {lat: -32.89, lng: -68.845} // Mendoza. 
    }); 

    directionsService = new google.maps.DirectionsService; 
    directionsDisplay = new google.maps.DirectionsRenderer({ 
     draggable: true, 
     map: map, 
     panel: document.getElementById('right-panel') 
    }); 

    directionsDisplay.addListener('directions_changed', function() { 
     var addresses = directionsDisplay.getDirections().routes[0].legs[0]; 
     document.getElementById('from').value = addresses.start_address; 
     document.getElementById('to').value = addresses.end_address; 
    }); 
    google.maps.event.addDomListener(document.getElementById('go'), 'click', displayRoute); 

    var input_from = document.getElementById('from'); 
    var autocomplete = new google.maps.places.Autocomplete(input_from); 
    autocomplete.bindTo('bounds', map); 

    var input_to = document.getElementById('to'); 
    var autocomplete = new google.maps.places.Autocomplete(input_to); 
    autocomplete.bindTo('bounds', map); 

    displayRoute(); 
    } 

    function displayRoute() { 
    directionsService.route({ 
     origin: document.getElementById('from').value, 
     destination: document.getElementById('to').value, 
     //travelMode: google.maps.TravelMode.DRIVING, 
     travelMode: google.maps.TravelMode.TRANSIT 
    }, function(response, status) { 
     if (status === google.maps.DirectionsStatus.OK) { 
     console.log(response); 
     directionsDisplay.setDirections(response); 
     } else { 
     alert('Could not display directions due to: ' + status); 
     } 
    }); 
    }  

    google.maps.event.addDomListener(window, 'load', initMap); 
+1

你如何添加標記?請提供證明此問題的[最小,完整,測試和可讀示例](http://stackoverflow.com/help/mcve)。 – geocodezip

+0

@geocodezip我將使用的代碼添加到答案中。謝謝。 –

+0

所以標記是默認的DirectionsRenderer標記?我可以看到爲什麼谷歌可能不會讓這些可拖動的,你可能需要添加你自己的可拖動標記與dragend監聽器來重新計算它們移動時的方向。 – geocodezip

回答

0

不幸的是, 「拖動」 模式中不能包含公交出行方式。剛纔我試圖找到一種方式,順便找到了你的問題。

EDIT

作爲谷歌文檔說:

用戶可以修改騎車,步行或行車路線使用的DirectionsRenderer動態如果它們是可拖動顯示 ,允許 用戶選擇和通過單擊並拖動地圖上產生的路徑來更改路線。您指示渲染器的顯示屏 是否允許拖動方向,方法是將其可拖動屬性設置爲true。 公交方向不能拖動。

檢查在這裏:https://developers.google.com/maps/documentation/javascript/directions#TransitOptions

我們將不得不另謀出路...如果我覺得我會讓你知道,如果你先找到它,如果你告訴我,我會感激我。