ユーザーが自分の場所でイベントをホストし、人々を招待できるイベントアプリを作成しています。ホストされているイベントのリストを地図上で公開し、アイコンで指定したい。ただし、公開イベントの場所は、緯度と経度の両方で+ 1/-1マイルで難読化されます。イベントに招待されると、実際のアドレスが届きます。これは、ユーザーの自宅の住所を保護するためです。
正確な位置を示すためにマーカーがどのように使用されるかを見ると、それらは難読化された位置には不適切に見えます。イベントの全体像を感じてもらいたい。私は、半透明の円形の図形のようなものを考えていました。その中心は、難読化された緯度/経度の位置にあります。
マップ上の「エリア」を表すのに最適な形状/アイコンは何ですか?
住所がまだ個人情報である場合は、マップをユーザーインターフェイスとして使用しません。なぜなら、地図はあるレベルで正確な位置を表すために使用されるため、常にプライバシーの問題に遭遇するからです。
地図は、ユーザーが場所に基づいて参加したいイベントを選択できる場合に役立ちます。イベントの場所をユーザーに招待する必要がある場合は、イベントのマップの有用性に疑問を感じます。別のUIを使用してイベントを一覧表示し、ユーザーが招待されたらマップを使用します。リストをフィルタリングして、ユーザーの場所から特定の半径内に収まるもののみを含めることができます。プライバシーを保護するために、ユーザーに実際の半径を指定する代わりにバケットを使用できます。たとえば、nearby、少し邪魔および遠く離れています)。
エリアを表すために指定したオプションはすべて問題ありませんが、表示するように選択したエリアのレベル(たとえば、近所や町)でのプライバシーは保証されないことに注意してください。
これを検討したかどうかわからない別のオプション:近くの公共のランドマーク(図書館、ショッピングセンターなど)についてイベントを設定する人に尋ねます。次に、その場所を使用します。これにより、多くの地元の知識を必要とせず、かなり多様な人口密度に対応できるようになります。
また、川のようなものもうまく処理します。たとえば、このあたりでは、ポトマック川がメリーランドとバージニアを分けています。バージニア側の場所は10分の距離ですが、川を渡って1,000フィート移動すると、突然車で1時間ほど離れます。ユーザーはこれを知って、川の正しい側にあるランドマークを選びます。
あなたの考えは合理的な解決策のように聞こえます。
ただし、このオフセットがマップが読み込まれるたびにランダムに生成されるだけではないことを確認します...ランダムに生成された十分なオフセットがあれば、この分布の実際の中心を導き出すことが可能になります。
さらに、それが一般的な領域であることを本当に強調したい場合は、円に定義された境界線を表示するのではなく、一般的な領域を表すぼやけた円形のオーバーレイを表示してください。次のようなものでしょうか?
注:それは単なる例です。パターンはひどいです、私は承知しています、そしてそれは事前に設定されたオプションであり、私は調整を気にしませんでしたそれ。モックアップには十分だと思いました...
郵便番号と対応する地域の場所を使用します。人口密度に合わせて調整された、すでに実装されている難読化/集計システムです。
あなたは明らかにあなたの正確な場所を取り、それを灰色のぼかしで覆うことはできません。それでも、目的地を正確に特定できます。
ただし、(簡単に)できることは、次の都市を選び、その都市を指摘し、その場所がその都市の中心ではないことをUIから非常に明確にすることです。ロケーションメーカーを選択した都市の地理的中心に配置し、ロケーションが実際にはインナーシティにあると誰もが気付かないようにし、「CityXの近くのどこかにある」などのラベルを付けます。と。
都市を見つけるには、「実際の場所からX〜Y km /マイル離れた場所+少なくともZ人の居住者」を要求するクエリを作成します。 Zは巨大である必要はありませんが、小さな田舎の村を除外するために、おそらく3000以上にする必要があります。
結果が得られない場合(つまり、非常に静かな田舎の場合)、スケールアップする必要があります。つまり、「状態Xのどこかに」またはそのようなものにします。
ユーザーの情報コンテンツは平凡であり、他の回答と同様に、マップの表示を完全にスキップすることができますが、これは質問に対する解決策であり、関係者を満足させ、isを使用しない限り、おしゃれな機能ですあなたのクライアントは主に遠く離れた農村に住んでいます。
ズームを制限し、ピンマーカーではなくかなり大きなblobを使用すると、自然な感じで精度が低くなります。これがモックアップです:
主要道路のみが表示されていますが、イベントが都市のどちら側にあるかを確認できます。ナビゲートできません。
一部のマッピングAPIではカスタムマーカーが許可されています。少なくとも埋め込まれた状態で使用すると、一部のズームが制限されると思います。 APIに提供される場所は、精度が制限されている(丸められる)必要があります。
他のすべてが失敗した場合、これを行うことができますが、imageを表示できます。イベントを適切な場所に配置するかどうかを人々が決定できるようにするためにこれを成功させる1つのサイトを知っています-それは少し古い学校ですがそれは機能します
ワールドスペースを内部的にグリッド(たとえば、1x1マイルの正方形)に分割する場合、イベントは単一の正方形内にあると分類でき、マップをレンダリングするときはいつでも、その正方形内の任意の場所にそのイベントのマーカーをランダムに配置できます。こうすることで、中心についてのヒントがなくても、個別のマーカーが表示されるので、相対密度を簡単に確認できます。
イベントの数に基づいてグリッドセグメントに色を割り当てたり、マーカーをスキップしてヒートマップのようにしたり、人口が多い各正方形に単一のマーカーを配置して、その領域内のおおよその数を表すこともできます。また、イベントまでの距離を計算する場合は、各イベントの位置が正方形の中心であると想定できます。
各イベントの場所を表示する代わりに、2つ以上のイベントのグループの平均的な場所のみを表示します。これは簡単なモックアップです:
ピンクの点は、これを flickr.com/map のスクリーンショットから作成したためです。 IIRC、Flickrには、私が説明しているUIがありました。画像は「集約ドット」にひとまとめにされていましたが、残念ながら、マップインターフェースの実装はなくなっているようです。
アルゴリズムでは、地図上に「(1)」のドットを1つだけ表示しないでください。ある場所にイベントが1つしかない場合は、別のイベントが見つかるまでさらに調べて、場所を平均化する必要がありますegメトロエリアのダウンタウンエリアの反対側にイベントが2つしかないというまれなEdgeケースでは、ダウンタウンエリアの真ん中に「(2)」ドットが表示されます。詳細エリア内にあるイベントは、場所がより正確になりますが、精度にも厳しい制限があります。最小距離内のイベント(例:1000メートル)は常に一緒にグループ化されるため、上記のように、番号の大きいバブルが表示されます。
プライバシーの面では、緯度/経度の精度はイベントの密度に関連付けられています。高いイベント密度は、ほぼ確実に、人口/会場密度が高い場所でのみ発生します。
イベントの場所が難読化されない可能性があると私が考えることができる唯一のエッジケースは、複数のアプリ内イベントが同じ実際のイベントに追加される状況です。重複するアドレスを削除するマッピングの前にデータにフィルターをかけることは、これを解決する1つの方法である可能性があります。
イベントの場所を「あなたから2マイル北」などのように表示してみませんか。一部の地域では、地区に名前が付けられているため、「ハイランド湖地域の北西4マイル」と言うことができます。潜在的な景品を危険にさらすのに十分近い何かのために、あなたは言うことができます:「ちょうど道を下って」。
あなたはマップを事前に定義されたヘクスに内部的に分割することができます。所与のイベントの場合、その場所は正確に1ヘクスに分類されます。次に、ヘクスを囲むエッジが定義されていない円(フェードエッジのある陰影領域、または輪郭のない陰影領域)を地図に表示できます。イベントはその円内にあることが保証されますが、ユーザーは、そのサークル内でイベントが発生した場所を三角測量できません。
次に、ユーザーを自分のヘクスにいると数え、ヘックスからヘクスへの距離に基づいたおおよその距離を提供します。 「このイベントは約5マイル先です」。これにより、±1mi/2kmの精度が得られます(ユーザーとイベントがそれぞれのヘクスの隅にある場合は6マイル弱、近い角にある場合は4マイル強です)。ただし、ユーザー(またはボット)は、イベントの位置を1マイル/ 2 kmのヘクスを超えて三角測量できません。
それがreally田園地帯であり、その場所が文字通り半径1マイル以上の唯一の場所である場合、はい、それは推定できますが、これは極端なEdgeケースです。
ユーザーに表示される円は事実上重複していますが、基礎となる「アーキテクチャ」は重複しないヘクスに基づいているため、特定の場所が複数の円に表示されることはありません。
マップに固定サイズのグリッドを使用し、必要に応じてグリッドサイズを選択します(2マイルの正方形など)。次に、イベントの場所を含むグリッドを強調表示します。
グリッドグリッドには開始点が固定されていることに注意してください。