web-dev-qa-db-ja.com

複雑なフィルター設計

マッピングプラグイン用の複雑なフィルターを作成する必要があります。マップには、異なるエンティティ間のリンクが表示されます。エンティティには多くのタイプがあり、それぞれに独自の属性があります。エンティティ間のリンクには多くのタイプがあり、各リンクにも方向があります。

ユーザーがマップに表示したいものを選択できるように、マップ用のフィルターを作成する必要があります。マップのすべての側面はフィルター可能でなければなりません。これの意味は:

特定のエンティティでフィルタリング、特定の属性を持つエンティティでフィルタリング、特定の属性と特定のリンク方向を持つエンティティでフィルタリングします。

特定の属性でフィルタリングし、特定のリンク方向を持つ特定の属性でフィルタリングします。

特定のリンク方向でフィルタリングします。

つまり、すべてのレベルですべてがフィルター可能でなければなりません。

フィルターシステムがまだかなり直感的に使用でき、しかも上記すべてが含まれるように、どのような設計パターンまたは例を提案できますか?

2
joshua miller

特定の設計上の制約(たとえば、フィルタリングのサイドバーが許容されるかどうか、デスクトップとモバイルなど)は述べていませんが、これはGISの場合 ファセットナビゲーション のように聞こえます。

この一般的なパターンには多くのバリエーションがありますが、基本的な考え方は、現在選択されているエンティティリスト内の関連するエンティティプロパティとそれらの可能な値を一覧表示するフィルタリングサイドバーを持つことです。つまり、フィルタリングする関連する各エンティティプロパティのセクションを含むサイドバー(別名 "ファセット"):エンティティID、属性A ... Z、リンク方向を具体的に言及すると、エンティティの場所は次のようになると思います別のもの(正確なGPS座標、政府境界階層、またはその両方)。エンティティプロパティごとに、そのプロパティの既存の値によるフィルタリングへのアクセスを提供します。

前述のように、これらの関数を正確に実装する方法には多くのバリエーションがあります。 ここで古い調査とより技術的な議論を見つけることができます (免責事項:私は論文の著者ですが、PDFへの非ACMペイウォールリンクがありません)。

ただし、要約すると、エンティティとそのプロパティの数に応じて、UI/UXで「メタナビゲーション」を検討する必要があります。つまり、フィルタリングの選択肢を段階的に拡張して、利用可能なフィルタリング属性自体をナビゲートします。フィルターの選択や値自体など。同様に、各プロパティの値の数

最も単純なケースでは、各プロパティを見出しとしてリストし、その下にあるスイッチまたは同様のウィジェットを使用して、その下にある可能性のある各値をフィルタリングできます。もちろん、個別の値の数が多い場合、これは扱いにくくなり、設計者は通常、範囲スライダー(数値/時間値の場合)、検索ボックス(テキスト値の場合)、および/または階層分類を使用して、値の選択も簡略化します。

さて、このすべてのフィルタリングをマップ自体で実行したい場合、UIの問題はさらに難しくなります。私が最初に考えたのは、読み取り専用の設計に使用するエンティティ/属性の表示メカニズムを通じてフィルタリングを提供することです。どの要素がフィルター可能なアイテムであるかを視覚的に示し、ユーザーが右クリック/長押し/何でもできるようにしますその値/要素を現在のフィルターに追加するためのラベルまたは表現、そして現在のフィルターをマップオーバーレイ要素または何かとして表示していると思います。

1
eclarkso