private SortedRangeList computeNavigationIndices(int height, AddressIndexMap map) {

		double numIndexes = map.getIndexCount().doubleValue();
		if (markers.isEmpty() || height == 0 || numIndexes == 0) {
			return null;
		}

		if (overview != null && lastHeight == height) {
			return overview; // use cache
		}

		SortedRangeList newOverview = new SortedRangeList();
		double indexSize = numIndexes / height;
		if (numIndexes < height && (this instanceof PointMarkerSet)) {
			int nIndexes = map.getIndexCount().intValue();
			for (int i = 0; i < nIndexes; i++) {
				Address addr = map.getAddress(BigInteger.valueOf(i));
				if ((addr != null) && markers.contains(addr)) {
					int index = (int) (i / indexSize);
					newOverview.addRange(index, index);
				}
			}
		}
		else if (markers.hasFewerRangesThan(height)) {
			FieldSelection sel = map.getFieldSelection(markers.getCombinedAddressSet());
			int n = sel.getNumRanges();
			for (int i = 0; i < n; i++) {
				FieldRange range = sel.getFieldRange(i);
				int start = (int) (range.getStart().getIndex().doubleValue() / indexSize);
				int end = (int) (range.getEnd().getIndex().doubleValue() / indexSize);
				newOverview.addRange(start, end);
			}

		}
		else {
			BigInteger startIndex = BigInteger.ZERO;
			for (int i = 0; i < height; i++) {
				BigInteger endIndex = BigDecimal.valueOf((i + 1) * indexSize).toBigInteger();
				int compareTo = startIndex.compareTo(endIndex);
				if (compareTo > 0) {
					BigInteger tmp = startIndex;
					startIndex = endIndex;
					endIndex = tmp;
				}
				else if (compareTo == 0) {
					endIndex = startIndex.add(BigInteger.ONE);
				}
				if (endIndex.compareTo(map.getIndexCount()) >= 0) {
					endIndex = map.getIndexCount();
				}
				FieldSelection fs = new FieldSelection();
				fs.addRange(startIndex, endIndex);
				AddressSet set = map.getAddressSet(fs);
				if (markers.intersects(set)) {
					newOverview.addRange(i, i);
				}
				startIndex = endIndex;
			}
		}

		lastHeight = height;
		overview = newOverview;
		return newOverview;
	}
Returns the Navigator Icon for this marker set

@return the Navigator Icon for this marker set
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/marker/MarkerSetImpl.java