@Override
  protected void doMoveTo(
      Globe globe, Position oldReferencePosition, Position newReferencePosition) {
    if (this.boundaries.getContourCount() == 0) return;

    for (int i = 0; i < this.boundaries.getContourCount(); i++) {
      List<LatLon> newLocations =
          LatLon.computeShiftedLocations(
              globe, oldReferencePosition, newReferencePosition, this.boundaries.getContour(i));

      this.boundaries.setContour(i, newLocations);
    }

    // We've changed the multi-polygon's list of boundaries; flag the shape as changed.
    this.onShapeChanged();
  }