5

陸地のみを考慮して、SQL Server 2008 内の 2 点間の最短距離を計算しようとしています。

STDistance() と一緒に地理データ型を使用して、カラスが飛ぶときにポイント x からポイント y までの距離を計算しましたが、これは私が避けようとしている海を横切ることがあります。

また、関心のある陸塊の境界の周りにポリゴンを作成しました。

より簡単な解決策がない限り、STDistance が常にポリゴン内に留まるようにするには、これら 2 つの方法を組み合わせる必要があると思います。

アドバイスをありがとう

4

1 に答える 1

1

STIntersects - http://msdn.microsoft.com/en-us/library/bb933899%28v=SQL.105%29.aspxを使用して、ラインのどの部分が陸上にあるかを調べます。

あなたのコメントを読んだ後、あなたの要件は理にかなっています。ただし、SQL Server でこれを行う組み込みの手法はないと確信しています。私はあなたが道路を無視して、カラスが飛ぶようにアプローチを取っていると仮定していますが、陸上のみです。

これを行うために私が考える唯一の方法は、エリアをラスター (グリッド セル) に変換し、コスト パス分析を実行することです。アルゴリズムが海を迂回するように、海域を法外に高いコストに設定します。テクニックの説明については、次のリンクを参照してください。

http://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?TopicName=cost_path

それ以外の場合は、以下のアルゴリズムを実装してみてください!

http://bit.ly/ckvciz

これを行う他のライブラリがあるかもしれません。別の方法として、2 つの都市間で新しい Google Directions API を使用する方法はどうでしょうか。実際の道路距離を取得できます。

http://code.google.com/apis/maps/documentation/directions/

于 2010-06-02T22:41:34.913 に答える