2011-11-16 33 views
4

我有一個地圖視圖,其中有幾個引腳繪製在不同的地址上。所有的作品都很好。 如果您有多個項目指向相同的地址,則會出現此問題。 例如,OverlayItem中的可點擊列表(MapView for Android)

單位1/45 ABC街,XYZ
單位7/45 ABC街,XYZ。

我使用下面這行代碼來獲取lat和long以創建一個GeoPoint。

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

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

根據API,上述兩個地址返回相同的座標。

因此,當繪製地圖上的引腳時,它們會覆蓋彼此,最後以一個引腳爲多個地址結束。

我試圖實現一個列表,顯示氣球上的所有重複地址。 企圖是徒勞的,我意識到,

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

讓我只供應兩個字符串在氣球中顯示。

任何關於如何擠在顯示多個地址的列表中的線索?

回答

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 
    } 
} 
+0

感謝Craigy創建一個列表一個自定義對話框!可能只是我需要的開始!請讓你知道它是如何:) – Neo

+0

嗨我做同樣的,我填充列表時單擊任何overlayitem,給onTab方法內的代碼。一切工作正常。但是,當我選擇列表,List Listner不工作每次。 –

+0

@RajeshSharma你應該發佈一個新的問題。確保你發佈你看到的任何異常和相關的代碼。 – Craigy