web-dev-qa-db-ja.com

マップ内の任意の大きな半径の入力

ユーザーがマップ内のポイントを選択し、このポイントの周りに半径を定義する必要があるモバイルアプリを開発しています。これは、ジオフェンスを定義し、後でユーザーがこのエリアに入ったときにアクションを実行するために使用されます。

現時点では、ユーザーは地図をタッチしてポイントを選択し、シークバーを使用して半径を設定できます。マップに描かれた円は、シークバーの変化に応じて動的に更新されます。

a map with a location and a seekbar for setting a radius

私の質問は、ユーザーが任意の大きな半径を入力できるようにする方法ですか?

現在、ジオフェンスの半径の最大値を定義しています。しかし、ユーザーが好きなだけ大きな半径を定義できるようにしたいと思います。

1つのアイデアは、ユーザーが右端のシークバーを「押す」ときに、シークバーの最大値を増やすことです。しかし、それを引き戻すと、スケールは奇妙に感じられます。シークバーの小さな変更は、半径の大きな変更になります。

1
zelite

答えはわかりませんが、2つのことを試します。

  1. スライダーを非線形にします。左隅100m、右隅40k kmで地球をカバーします。左端を歩く姿で示します。地球アイコンの右隅。仮定は、人々がより小さな半径の近くでより細かい制御を必要とするであろうということです。

  2. スライダーを取り除き、ズームレベルを使用して半径を指定します。現在の半径の値と、該当する場合は半径をすべて無効にする方法を提供することにより、現在のズームレベルが実際に意味があることを示すようにしてください。

2
Jurijs Kovzels

ユーザーが数値を入力できるようにすることができます。これは、おそらく「高度な」オプションまたはそれに類するものを装ったものです。

@ErhanYaşarが言うように、地球は有限の空間であり、ユーザーが入力する必要がある精度のレベルとこれを交換する必要があるため、実現可能な最大値が存在します。

ジオフェンシングの目的は何ですか?どのレベルの精度が必要ですか?合理的な最小値と最大値は何ですか?

0
dougajmcdonald