3

2 点間のルートを正常にプロットする次のコードがあります。ただし、レコードセットを検索して、このルートの範囲内にある地理参照を確認したいと考えています。例:幹線道路から 50 ヤード離れた場所

function plot_route() {

         var rendererOptions = { map: map };
    directionsDisplay = new google.maps.DirectionsRenderer(rendererOptions);

    var org = new google.maps.LatLng ( $("#start_lat").html(), $("#start_long").html() );
    var dest = new google.maps.LatLng ( $("#finish_lat").html(), $("#finish_long").html() );

        if ($("#via_lat").html() != "") {
       var point1 = new google.maps.LatLng($("#via_lat").html(), $("#via_long").html());
        }
        else
        {
         point1 = dest;
        }

    var wps = [{ location: point1 }];

    if (($("#start_lat").html() != "") && ($("#finish_lat").html() != "")) {
    var request = {
            origin: org,
            destination: dest,
            waypoints: wps,
            travelMode: google.maps.DirectionsTravelMode.DRIVING
            };

    directionsService = new google.maps.DirectionsService();
    directionsService.route(request, function(response, status) {
                if (status == google.maps.DirectionsStatus.OK) {
                    directionsDisplay.setDirections(response);
                }
                else
                    alert ('failed to get directions');
            });
    }
}

応答を分解してみましたが、ルートを構成するための値の配列が計算で返されないことがわかります。

これを以前に制覇した人はいますか?

編集

さらに深く掘り下げると、応答にはルート ポイントの配列が含まれているようです。-1ボタンを押した人々からの貢献ではなく、助けを求めているコミュニティの人々のために、私は以下を添付します

function plot_route() {

         var rendererOptions = { map: map };
    directionsDisplay = new google.maps.DirectionsRenderer(rendererOptions);

    var org = new google.maps.LatLng ( $("#start_lat").html(), $("#start_long").html() );
    var dest = new google.maps.LatLng ( $("#finish_lat").html(), $("#finish_long").html() );

        if ($("#via_lat").html() != "") {
       var point1 = new google.maps.LatLng($("#via_lat").html(), $("#via_long").html());
        }
        else
        {
         point1 = dest;
        }

    var wps = [{ location: point1 }];

    if (($("#start_lat").html() != "") && ($("#finish_lat").html() != "")) {
    var request = {
            origin: org,
            destination: dest,
            waypoints: wps,
            travelMode: google.maps.DirectionsTravelMode.DRIVING
            };

    directionsService = new google.maps.DirectionsService();
    directionsService.route(request, function(response, status) {
                if (status == google.maps.DirectionsStatus.OK) {
                                   var myroute = response.routes[0];
                                   if(myroute)
                                   {
                                       $.each(myroute, function(key, value) {
                                       if (key == "overview_path") {
                                          alert(value); //the array of points for the route
                                       }
                                     });
                                    }
                    directionsDisplay.setDirections(response);
                }
                else
                    alert ('failed to get directions');
            });
    }
}
4

0 に答える 0