2012-02-14 15 views
2

現在の進捗状況とともにルート上にカスタムルートを表示したい。私は経路を示すためにポリラインをオーバーレイしました。私は現在の位置のLatLngを見つけてマーカーを置くことができます。私が今したいのは、別の色を使ってポリラインの移動した部分を強調表示することです。 1つのポリラインに複数の色を使用することは不可能だと私は確信していますので、最初に最初のポリラインをオーバーレイしてこの効果を与えることを計画しています。ここで私の質問です:Google Maps API V3 - ルートに沿った進捗状況の表示

現在の位置のLatLngを知っていて、元のポリラインを作成するために使用されたLatLngポイントの配列で武装していれば、どのようにして2番目の 'Progess'ルートを作成できますか?

ありがとうございます。

答えて

0

すでに車両が特定のポイントを通過したと判断する方法がない限り、それは本当に難しいでしょう。ある点を通過したことに気付いている場合は、渡された点と現在のマーカーをポリラインの終点として2番目のポリラインを作成するだけです。ポリラインが最初のルートにオーバーレイしているときに、ポリラインを表示可能にするために、ポリラインの幅を変更することをお勧めします。

ポイントが渡されたかどうかわからない場合は、私はあなたの現在の位置が特定のポイントのセットを過ぎているかどうかを判断する何らかのコードを書く以外に、しかし、もしあなたがルートがジグザグになったら、どうやってそれをやるのか分からない。.....あなたのポイントが真っ直ぐ西から真っ直ぐ東へ行くなら、何かをコーディングするのは簡単だろうが、それは場合。

希望これは、いくつかの仮定をもとに....やや

1

を支援します。あなたのルートにはない

  • あなたのパスが非常に緻密である(ない場合は、あなたがの中間点を補間することができ)
  • 次のようにそれ自体とオーバーラップ(例えば、繰り返し円形経路で機能しないであろう)

..one粗方法は次のようになります

あなたはいつものようにポリラインとしてこれを描く

points = [LatLng(1, 1), LatLng(2, 2), LatLng(3, 3), LatLng(4, 4)] 

:Python'yの擬似コードを使用して

は、あなたがこのようなルートを持っていると言います。

次に、あなたの現在の位置を考えると、あなたはルート上の最も近い点を見つけるでしょう:

cur_pos = LatLng(3.1, 3.0123) 

nearest_latlng = closest_point(points, to = cur_pos) 

を次にnearest_latlngは、単に二ポリラインを描き、リストにnearest_latlngを探すLatLng(3, 3)

が含まれますここまで。言い換えれば、あなたは現在の緯度経度でpointsリストを切り詰める:

progress_points = [LatLng(1, 1), LatLng(2, 2), LatLng(3, 3)] 

..その後、前述のようにマップ

にそれを描き、これはパスが(closest_pointのみ史上最初または最後のポイントを見つけるだろう)

あなたが旅してきたどれだけ知っている場合は、そこにある自身にループバックした場合に解除されます主に使用され得るいくつかの方法を与えるepoly拡張:

.GetIndexAtDistance(metres) 
Returns the vertex number at or after the specified distance along the path. 

インデックスが

上下に算出 closest_pointの代わりに使用することができること
関連する問題