問題タブ [haversine]

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 投票する
48 に答える
998431 参照

algorithm - 2 つの緯度経度ポイント間の距離を計算する (Haversine 式)

緯度と経度で指定された 2 点間の距離を計算するにはどうすればよいですか?

明確にするために、距離をキロメートルでお願いします。ポイントは WGS84 システムを使用しており、利用可能なアプローチの相対的な精度を理解したいと思います。

0 投票する
3 に答える
2450 参照

php - 開始点の半径内の場所を特定するための最良の方法

私は、できればPHPを使用して、最新のプロジェクトで機能を作成することを目指しています。各ユーザーがサインアップするときに、郵便番号を入力します。次に、OpenStreetMapを使用してこれを緯度/経度に変換することを願っています。

とにかく、現在のユーザーの近くにいる他のユーザーを見つけられるようにしたいと思います。多くの人がHaversineの公式を使用しているのを見てきましたが、これは、ユーザーが他のすべてのユーザーの詳細を照会して距離を計算することを意味します。これをキャッシュすることはできますが、新しいユーザーがサインアップするとすぐに古くなります。

次のクエリを実行すると、システムにどのような影響がありますか?

それは誰かのブログから引き出されたものです。

まだ開発中なので、登録率や利用者数はわかりません。

特定の半径内で一致するユーザーを見つけるために使用できるフィードバックやその他の方法をいただければ幸いです。

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

sql-server-2005 - 「その場で」ストアドプロシージャで生成された値を含む追加の列を返す方法は?

Haversine 式を使用して距離を計算する SQL 2005 のストアド プロシージャがあります。すべてが非常にうまく機能しますが、結果セットで計算された距離を返したいと思います。その列/値のペアを追加するにはどうすればよいですか?

ポインタはありますか?この質問をする正しい方法を含めて?

(ああ、そうです、ここに貼り付けたクエリを直接操作していたので、これはストアドプロシージャではありません。)

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

sql-server-2005 - Googleの発言から離れた緯度と経度を使用した2つの場所間の距離

私はこれを理解しようと数日を費やしましたが、問題を特定できないようです。緯度と経度をDecimal(18,8)として格納しているSQL 2005データベースがあります。これらはすべて、Googleにクエリして受け取ったものです。

これらの2つの場所の場合:From:10715 Downsville Pike Ste 100 MD 21740 to:444 East College Ave Ste 120 State College PA、16801

その距離が「カラスが飛ぶように」なることを考慮に入れると、私の結果はまだかなり遠いです。この例では、私の結果は21.32マイルと表示されていますが、Googleマップは144マイルと表示されています。

それをさらにいらいらさせるトッピングは、私がこのサイトを見つけたということだと思います:http: //jan.ucc.nau.edu/~cvm/latlongdist.htmlそして私とほぼ同じ結果を思いついた。

これが私の関数とクエリです:

関数: CalculateDistance

LatitudePlusDistance

LongitudePlusDistance

クエリ:

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

iphone - Objective-C で Haversine 式を実装し、SQLite から呼び出すことは可能ですか?

私が理解しているように、SQLite には、単純な SQL でHaversine式を適切に実装するための数学関数がありません。これは、C言語で実装された外部関数を使用して可能になるはずだと考えています.

目標は、iPhone に SQLite データベースを配置し、ユーザーの現在地までの距離でソートできるようにすることです。検索しましたが、これが行われている例は見つかりません。難しい部分は、関数宣言を正しくすることだと思います。私が望んでいる最終結果は、次のような SQL ステートメントを実行できることです。

私は C Haversine 式を持っています。関数の定義は次のとおりです。

これが可能かどうか、および/または開始するサンプルコードがあるかどうかを知っている人はいますか?

0 投票する
3 に答える
7436 参照

php - SQLiteを使用した大円距離の計算

これが私の問題です。場所と緯度/経度を含むSQLiteテーブルがあります。基本的に私はする必要があります:

