0

クライアントのネットワーク分析を行おうとしています。提供されている道路ネットワークGISレイヤーの品質は低くなっています。したがって、Googleマップを使用して、200ポイント間の最短経路を提供し、各ポイント間の時間と距離の行列を作成する必要があります。

レイヤーをKMLポイントのセットとして入力して、これらのポイント間の距離と時間の出力を取得する方法はありますか?

これがAPIを介して実行可能である場合、そのようなスクリプトを作成する方法についてのヒントや提案はありますか?

理想的な最終結果を編集 すると、次の形式のCSVファイルになります。

node_1, node_2, distance, travel_time
node_n, node_m, distance, travel_time
4

1 に答える 1

2

スクリプト全体を作成することはしませんが、これはmapsAPIを使用して行うことができます。マップサンドボックスを開き、onGDirectionsLoad関数に追加します。

alert(gdir.getDistance().meters);

ドキュメントはここにあります-getDuration()も利用できます。次に、1つが終了したら新しいリクエストを発行し、開始点と終了点の各ペアの方向を取得するだけです。

ただし、200 * 200のパスを取得することを計画している場合、Googleはある時点でレート制限を決定する場合があることに注意してください。この方法は、自己責任で、リクエストの間に遅延を付けて使用してください。

また、Googleの組み込みのKMLサポートは、ポイントのリストの提供をサポートしていないようです。これは、クライアントが現在画面に表示されているものしか持っていない可能性があるため、理にかなっています。KMLを入力形式として使用する場合は、独自のKMLローダーを作成する必要がある場合があります。または、この例のように、より単純な形式を使用します。

于 2009-08-02T03:58:59.503 に答える