0

私はjavascript、Google方向サービスを使用しています。地図上に複数の出発点と1つの目的地があります。宛先ポイントに最も近いソース ポイントを見つける必要があります。方向サービスは非同期で機能するため、ポイントを緯度/言語でマッピングする必要があります。ただし、問題は、方向サービスによって送信される応答形式が変わることです。

    function calcRoute(start, end) {
    var request = {
        origin:start,
        destination:end,
        travelMode:google.maps.DirectionsTravelMode.DRIVING
    };

    directionsService.route(request, 
        function (response, status) {
            distanceCount++;
            if (status == google.maps.DirectionsStatus.OK) {                    
                var dist = computeTotalDistance(response);
                console.log(dist);
                if (dist < minDistance) {
                    minDistance = dist;
                    minDistanceIndex = locationsMap[response.ug.origin.Ua+""+response.ug.origin.Va];
                }
                if (distanceCount == vl.length) {
                    drawWay(vl[minDistanceIndex], fsl);
                }
            }
        }
    );
}

問題は回線上で発生します

minDistanceIndex = locationsMap[response.ug.origin.Ua+""+response.ug.origin.Va];

response.ug.origin.Varesponse.ug.origin.Uaは google 方向サービスから取得されますが、 response.ug.origin.Xaresponse.ug.origin.Yaに変わることがあります。

なぜそれが時々変わるのか、何か考えがありますか?またはその問題に対処する方法はありますか?

4

1 に答える 1

0

これらの内部プロパティにアクセスする必要はありません。これらは API の一部ではないため、変更される可能性があります。

仕様内で定義されたプロパティ/メソッドのみを使用し、応答によって提供されるすべてのデータにそれらを介してアクセスできます。

例:

response.routes[0].legs[0].start_location
//returns latLng of the origin

それとは別に:

あなたの説明は、 DistanceMatrixRequestを使用する方がよいように聞こえます

于 2012-04-05T15:50:41.447 に答える