不動産に直面する問題が発生しました。
地球座標に変換している実際の住所があります(「LondonEye」から「-0.119543; 51.503324」など)。
また、検索しようとしている境界または領域も取得しました(たとえば、「10」は「10 km」です)。
今、私はたくさんの座標(地球の周りで完全にランダム)を取得しました。現在の座標がロンドンアイの座標から10km以内にあるかどうかを確認したいと思います。
これに対する解決策はありますか、それとも私はxy問題に直面していますか?
不動産に直面する問題が発生しました。
地球座標に変換している実際の住所があります(「LondonEye」から「-0.119543; 51.503324」など)。
また、検索しようとしている境界または領域も取得しました(たとえば、「10」は「10 km」です)。
今、私はたくさんの座標(地球の周りで完全にランダム)を取得しました。現在の座標がロンドンアイの座標から10km以内にあるかどうかを確認したいと思います。
これに対する解決策はありますか、それとも私はxy問題に直面していますか?
半正矢関数を使用して、2点間の距離を計算できます。
http://www.stormconsultancy.co.uk/blog/development/code-snippets/the-haversine-formula-in-c-and-sql/
ただし、速度については、経度と緯度の最大値/最小値(つまり、ロンドンアイの周りの正方形)を計算する必要があると思います。これは、チェックするポイントがたくさんある場合に計算するのがはるかに高速になるためです。次に、この小さなポイントのサブセット(正方形内)でHaversineの式を使用して、10km以内のポイントを見つけます。
この問題にはよく知られた解決策があります。Haversine_formula
同じC#コードを検索することもできると思います。それが役に立てば幸い。
これはあなたを助けることができるようです:http: //www.doogal.co.uk/dotnetcoords.php
これはhttp://www.jstott.me.uk/jcoordに基づいており、ポイント間の距離を計算できます。私の言葉を信じないでください、どちらも使用していません。