/** {@inheritDoc} */ @Override protected void determineLabelPositions(DrawContext dc) { Position center = this.getReferencePosition(); if (center == null) return; // Position the labels along a line radiating out from the center of the circle. The angle (60 // degrees) is // chosen to match the graphic template defined by MIL-STD-2525C, pg. 613. double globeRadius = dc.getGlobe().getRadius(); Angle labelAngle = this.getLabelAngle(); int i = 0; for (SurfaceCircle ring : this.rings) { double radius = ring.getRadius(); LatLon ll = LatLon.greatCircleEndPosition(center, labelAngle.radians, radius / globeRadius); this.labels.get(i).setPosition(new Position(ll, 0)); i += 1; } }