特定の半径を持つ正方形の境界を計算しようとしていますが、正方形の中心がわかっている場合(経度、緯度)。しかし、私はそれで問題を抱えています。
ここから haversine 式を使用しようとしました:
しかし、半径がかなり大きいと問題が発生します。
現在、1) を検索します。私が使用するラジアン単位の緯度デルタ:
- radiusInMeters / EARTH_RADIUS_METERS
2)。私が使用するラジアンの経度デルタ:
- 2.0 * | arcsin( |sin(radiusInMeters/(EARTH_RADIUS_METERS*2.0)) / |cos(latitudeStart)| | ) |
これらの式は、haversine 式から取得しました。
私の場合、大小の距離に適した正確な一般的な計算式を教えてください。
また、半径が経度で-180°/180°、緯度で-90°/90°を超える場合、どのように処理すればよいですか?
アップデート
いくつかの説明。座標 (lon, lat) のある特定の地点に滞在しているとしましょう。ここで、lon は -113°、lat 50° です。
データベースから関心のある半径内のポイントをクエリしたいと思います。そのためには、「正方形」の境界を計算する必要があります。(次に、対象の半径にないものを除外します)。上記の式は短い距離では問題なく機能します (100 キロメートル (63 マイル) までとしましょう。しかし、赤道点から極点に離れるほど、丸め誤差が大きくなります。)
前もって感謝します