HAVERSINE()は、緯度と経度の値のペアが与えられた場合に大圏距離(マイルまたはkm)を返すPHP関数です。これらのペアの1つはPHPによって提供され、もう1つのペアはテーブルで使用可能な各緯度/経度の行によって提供される必要がありlocationsます。

SQLiteにはGeoSpatial拡張機能がないため(AFAIK SpatiaLiteは存在しますが、それでも...)、PDOメソッドのいずれかでカスタム関数を使用するのが最善の方法だと思います。

この場合は十分だと思いますがPDO::sqliteCreateFunction()、この関数に関する私の限られた経験は、PHPマニュアルで提供されているものと同様の使用例に減らすことができます。

PHPからのデータとテーブルデータを同時に処理するSQLiteユーザー定義関数を取得する方法を理解するのに問題があります。SQLiteUDFを理解しながらこの問題を解決するのを誰かが助けてくれれば幸いです(大きな勝利) SQLite IMOの)少し良くなりました。

前もって感謝します!

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

c# - C# で経度と緯度に半径を追加する

指定された半径内の住所を返すことができるように、緯​​度と経度の最小値と最大値の境界ボックスを生成する必要があります。

バウンディングボックスを確立するために必要な範囲を経度緯度座標に +/- 返すために、以下に 2 つの func<> があります。しかし、私は数学が100%だとは思わない

距離計算を生成するために Haversine 式を使用していますが、正確に機能しているようです。距離についても Vincenty 式を調査しましたが、私のニーズではやり過ぎでした。

私の問題は、長緯度座標に対する I +/- の範囲が楕円体の曲率または地球を考慮に入れるという点で、検索結果が Haversine と同じくらい正確であることです。

わかりました、ここに私のfunc<>があります...私は数学の教授ではないことに注意してください:o)

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

django - 計算フィールドによるDjangoソート

この SO 投稿の距離ロジックを使用して、次のコードで適切にフィルター処理されたオブジェクトのセットを取得しています。

問題は、リスト/クエリセットを距離値でソートしておく方法がわからないことです。パフォーマンス上の理由から、これを extra() メソッド呼び出しとして実行したくありません (データベース内の潜在的な場所ごとに 1 つのクエリに対して 1 つのクエリ)。いくつかの質問:

  1. リストを距離順に並べ替えるにはどうすればよいですか? モデルで定義したネイティブソートを外して「order_by()」を使用しても、別のもの (id だと思います) でソートしています。
  2. 私はパフォーマンスの問題について間違っていますか? Django はクエリを最適化するので、代わりに extra() を使用する必要がありますか?
  3. これは完全に間違った方法ですか? putz のように手動でロールするのではなく、geo ライブラリを使用する必要がありますか?
0 投票する
1 に答える
907 参照

distance - Haversineを介して短距離と長距離を計算する方法は?

地球上の 2 点間の距離を計算する方法を探しています。2 点間の最短距離を計算するには、Haversine を使用するように指示されています。

ここで、ポイント間の「長距離」を計算したいと思います。西に A、東に B という 2 つの都市があるとします。地球を東に一周し、西から A に到達した場合の B から A までの距離を知りたいです。

haversine 関数でいくつかの変更を試みましたが、うまくいかないようです。

hasrsine関数を少し調整して、これを簡単に行う方法を知っている人はいますか?

これは私が今使っているものです:

lat1、lat2、lng1、lng2 はラジアンです

part1 = sin(lat2) * sin(lat1); part2 = cos(lat2) * cos(lat1) * cos(lng1 - lng2);

距離 = 6378.8 * acos(パート 1 + パート 2);

私の見方では、2 つの都市の間に地球の周りに円を描くことができます。その円の円周から短距離を差し引いた遠距離。しかし、回答者の回答とは裏腹に、円の長さは地球の円周と等しくありません。これは、赤道上の 2 つのポイントの場合のみです。

Tnxジェローン