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