0

私は、JavaScript、Google Maps API V3、およびPgorutingを使用して、2つのポイント間のルートを見つけることに取り組んでいます。これで、次の方法があります。これは、ウェイポイントを1つだけ指定した場合に正常に機能します。しかし、私が複数のウェイポイントをジャブした場合、それは機能しません。複数のウェイポイントがある場合のフォーマットは、この記号で示されます'|'。したがって、たとえば:36.762121,14.7866553|35.988777778,14.655444333

javascriptメソッドは次のとおりです。

   function calcRoute() {

        var all_nodes = document.getElementById('result').innerHTML;
        var node = all_nodes.split("|");

        var start = node[0];
        var end = node[node.length - 1];
        var wpts = [];

        for (var i = 1; i < node.length-1; i++) {
            wpts.push({
                location:node[i],
                stopover:true
            });
        }

        var request = {
            origin: start,
            destination: end,
            waypoints: wpts,
            travelMode: google.maps.TravelMode.DRIVING
        };

        directionsService.route(request, function (response, status) {
            if (status == google.maps.DirectionsStatus.OK) {
                directionsDisplay.setDirections(response);
            } else {
                alert('No route found');
            }
        });
    }      
4

2 に答える 2

1

実際の誤ったウェイポイントは、location:LatLngとstopover:trueまたはfalseの配列であり、パイプ区切り文字を使用していません。ウェイポイントを参照してください。

于 2013-03-03T14:16:58.327 に答える
0

前に提案したように、その場所の Google オブジェクトを取得すると役立つ場合があります。また、緯度と経度を 2 つの別個のエンティティとして提供することも役立つ場合があります。

    for (var i = 1; i < node.length-1; i = i + 1) {
        node[i] = node[i].split(',');
        wpts.push({
            location:new google.maps.LatLng(node[i][0], node[i][1]),
            stopover:true
        });
    }
于 2013-03-03T17:46:15.087 に答える