2016-12-02 11 views
2

私は私の街のあらゆる通りのブロックをすべて走らせるという目標を持っています。私は私が描くカスタムのGoogleマップ上で私の進歩を追跡してきました。 &エラープロットの新しいルートPythonはカスタムルートプランニングを行うことができますか、またはAPIに依存する必要がありますか?

私がこれ以上のことを得ると、私はこれが自動化のために熟していることに気付きました。

しかし、私は経路計画API(googleとGraphHopperが魅力的に見える)のための多くのオプションを見ています。しかし、私はA→Bからちょっと離れて距離を最小限にしようとしているわけではありません。

私は特定のブロック(まだ実行していないもの)と他のもの(私が何百回も実行したもの)をアップグレードしたいと思います。これは間違いなく解決された問題です(たとえば、現在のトラフィックは経路の最適化を重み付けするために使用されます)が、良い例は見つけられません。

重量マップを作成してルーティングソリューションを提供できる既存のPythonライブラリはありますか?

また、これらのAPIのいくつかをすぐにあきらめて間違っていますか?

答えて

1

独自の「コスト関数」を使って計算されたルートが必要なため、これらのAPIが役立つとは思えません。

graphhopper/googleマップなどのAPIをルーティングすることを単純化すると、cost = distance/speedのようなコスト関数を使用します。

代わりに、 "まだ実行していない"通りの値を与えるコスト関数が必要です。

あなたはgraphhopperのローカルインストールを行うには、 https://github.com/graphhopper/graphhopper/blob/0.8/docs/core/weighting.md

かは、PostgreSQL + PostGISの+ pgRoutingを使用して、あなたの履歴に基づいてカスタムのコストを計算することができ、この例に従うことができます。 あなたがここにあなたのニーズに似た何かを見つけることができます http://pgrouting.org/docs/howto/oneway.html

私はあなたのpythonでのPostgreSQLデータベースに接続することができると確信していますが、あなたが必要なソフトウェアをインストールし、データをインポートするために、いくつかの追加の作業が必要です。

GraphhopperにはOSMインポーターが組み込まれていますので、あなたはもっと簡単に作業することができます(私の意見では)。

関連する問題