0

私は、Bing Maps の「道路へのスナップ」機能に取り組んでいます。私の考えでは、ユーザーが地図をクリックすると、DirectionsManager クラスがルートを計算するので、ユーザーがカーブを曲がるルートを作成したい場合でも、何度もクリックする必要はありません。2 回クリックするだけで、あとはページが処理してくれます。(ところで、誰かがこれを行うためのより良い方法を持っている場合は、私に知らせてください-これは私の最初の解決策です。)

MSDN で DirectionsManager の例を試していて、RouteLeg クラス (http://msdn.microsoft.com/en-us/library/hh312823) に関するサンプル コードを削減しました。次の基本的なコードがあります。

function directionsModuleLoaded() {
    var directionsManager = new Microsoft.Maps.Directions.DirectionsManager(map);

    var startWaypoint = new Microsoft.Maps.Directions.Waypoint({ location: new Microsoft.Maps.Location(42.71926499622451,-84.57241695374249) });
    var endWaypoint = new Microsoft.Maps.Directions.Waypoint({ location: new Microsoft.Maps.Location(42.71390477940529,-84.5766870304942) });

    directionsManager.addWaypoint(startWaypoint);
    directionsManager.addWaypoint(endWaypoint);

    directionsManager.calculateDirections();
}

function displayMessage(e) {
    alert("The calculated route has " + e.route[0].routeLegs[0].itineraryItems.length + " direction steps.");
}

これは機能します。緯度/経度の値のペアを入力すると、「丸められた」ルートが計算されて表示されます。私が望んでいたのは、方向転換があったルートの各部分に画鋲を配置する方法でした。したがって、角を曲がるのに 3 つの小さなルートが必要な場合、画鋲が表示される各ポイントに 1 つずつ画鋲が表示されます。 2 つのセグメントが一致しました。それは可能ですか?

4

1 に答える 1

0

DirectionManager クラスからgetAllWaypoints()を呼び出して、すべてのウェイポイントの配列を取得できます。

ウェイポイントごとにgetLocations()を呼び出して、ウェイポイント オブジェクトの位置を取得できます。

次に、waypoint.getLocations() を他の設定オプションと同様に画鋲コンストラクターに渡し、画鋲をマップに追加することで、各場所に画鋲を作成できます。

于 2012-09-24T20:03:29.687 に答える