8

私は ItemizedIconOverlay クラスを使用しており、現在、同じデフォルト アイコンを使用して、ユーザーの位置とともにマップ上にイベントを表示しています。

各オーバーレイのアイコン セットを変更するにはどうすればよいですか?

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 に独自のマーカーを持たせました...

Open Street Maps でこれを行うにはどうすればよいですか?

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

ご協力いただきありがとうございます。このオープン ソース プロジェクトについて、オンラインで利用できるサポートがあまりないのは残念です...

4

1 に答える 1

20

おそらく、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 は以前と同じです

于 2012-05-10T12:24:27.157 に答える