以下に基づいてマップ マーカー アイコンを設定するためのコードを実装するための最も効率的なアプローチについて、誰かが何か提案があれば非常に役に立ちます。
- 表示するマーカーを指定するユーザー定義のフィルタ(
boolean
) HashMap<String, Integer>
マーカーに関連付けられた に含まれるキー- でclass CrimePoint
ユーザーによって定義されたフィルター オプション:
boolean displayAntiSocialBehaviourMarkers;
boolean displayBurglaryMarkers;
boolean displayCriminalDamageArsonMarkers;
boolean displayDrugsMarkers;
boolean displayOtherTheftMarkers;
boolean displayPubDisorderWeaponsMarkers;
boolean displayRobberyMarkers;
boolean displayShopliftingMarkers;
boolean displayVehicleCrimeMarkers;
boolean displayViolentCrimeMarkers;
boolean displayOtherCrimeMarkers;
各マーカーはCrimePoint
、マーカーをプロットするために必要なすべての情報を含むクラスである で作成されます
犯罪ポイント クラス変数:
private final Double latitude;
private final Double longitude;
private final String title;
//SNIPPET
//The HashMap storing the categories associated with this CrimePoint.
//Category name is the key and the number of crimes in that category is the Value
//
private Map<String, Integer> crimeCategories;
//An integer to hold the references to the icon image to use
//Example: R.drawable.image002;
private int iconResource;
マーカー アイコン:
マップで使用できる12の異なるマーカー アイコンがあります。[上記の] フィルター オプションごとに 1 つと特殊なケース マーカー (複数犯罪) の場合:
-CrimePoint
に複数の犯罪カテゴリ ( crimeCategories.size() > 1
)があり、かつ
- に含まれる複数の犯罪カテゴリCrimePoint
がフィルター オプションを使用して表示されるように設定されている
マーカーは、表示されている (または複数の) CrimeCategory がある場合にのみ描画されます。
私はこれに必要なロジックに取り組むのに何年も費やしてきましたが、あまり思い付いていないので、どんな助けや提案も素晴らしいでしょう.
注: ユーザーがフィルター オプションを変更するたびに、この関数を呼び出してマップ上のアイコンを変更し、マーカーを非表示/表示する必要があります。