Ошибки Направления Карт Google - PullRequest
1 голос
/ 06 августа 2011

У меня есть следующий код, который создает карту на странице содержимого.

<script type="text/javascript">
    var directionDisplay;
    var directionsService = new google.maps.DirectionsService();
    var map;

    function init() {
        directionsDisplay = new google.maps.DirectionsRenderer();
        var latlng = new google.maps.LatLng(54.6, -4.25);
        var startlatlng = new google.maps.LatLng(50.067, -5.717);
        var endlatlng = new google.maps.LatLng(58.633, -3.067);
        var myOptions = { zoom: 6, center: latlng, disableDefaultUI: true, mapTypeId: google.maps.MapTypeId.ROADMAP };
        var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
        directionsDisplay.setMap(map);
        calcRoute();
        var marker = new google.maps.Marker({ position: startlatlng, map: map, flat: true, title: "Start" });
        var marker = new google.maps.Marker({ position: endlatlng, map: map, flat: true, title: "Finish" });
        var marker = new google.maps.Marker({ position: new google.maps.LatLng(55.067, -4.717), map: map, flat: true, title: "Start" });
    }

    function calcRoute() {
        var startlatlng = new google.maps.LatLng(50.067, -5.717);
        var endlatlng = new google.maps.LatLng(58.633, -3.067);
        var request = {
            origin: startlatlng,
            destination: endlatlng,
            avoidHighways: true,
            travelMode: google.maps.DirectionsTravelMode.DRIVING
        };
        directionsService.route(request, function (response, status) {
            if (status == google.maps.DirectionsStatus.OK) {
                directionsDisplay.setDirections(response);
            }
        });
    }
    google.maps.event.addDomListener(window, 'load', init);
</script>

Все, что я хочу, это чтобы маршрут отображался на карте, созданной функцией init, но он перерисовывает ее вболее низкий уровень масштабирования, почти как если бы он игнорировал первую карту.Это также переписывает мои начальные и конечные маркеры.Кажется, что с directionService очень мало параметров для управления наложением линии направления.Кто-нибудь понимает, что происходит, а я нет?

1 Ответ

0 голосов
/ 12 августа 2011

Кажется, способ сделать это - добавить следующее в начале функции init():

function init() {
    var rendererOptions = {
        preserveViewport: true
    };
    directionsDisplay = new google.maps.DirectionsRenderer(rendererOptions);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...