ユーザーの現在の場所から特定の方向 (度単位) で最も近い国 (世界地図で表示) を計算したいと思います。
これを行う 1 つの方法は、ここで提供されている数式を使用してステップインすることです。たとえば、ユーザーの開始国ではない国に最終的に到達するまで、ポイントからポイントへ 5 マイルずつ増加します。ただし、ジオコーディング リソースの使用に関しては、これは恐ろしく非効率的です。
これに使用できるより良いアルゴリズムを知っている人はいますか?
前もって感謝します。
ユーザーの現在の場所から特定の方向 (度単位) で最も近い国 (世界地図で表示) を計算したいと思います。
これを行う 1 つの方法は、ここで提供されている数式を使用してステップインすることです。たとえば、ユーザーの開始国ではない国に最終的に到達するまで、ポイントからポイントへ 5 マイルずつ増加します。ただし、ジオコーディング リソースの使用に関しては、これは恐ろしく非効率的です。
これに使用できるより良いアルゴリズムを知っている人はいますか?
前もって感謝します。
リバース ジオコーディング操作の量を減らす 1 つの方法は、この問題を国境の検索として扱うことです。二分探索アルゴリズムを使用し、各ポイントを逆ジオコーディングすると、最小数の逆ジオコード操作で、現在の国から隣接する国に国が変わる場所を見つけることができます。
二分探索では、方位は一定で、最小範囲 (5 マイル) と最大範囲 (12,000 マイル) があり、国境がある範囲を検索しています。次に、国境を越えた位置をリバース ジオコーディングして、そこにある国を見つけます。問題の 1 つは、国境のすぐ先が海である可能性があることです。
私は使用しますMKReverseGeocoding
。コード例については、この SO の質問を確認してください。