4

我有一个地图视图,其中几个引脚绘制在不同的地址上。一切都很好。当您有多个项目指向同一个地址时,就会出现问题。例如,

XYZ ABC 街 45 号单元 1/45 单元 XYZ ABC 街 45 号
单元。

我使用以下代码行来获取纬度和经度以创建 GeoPoint。

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

其中 a 是地址,gc 是 GeoCoder 对象。

根据 API ,上面提到的两个地址返回相同的坐标。

因此,在地图上绘制引脚时,它们会相互覆盖,最终以一个引脚用于多个地址。

我试图实现一个在气球上显示所有重复地址的列表。尝试是徒劳的,我意识到

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

只允许我提供两个字符串显示在气球上。

关于如何挤入显示多个地址的列表的任何线索?

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 回答