我正在使用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);
感谢您的帮助,遗憾的是,这个开源项目无法在线提供支持......
答案 0 :(得分:18)
据推测,您的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与之前一样