ポイントのトラックを徒歩ルートに変換する方法は?


8

GPSレシーバーで以前に記録したポイント(緯度+経度)のリストがあるとします。次に、それを、たどったルートのテキスト表現に変換する必要があります。例:

  1. レドモンドアベニュー12から開始
  2. 200m歩く
  3. 左折してAnother St.へ。
  4. 徒歩100m
  5. 別の聖10で停止します。
  6. 終わり

本当に詳細である必要はありません。私の頭に浮かぶ最初のアイデアは、外部サービス(google、yahoo ...)を使用して、各ポイントを逆ジオコーディングすることです。次に、単純なアルゴリズムを適用して、通りの名前の変更を検出したときにルートを書き込みます。

使用するのに最適なアルゴリズム、または既存の(オープン)実装についてのヒントは大歓迎です。ささいなことではないようです。


1
それは私が聞いている場合ことを指摘する価値があるStart at Redmond Avenue 12Walk 200 m私は歩いている方向を知ることができませんか?手抜きをして申し訳ありません。
fmark

@fmark、ありがとうございます。あなたは厳格ですが、この場合は重要ではありません。指示は、内部聴覚システムの一部として、ポイントが記録される前に表示されます。詳細レベルは、他の人がたどった近似ルートを知ることができるほど重要ではありません。
Guido

回答:


4

外部サービスを使用できる場合、Google Directions APIがこの機能を直接提供します。パスに沿ったウェイポイントをサポートしているので、次のことができます。

http://maps.google.com/maps/api/directions/json?origin=Redmond+Avenue+12,01864
&destination=Concord,MA&waypoints=lat1,long1|lat2,long2|lat3,long3&sensor=true

これJSONによりsteps、各方向のドキュメントが返されます。

あなたはこれを自分で行いたい場合は、指示の処理を開始するには、いくつかのステップがあります:あなたのようなパス、ルーティングするためのデータセットが必要ですOSMを、とのようなルーティングエンジンpgRoutingをOSM2PostGISのようなものは、このような設定を実行するために必要な重労働を提供します。次に、各ポイントを最も近いエッジに再配置します。これは、PostGISでST_Line_Locate_Pointdocumentation)を使用して実行できます。PostGIS線形参照とpgRoutingの間で、十分な方向性を作成できるはずです。


1
ありがとうございました。Googleが提供するサービスは知っていますが、パスに沿って25ポイントしか許可されません。GPSは10秒ごとにポイントを保存するため、5分未満で制限に達します。
Guido

2
そうです、25ポイントに制限されますが、パスはルートの大部分でGoogleのベースデータのエッジに続くため、おそらくより低い解像度を使用できます。または、単一のルートに対して複数のクエリを送信し、結果を一緒に解析して戻すこともできます(このためのAPIの例もあります)。
scw
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.