問題タブ [geographic-distance]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
275 参照

sql - SQLで2つの緯度/経度の間の距離を効率的に見つける

私は数十億行のデータを扱っており、各行には開始緯度/経度と終了緯度/経度が関連付けられています。各始点/終点間の距離を計算する必要がありますが、非常に時間がかかります。私は本当に自分がしていることをより効率的にする必要があります。

現在、関数(以下)を使用して、ポイント間の斜辺を計算しています。これをより効率的にする方法はありますか?緯度/経度を空間地理としてキャストし、STDistance() 関数 (インデックスなし) に組み込まれた SQL を使用することは既に試みましたが、これはさらに遅くなりました。

どんな助けでも大歓迎です。精度が少し低下するとしても、機能を高速化する方法があることを願っています(最も近い100mはおそらく問題ありません)。前もって感謝します!

0 投票する
1 に答える
239 参照

coordinate-systems - 余弦の球面法則で使用される座標系は?

球面余弦法則は、地球上の 2 点間の距離を計算するために使用される式です。その式で使用されている座標系について説明している参考文献を探していましたが、式で使用されている座標系については誰も議論していません。誰か助けてくれませんか?

0 投票する
1 に答える
75 参照

mysql - SQL SUM 句の結合

同じデータのサブセットに対して 4 つのかなり大きな MySQL クエリを実行する必要があるスクリプトがあります。それらを 1 つのクエリに結合する方法はありますか?

クエリは次のようになります。

お分かりのように、これは緯度と経度の地理的なクエリです。クエリが行うことは、最初に合計テーブル ( FirstCut) の単純な正方形のサブセットを作成し、次に三角関数を実行して円形の領域を取得することです。

私が知る限り、遅いクエリの部分は です。クエリFirstCutが描画しているテーブルには約 280 万行あるためです。FirstCutですが、この例では約 27,922 行しかないため、比較すると三角部分は非常に高速です。

問題は、これらのいくつかを実行する必要があることです。FirstCutただし、同じ領域を中心とする異なる半径であるため、すべて同じ を使用できます。4 つではなく 1 つのクエリでこれを実行できるようにしたいと考えています。

2 番目のクエリは次のようになります。

ご覧のとおり、最後の WHERE 句がわずかに異なることを除いて、他のものとまったく同じです。条件は半径が小さいだけです (79.85 ではなく 48.57)。

これら 2 つのクエリを効率的な方法で 1 つのクエリに結合するにはどうすればよいですか?

CASE 句を使用してみました -- これが最善の方法ですか?

0 投票する
0 に答える
96 参照

mysql - MySQLは、緯度、経度に基づいて特定の距離内にあるすべての場所を取得します

名前、緯度、経度が入力された場所のテーブルがあります。データベースには繰り返しがあります (例: "pub llc, 40.75111,-60.4211" と "pub llc, 40.75112,-60.4211")。ここでは名前は同じですが、距離は座標がわずかにずれています。テーブルの各行について、潜在的な競合を検索して表示したいと思います。これは、同じ名前を持つ 2 つの近くの場所の間の距離 (たとえば、100 フィート) に基づいています。次の距離式があります。

このクエリを生成するのを手伝ってくれる人はいますか?

0 投票する
1 に答える
108 参照

r - 最短距離に基づいて緯度経度観測に名前を割り当てる方法

2 つのデータフレームがありdf1ます。緯度経度座標の観測値が含まれています。df2緯度経度座標の名前があります。df1$name観測ごとに、df2その観測までの距離が最も短い名前を持つ新しい変数を作成したいと思います。

のサンプル データdf1:

のサンプル データdf2:

この回答に基づいて、geosphereパッケージで距離マトリックスを作成しました。

しかし、観測ごとに最短距離を選択し、対応する名前を に割り当てるにはどうすればよいdf1$nameでしょうか?

0 投票する
1 に答える
119 参照

r - 緯度経度観測に複数の名前を割り当てる方法

2 つのデータフレームがありdf1ます。緯度経度座標の観測値が含まれています。df2緯度経度座標の名前があります。df1$names観測ごとに、df2その観測から指定された距離内にある名前を持つ新しい変数を作成したいと考えています。

のサンプル データdf1:

のサンプル データdf2:

geosphereパッケージで距離行列を作成する:

結果の距離はメートル単位です(少なくともそうであると思います。そうでなければ、距離行列に何か問題があります)。

指定された距離は で計算され(df1$cat)^2)*1000ます。を試しdf1$names <- df2$latlonloc[apply(distmat, 1, which(distmat < ((df1$cat)^2)*1000 ))]ましたが、エラー メッセージが表示されます。

これはおそらく正しいアプローチではありませんが、必要なのは次のとおりです。

df1$names <- #code or function which gives me a string of names which are within a specified distance of the observation

観測から指定された距離内にある名前で文字列を作成するにはどうすればよいですか?

0 投票する
2 に答える
8376 参照

r - 定義された距離を半径とする円を地図に描く

マップをプロットし、特定のポイントにキャプションを付けることができます。

その点を中心とする円をプロットすることもできます。

ただし、円のサイズを制御したいと思います。特に、data.frame、matrix、または list に含まれる複数の場所の周りに半径 100 マイルの円を描きたいと考えています。

0 投票する
1 に答える
97 参照

sql - テキストフィールドの場合、地理に基づいてSQL Server 2012でポイントを選択するにはどうすればよいですか

さて、私はこのデータベースに行き詰っていて、「近くの」ページを作成しようとしています。

私が(残念ながら)持っているのはlatと であるlon列ですnvarchar。他の場所でテキストとして必要なため、変換できません。

マップ ポイントの中心を取り、1 マイルほど以内にいくつかの点を配置​​したいと思います。

これら 2 つのテキスト フィールドを 1 つの座標列に結合して比較することはできますSTDistanceか?

このようなことをするには..

または、より良い方法をお勧めできますか?

前もって感謝します!