問題タブ [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.
c# - GeoCoordinate.GetDistanceTo は地球に間違った半径を使用していますか?
System.Device.Location.GeoCoordinate.GetDistanceTo(...) を逆コンパイルしたところ、計算ステップの 1 つとして地球の半径を指定する Haversine 式が使用されていることがわかりました。
逆コンパイルされたコードで指定された半径は6376500.0
(メートル) です。
MSDN では、GetDistanceTo のドキュメントに次のコメントがあります。
Haversine 式は地球の曲率を説明しますが、楕円体ではなく球状の地球を想定しています。
ウィキペディアは次のように述べています
地球を球としてモデル化するいくつかの異なる方法は、それぞれ平均半径 6,371 キロメートルをもたらします
また、どこを検索しても、半径をkmと指定している人はほとんど見つかりません。6,376.5
そのため、かなり近いにもかかわらず、GetDistanceTo
では6,376.5
km を使用しますが、広く受け入れられている半径は6,371
km です。違いはなぜですか?の作成者はGetDistanceTo
、地球の半径を近似するためのより良い方法を見つけましたか?
php - PHP での Haversine 計算のどこで問題が発生しましたか?
ほとんど同じように見える3つの方法がありますが、結果は異なります...
それは印刷します:
-----------------
float(0.6294055217761)
float(-1.3894367207592)
float(0.63022547745869)
float(-1.3883087144636)
float(0.00081995568258686)
float(0)
------- ----------
float(5223.9376537609)
-----------------
float(0.6294055217761)
float(-1.3894367207592)
float(0.63022547745869)
float(-1.3883087144636)
float (0.00081995568258697)
float(0)
-----------------
float(5223.9376537616)
-----------------
float(0.6294055217761)
float (-1.3894367207592)
float(0.63022547745869)
float(-1.3883087144636)
float(0.00081995568258697)
float(0.0011280062955641)
-----------------
float(7811.4545246093)
3 番目の結果は正しいですが、最初の 2 つは何が問題なのかわかりませんか?
math - Haversine Formula - なぜ絶対値なのか?
hasersine 式を使用して、緯度、経度からの距離を計算しようとしています。何らかの理由で、これは北半球でのみ機能し、abs
. 絶対値を削除すると、コードは正常に機能します。それで、私はそれを使用する目的は何だろうと思っていましたか?
php - Haversine 計算: セット内のユーザーを表示
PHP と SQL で構築されたローカル コミュニティ向けの相乗りアプリを構築します。私は通常、php コーディングにうんざりしていますが、リストに必要な数式を探して困惑しています。
- プライマリ ユーザーの経度/緯度を考慮して、最も近いユーザーから最も遠いユーザーの上位 5 人
- 一次利用者の経度・緯度500メートル以内の者に限る
SQL データベースには、5 分間隔で更新されるすべてのオンライン ユーザーの経度/緯度が含まれています。
いろいろと調べてみましたが、探し方が間違っているのではないかと思います。どんなガイダンスも大歓迎です。
php - mysqliを使用したhaversine式からの距離パラメーターのバインド
特定の場所に最も近い店舗の場所を表示する Web サイトに取り組んでいます。私は hasersine 式を使用して距離を決定していますが、XML が作成した距離フィールドを認識できないことを除いて、すべてが機能しています。
distanceFromLocation 変数は、while ループに入るときは常に空です。SQL をテストしたところ、正しい距離値が返されます。距離フィールドにアクセスできない理由はありますか? 計算フィールドだからでしょうか?
google-maps - Google マップで 2 点間の距離に使用される式は?
Google マップで 2 点 (緯度、経度座標を持つ) 間の最短距離を計算するために使用される式は? 私の知る限り、APIにはこれを呼び出すためのメソッドがありますが、computeDistanceBetween
それはどのように正確に機能しますか? それは純粋にHaversineに基づいていますか?それとも違うものですか?どこかで利用可能な数学的またはコード実装のリファレンスはありますか?
更新
Googleはおそらく、ドキュメントのフラグメントを想定して大円距離式を使用しているようです:
2 点間の距離は、2 点間の最短経路の長さです。この最短経路は測地線と呼ばれます。球体では、すべての測地線は大円のセグメントです。
まあ、それはかなり単純化されています。すべての緯線が赤道に等しいと言っているようなものです。または多分私はそれをすべて間違っています。私の意見では、たとえばグリーンランドからカナダまでの距離を測定する場合、赤道から離れているため、これは適切に機能しないはずです。しかし、Googleではとにかく正しい測定値を提供します.理由と方法がわかりません. 彼らは何らかの形で大圏の公式を修正していますか?
mysql - SQL メタ結合と Haversine 式
いくつかのメタデータをユーザーに結合するクエリがあります。
これを使用して、Haversine 式を使用して最も近い距離で検索したいと思います。
どうすれば2つにマージできますか?
よろしく
mysql - MySQL ユーザー定義関数 - Haversine 式
次のコードがあります。
これは、2 つの座標間の距離を計算する hasersine 式です。座標は、vb_postcodes
code、lng、lat の属性を持つテーブルに保存されます。コードを実行しようとすると、構文エラーが発生します。
ユーザー定義関数を作成するのはこれが初めてです。