private static void createStaticElements(final Geopoint center, final GeoItemLayer<String> layer) {

        for (int x = 0; x <= 2; x++) {
            for (int y = 0; y <= 2; y++) {
                final Geopoint point = center.project(90, x * 20).project(180, y * 20);
                final GeoItem gi = testIconWithPoly(point, Color.GREEN, x * 0.5f, y * 0.5f, 0);
                layer.put(TESTLAYER_KEY_PREFIX + "MarkerOffset-" + x + "-" + y, gi);
            }
        }

        layer.put(TESTLAYER_KEY_PREFIX + "MarkerOffsetRightTop", testIconWithPoly(center.project(90, 100), Color.GRAY, GeoIcon.Hotspot.UPPER_RIGHT_CORNER.xAnchor, GeoIcon.Hotspot.UPPER_RIGHT_CORNER.yAnchor, 0));

        final Geopoint circleCenter = center.project(90, 200);
        for (int a = 0; a < 360; a += 40) {
            final Geopoint point = circleCenter.project(a, 40);
            final GeoItem gi = testIconWithPoly(point, Color.RED, GeoIcon.Hotspot.CENTER.xAnchor, GeoIcon.Hotspot.CENTER.yAnchor, a);
            layer.put(TESTLAYER_KEY_PREFIX + "MarkerAngle-" + a, gi);
        }

        final Geopoint staticPolylineCenter = center.project(180, 50);
        layer.put(TESTLAYER_KEY_PREFIX + "staticPolyline", polygonAround(staticPolylineCenter, 50, Color.RED));

        final Geopoint staticCircle = staticPolylineCenter.project(90, 50);
        layer.put(TESTLAYER_KEY_PREFIX + "staticCircle", GeoPrimitive.createCircle(staticCircle, 40, GeoStyle.builder().setStrokeColor(Color.DKGRAY).setFillColor(Color.YELLOW).build()));

        final Geopoint staticPolygon = staticCircle.project(90, 50);
        layer.put(TESTLAYER_KEY_PREFIX + "staticPolygonWithText", GeoPrimitive.createPolygon(geoGridPoints(
                staticPolygon, 10, 0, 0, 3, 0, 3, 1, 2, 1, 2, 2, 3, 2, 3, 3, 1, 3, 0, 2
        ), GeoStyle.builder().setStrokeColor(Color.YELLOW).setStrokeWidth(5f).setFillColor(Color.GREEN).build())
                .buildUpon().setIcon(GeoIcon.builder().setText("This is my polygon").build()).build());

        final Geopoint staticPolWithHole = staticPolygon.project(90, 50);
        final GeoPrimitive pol = GeoPrimitive.builder().setType(GeoItem.GeoType.POLYGON)
                .setStyle(GeoStyle.builder().setStrokeColor(Color.YELLOW).setStrokeWidth(5f).setFillColor(Color.GREEN).build())
                .addPoints(geoGridPoints(staticPolWithHole, 10, 0, 0, 7, 0, 7, 7, 0, 7))
                .addHole(geoGridPoints(staticPolWithHole, 10, 1, 1, 1, 2, 2, 2, 2, 1))
                .addHole(geoGridPoints(staticPolWithHole, 10, 4, 4, 4, 5, 5, 5, 5, 4))
                .build();
        layer.put(TESTLAYER_KEY_PREFIX + "staticPolygonWithTwoHoles", pol);

        final Geopoint zLevelStuff = staticPolygon.project(180, 50);
        final GeoPrimitive zGreen = GeoPrimitive.createPolygon(geoGridPoints(zLevelStuff, 10, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0), GeoStyle.builder().setStrokeColor(Color.BLUE).setStrokeWidth(5f).setFillColor(Color.GREEN).build());
        final GeoPrimitive zYellow = GeoPrimitive.createPolygon(geoGridPoints(zLevelStuff.project(110, 8), 10, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0), GeoStyle.builder().setStrokeColor(Color.BLUE).setStrokeWidth(5f).setFillColor(Color.YELLOW).build());
        final GeoPrimitive zRed = GeoPrimitive.createPolygon(geoGridPoints(zLevelStuff.project(140, 6), 10, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0), GeoStyle.builder().setStrokeColor(Color.BLUE).setStrokeWidth(5f).setFillColor(Color.RED).build());

        //order visible should be yellow, red, green
        layer.put(TESTLAYER_KEY_PREFIX + "zGreen-z0(most background)(placed-0)", zGreen.buildUpon().setZLevel(0).build());
        layer.put(TESTLAYER_KEY_PREFIX + "zYellow-z2(most foreground)(placed-1)", zYellow.buildUpon().setZLevel(2).build());
        layer.put(TESTLAYER_KEY_PREFIX + "zRed-z1(placed-2)", zRed.buildUpon().setZLevel(1).build());

        //line thicknesses
        final Geopoint lineThickness = zLevelStuff.project(180, 50);
        for (int i = 0; i < 10 ; i++) {
            final int widthInDp = (i + 1) * 5;
            final Geopoint start = lineThickness.project(90, i * 10);
            final Geopoint end = start.project(180, 10);
            final GeoStyle style = GeoStyle.builder().setStrokeColor(Color.BLUE).setStrokeWidth((float) widthInDp).build();
            layer.put(TESTLAYER_KEY_PREFIX + "lineThickness-" + widthInDp,
                GeoPrimitive.createPolyline(Arrays.asList(start, end), style).buildUpon().setIcon(GeoIcon.builder().setText(widthInDp + "dp").build()).build());
        }

        //button width: 38dp
        layer.put(TESTLAYER_KEY_PREFIX + "lineThickness-oneButton",
            GeoPrimitive.createPolyline(Arrays.asList(lineThickness.project(180, 20), lineThickness.project(180, 20).project(90, 50)),
                GeoStyle.builder().setStrokeColor(Color.GREEN).setStrokeWidth(38f).build()));
        layer.put(TESTLAYER_KEY_PREFIX + "lineThickness-twoButton",
            GeoPrimitive.createPolyline(Arrays.asList(lineThickness.project(180, 25), lineThickness.project(180, 25).project(90, 50)),
                GeoStyle.builder().setStrokeColor(Color.RED).setStrokeWidth(38f * 2).build()));




    }
This is a test layer to experiment with unified geoitem layers. It is only activated with a specific developer setting
main/src/main/java/cgeo/geocaching/unifiedmap/geoitemlayer/GeoItemTestLayer.java