public static void addHighlighting(final INamedGeoCoordinate geoitem, final Resources res, final GeoItemLayer<String> nonClickableItemsLayer) {
        Bitmap b1 = null;
        float scalingFactor = 100f;
        if (geoitem instanceof Geocache) {
            b1 = MapMarkerUtils.getCacheMarker(res, (Geocache) geoitem, null, true).getBitmap();
            scalingFactor = scalingFactorCacheIcons;
        } else if (geoitem instanceof Waypoint) {
            b1 = MapMarkerUtils.getWaypointMarker(res, (Waypoint) geoitem, true, true).getBitmap();
            scalingFactor = scalingFactorWpIcons;
        }
        if (b1 != null) {
            final Bitmap b = ViewUtils.drawableToBitmap(new ScalableDrawable(ResourcesCompat.getDrawable(res, R.drawable.background_gc_hightlighted, null), scalingFactor));
            final GeoPrimitive gp = GeoPrimitive.createMarker(geoitem.getCoords(), GeoIcon.builder().setBitmap(b).setHotspot(GeoIcon.Hotspot.BOTTOM_CENTER).build()).buildUpon().setZLevel(LayerHelper.ZINDEX_CACHE_WAYPOINT_HIGHLIGHTER_MARKER).build();
            nonClickableItemsLayer.put(CACHE_WAYPOINT_HIGHLIGHTER_BACKGROUND, gp);
            final GeoPrimitive gp1 = GeoPrimitive.createMarker(geoitem.getCoords(), GeoIcon.builder().setBitmap(b1).setHotspot(GeoIcon.Hotspot.BOTTOM_CENTER).build()).buildUpon().setZLevel(LayerHelper.ZINDEX_CACHE_WAYPOINT_HIGHLIGHTER_GEOITEM).build();
            nonClickableItemsLayer.put(CACHE_WAYPOINT_HIGHLIGHTER_GEOITEM, gp1);
        }
    }
Create the LayerDrawable representing the cache type icon

@param res   Android Resources
@param cache Geocache to get the icon for
@param withBorder    Draw a round border around the icon (for waypoint markers)
@param applyScaling  S
@return Layered Drawable
main/src/main/java/cgeo/geocaching/utils/MapMarkerUtils.java