4

異なるアドレスにいくつかのピンがプロットされたマップビューがあります。すべてが非常にうまく機能します。この問題は、同じアドレスを指すアイテムが複数ある場合に発生します。例えば、

ユニット1/45ABCストリート、XYZ
ユニット7/45 ABCストリート、XYZ。

次のコード行を使用して、GeoPointを作成するためにlatとlongをフェッチします。

List<Address> listfromGoogle = gc.getFromLocationName(a, 1);

ここで、aは住所、gcはGeoCoderオブジェクトです。

APIによると、上記の2つのアドレスは同じ座標を返します。

そのため、マップ上にピンをプロットしている間、それらは互いに上書きし、複数のアドレスに対して1つのピンになります。

バルーンに繰り返しアドレスをすべて表示するリストを実装しようとしました。その試みは無駄でした、そして私はそれに気づきました

OverlayItem(GeoPoint point, java.lang.String title, java.lang.String snippet) 

バルーンに表示される文字列を2つだけ指定できます。

複数のアドレスを表示するリストをどのように絞り込めるかについての手がかりはありますか?

4

1 に答える 1

0

カスタム OverlayItem を実装する必要があります

public class ListOverlayItem extends OverlayItem {
    private List<Address> list;

    public ListOverlayItem(GeoPoint point, List<Address> list) {
        super(point, "", "");
    }

    public List<Address> getList() {
        return list;
    }
}

次に、カスタム ItemizedOverlay で、このリストを使用して、onTapメソッド内のリストを含むカスタム ダイアログを作成できます。

public class ListItemizedOverlay extends ItemizedOverlay<ListOverlayItem> {

    @Override
    protected boolean onTap(int index) {
        // get item they tapped from index
        // use getList() to populate the listview in the custom dialog
    }
}
于 2011-11-16T01:16:28.427 に答える