2012-05-10 73 views
5

我正在使用ItemizedIconOverlay類,我目前在地圖上顯示事件以及用戶的位置與相同的默認圖標。OSMdroid添加自定義圖標到ItemizedOverlay

如何更改每個疊加層的圖標集?

是否有類似google.maps例如東西:

drawable = getResources().getDrawable(R.drawable.marker); 
    drawable3 = getResources().getDrawable(R.drawable.disruption); 
    drawable2 = getResources().getDrawable(R.drawable.marker_me); 

    itemizedOverlay = new MyItemizedOverlay(drawable, mapView); 
    itemizedOverlay2 = new MyItemizedOverlay(drawable2, mapView); 
    itemizedOverlay3 = new MyItemizedOverlay(drawable3, mapView); 

我每itemizedOverlay有自己的標誌......

如何做到這一點與開放街道地圖?

mResourceProxy = new DefaultResourceProxyImpl(getApplicationContext()); 
this.mMyLocationOverlay = new ItemizedIconOverlay<OverlayItem>(mItems, new Glistener(), mResourceProxy); 

謝謝您的幫助,它的一個恥辱沒有多少支持可在線這個開源項目...

回答

17

想必你mItems就像創建OverlayItems的ArrayList:

mItems = new ArrayList<OverlayItem>(); 

這份名單,你會加入個人OveralyItems,所以當你創建的每個項目,你可以像這樣做,設置標記將其添加到列表之前:

OverlayItem olItem = new OverlayItem("Here", "SampleDescription", point); 
Drawable newMarker = this.getResources().getDrawable(R.drawable.mymarker); 
olItem.setMarker(newMarker); 
mItems.add(olItem); 

其中mymarker是您的drawables文件夾中的.png。

更新 - 設置默認標誌物全覆蓋,改變

this.mMyLocationOverlay = new ItemizedIconOverlay<OverlayItem>(mItems, new Glistener(), mResourceProxy); 

this.mMyLocationOverlay = new ItemizedIconOverlay<OverlayItem>(mItems, newMarker, new Glistener(), mResourceProxy); 

其中newMarker如前

+0

謝謝它的工作! – bubbly

+0

但是,我可以爲整個疊加添加默認標記嗎?像itemizedOverlay = new MyItemizedOverlay(drawable,mapView); 然後每個添加到該覆蓋圖的項目都會獲取特定的標記。 – bubbly

+1

是的,它看起來有另一個構造函數可用,它也採用默認標記。我會用更新 – NickT

相關問題