API から場所を読み込むマップ アプリに取り組んでいます。ユーザーがかなりの距離をパンすると、API が x キロメートル以内の場所を照会し、注釈が置き換えられるように、コードを作成しました。
私は iOS 用にコーディングしていますが、これはどのマップ アプリにも当てはまります。
この時点ですべてが機能しますが、重要な距離とは何か、ロードする場所の半径についてのアルゴリズムには不満があります。私が考えているいくつかのこと -
- マップ ビューは、幅より高さが長い長方形です。
- x キロメートル以内の場所を読み込むと、円が表示されます
- ユーザーはズームインおよびズームアウトできます
- ユーザーは北、南、東、西にパンできます
- ビューを少し変更するたびに再読み込みすると、ユーザー エクスペリエンスが低下します。しきい値が必要です。
- ユーザーがリロードする前にある程度パンおよびズームできるように、ビューの外側に位置が必要です。
- 円の内側に長方形がある場合、ユーザーが上下にパンすると、左右にパンするよりも早く円の端に到達します。
- リソースを節約するために、縮小しすぎるとすべての場所が表示されるわけではないため、拡大すると新しい場所が表示される場合があります
- ズームアウトすると、新しい場所が表示されます
どのようなアルゴリズムを実行する必要があるかについて何か提案はありますか? 次の変数を決定しようとしています-
- 指定された画面幅をロードする場所の半径
- スポットをリロードする前の変更 (パンとズーム) のしきい値