开发者

Question about Google Map get direction service V3

I want to use Direction service of google map for my website. Since I use it first time, I don't know how to start with it. One good example code that is exactly what I want is here: Direction example When I download it and run in my browser (any browser) for getting deal with it, map is rendered only a moment and then goes away! I don't know why?! And second Question: Is ther开发者_StackOverflowe any such example that you know?

Thanks a lot in advance


To draw route on map click on map two times so route created on two that points

Question about Google Map get direction service V3

var map;
    var infowindow = new google.maps.InfoWindow();
    var wayA;
    var wayB;
    var geocoder = new google.maps.Geocoder();
    var directionsDisplay = new google.maps.DirectionsRenderer({
        suppressMarkers: true,
        panel: document.getElementById('right-panel'),
        draggable: true
    });
    var directionsService = new google.maps.DirectionsService();
    var data = {};
    initMap();
    function initMap() {
        debugger;
        map = new google.maps.Map(document.getElementById('rmap'), {
            center: new google.maps.LatLng(23.030357, 72.517845),
            zoom: 15
        });


        google.maps.event.addListener(map, "click", function (event) {
            if (!wayA) {
                wayA = new google.maps.Marker({
                    position: event.latLng,
                    map: map,
                    icon: "https://chart.googleapis.com/chart?chst=d_map_pin_letter&chld=S|00FF00|000000"
                });
                //   calculateAndDisplayRoute(directionsService, directionsDisplay, wayA, wayB);
            } else {
                if (!wayB) {
                    debugger;
                    wayB = new google.maps.Marker({
                        position: event.latLng,
                        map: map,
                        icon: "https://chart.googleapis.com/chart?chst=d_map_pin_letter&chld=E|FF0000|000000"
                    });

                    calculateAndDisplayRoute(directionsService, directionsDisplay, wayA, wayB);
                }
            }
        });
    }
    function computeTotalDistance(result) {
        var total = 0;
        var myroute = result.routes[0];
        for (var i = 0; i < myroute.legs.length; i++) {
            total += myroute.legs[i].distance.value;
        }
        total = total / 1000;
        return total;
    }
    function computeTotalDuration(result) {
        var total = 0;
        var myroute = result.routes[0].legs[0].duration.text;
        return myroute;
    }
    function calculateAndDisplayRoute(directionsService, directionsDisplay, wayA, wayB) {
        debugger;
        directionsDisplay.setMap(map);
      //  directionsDisplay.setPanel(document.getElementById('dvPanel'));
        google.maps.event.addListener(directionsDisplay, 'directions_changed', function () {
            debugger;
            calculateAndDisplayRoute(directionsService, directionsDisplay.getDirections(), wayA, wayB);
        });
        directionsService.route({
            origin: wayA.getPosition(),
            destination: wayB.getPosition(),
            optimizeWaypoints: true,
            travelMode: 'DRIVING'
        }, function (response, status) {
            if (status === 'OK') {
                debugger;

                var route = response.routes[0];
                wayA.setMap(null);
                wayB.setMap(null);
                pinA = new google.maps.Marker({
                    position: route.legs[0].start_location,
                    map: map,
                    icon: "https://chart.googleapis.com/chart?chst=d_map_pin_letter&chld=S|00FF00|000000"
                }),
                pinB = new google.maps.Marker({
                    position: route.legs[0].end_location,
                    map: map,
                    icon: "https://chart.googleapis.com/chart?chst=d_map_pin_letter&chld=E|FF0000|000000"
                });

                google.maps.event.addListener(pinA, 'click', function () {
                    infowindow.setContent("<b>Route Start Address = </b>" + route.legs[0].start_address + " <br/>" + route.legs[0].start_location);
                    infowindow.open(map, this);
                });
                google.maps.event.addListener(pinB, 'click', function () {
                    debugger;
                    infowindow.setContent("<b>Route End Address = </b>" + route.legs[0].end_address + " <br/><b>Distance=</b> " + computeTotalDistance(directionsDisplay.getDirections()) + " Km <br/><b>Travel time=</b> " + computeTotalDuration(directionsDisplay.getDirections()) + " <br/> " + route.legs[0].end_location);
                    infowindow.open(map, this);
                });

            } else {
                window.alert('Directions request failed due to ' + status);
            }
            directionsDisplay.setDirections(response);
        });
    }
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