2016-02-04 72 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

我们将不得不另谋出路...如果我觉得我会让你知道,如果你先找到它,如果你告诉我,我会感激我。