OSMdroid 添加自定义图标到 ItemizedOverlay

2023-11-22

我正在使用 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 都有自己的标记......

如何使用开放街道地图执行此操作?

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

感谢您的帮助,遗憾的是这个开源项目没有太多在线支持......


假设您的 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 是可绘制文件夹中的 .png。

Update- 要为整个覆盖设置默认标记,请更改

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

to

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

其中 newMarker 与以前一样

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OSMdroid 添加自定义图标到 ItemizedOverlay 的相关文章

随机推荐