問題タブ [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 投票する
3 に答える
191 参照

mysql - Cross Join と Hversine Formula を使用した MySQL Geo Search での重複レコード

このGoogle チュートリアルの修正を完了しようとしています

場所の「名前」を使用して場所のテーブルをクエリするために、この SQL を作成しました。場所の名前を指定すると、クエリは近くにあるピザ レストランを返します。これを達成するために、「マーカー」というタイトルのレストランの場所のテーブルをそれ自体にクロス結合し、Haversine 式を使用して距離を計算しました。

クエリは期待どおりの結果を返しますが、対象のポイントが指定されたエリア (この場合は「マートル ビーチ」) の外にある場合、一致ごとに重複したレコードが取得されます。これは、CROSS JOIN が DISTINCT 選択で簡単に修正できるためです。ただし、「lng」フィールドと「lat」フィールドは FLOAT 型であるため、レコードが重複していても、距離の計算が同一になることはありません。

返品のサブセットは次のとおりです。

3901 North Kings Highway Suite 1、マートル ビーチ、サウスカロライナ州 | イースト オブ シカゴ ピザ カンパニー | 33.716099 -78.855583 | 4.0285562196955125

1706 S Kings Hwy # A、マートル ビーチ、サウスカロライナ | ドミノ・ピザ: マートルビーチ | 33.674881 | -78.905144 | 4.0285562196955125

82 ウェントワース ストリート、チャールストン、サウスカロライナ | Andolinis ピザ | 2.782330 | -79.934235 | 85.68177495224947

82 ウェントワース ストリート、チャールストン、サウスカロライナ | Andolinis ピザ | 32.782330 | -79.934235 | 89.71000040441085

114 Jungle Rd、エディスト島、サウスカロライナ | Edisto Beach Inc のバックス ピザ | 32.503971 -80.297951 | 114.22243529200529

114 Jungle Rd、エディスト島、サウスカロライナ | Edisto Beach Inc のバックス ピザ | 32.503971 -80.297951 | 118.2509427998286"

ここからどこへ行くべきかについての提案はありますか?

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

matlab - Matlab で加重隣接行列を作成する方法

次の形式のデータセットがあります。

ここから、LocID-LocID 無向グラフを生成する必要があります。このためには、次の形式の加重行列が必要です。

user-u1 は位置 l1、l2、および l3 に存在するため、それらをグラフ内の目に見えるエッジと見なします。したがって、l1 -> l2 と l2 -> l3 のエッジが存在します。与えられた例から、4 つのエッジが存在します。

ここで、2 つの LocID 間の各エッジの重みは、指定された緯度と経度の情報から計算されます。同様に、d(l1,l2) = LocID-1 と LocID-1 の間の距離 = (lt1,lg1) と (lt2,lg2) の間の距離

距離計算は、harsine 式を使用して実行できます。だから、それは問題ではありません。このタスクを matlab で実行する必要があります。誰でも私を助けてくれませんか....よろしくお願いします....

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

mysql - MySQL の半径に応じて、バウンディング ボックス内の経度/緯度のポイントをマージします

ここに私が基本的に達成したいものの写真があります:

タイトルが示すように、半径(たとえば25Kms)である長点/緯度点を、長点/緯度点のバウンディングボックス内にマージしたいと考えています。

これが私の非常に単純なDB構造です。

これまでの私のクエリは次のとおりです。

したがって、私のクエリは、半径を考慮せずに、架空の境界ボックス内のすべてのポイントをマージするだけです。

私は、Haversine 式を使用しなければならない可能性が高いことを知っていますが、数学と MySQL が苦手で、物事が少し難しくなっています。確かに、半径が 1 つしかない場合でも最終的にポイントをマージできますが、各ポイントには独自の半径があり、苦労しています。

これは学生のプロジェクトのためのものであり、どんな助けも非常に高く評価されます。

参考文献:

- SQL Fiddle に関する私のクエリ: http://sqlfiddle.com/#!2/3a42b/2 (コメントに Haversine Formula の SQL Fiddle の例が含まれています)

-MySQL クエリの Haversine 式: (指定された半径内のすべてのポイントをチェックするために機能します)

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

arduino-ide - Arduino での Haversine Formula の実装

GPSとArduinoを使用してジオフェンスの作成に取り組んでいます。半径で計算するために、Haversine Formula を実装して 2 点間の距離を求めたいと考えています。問題は、Arduino IDE で Haversine Formula を実装するのが難しいことです。私は Arduino で比較的初心者です。

上記の式をArduino IDEに実装するにはどうすればよいですか?

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

javascript - Javascript ハバーシン エラー

そこで、以下に示すように、マイルを使用して、Google マップから取得したルートに沿った場所を見つけるための Haversine 式を実行しました。

しかし、ポイント (たとえば) 36.64756, -97.34593 (カンザス州ウィチタとテキサス州ダラスの間のパス上のどこか) と 39.933321, -91.409415 (イリノイ州クインシーの場所) を使用すると、距離は 20 マイル未満になります。明らかにこれは正しくありません。他の値でエラーを再現できませんでした - これは偶然に起こりました。

これがtoRadのプロトタイプです、ところで-

私の当初の推測では、どこかで浮動小数点のオーバーフローが発生していましたが、toFixed でそれを分離したり軽減したりすることはできませんでした。誰にもアイデアはありますか?

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

java - Java の Haversine 式で誤った結果が生成される

Haversine formula ウィキペディアで与えられたこの実装を試しに使用しようとしていますが、この式は期待される結果をもたらしません。


上記の緯度経度の形式は、要件ドキュメントで指定されています。

サンプル入力座標は次のとおりです。

これらの値を Haversine メソッドに渡す前に、これらの値を度形式に変換しています。この手順が必要ない場合は、修正してください。

以下の式を使用して、度分形式から10進数形式に変換しています。

新しい座標は

haversine メソッドの呼び出しは次のようになります

これは値を返します5.932071604620887E-4

値を検証するために、この Web サイト(33.994144666666664, 83.9363, 33.99415, 83.9363)にあるコンバーターに同じ入力を提供しましたが、結果はkm で表示されます。0.001

10 進数に変換せずに入力値を提供しようとしましたが、2 つのメソッドからの出力も一致しません。

私がここでやっている間違いを教えてください。