static transformToCartographic(positions, ellipsoid) {
    //>>includeStart('debug', pragmas.debug);
    Check.defined("positions", positions);
    Check.defined("ellipsoid", ellipsoid);
    //>>includeEnd('debug');

    const cartographicPosition = new Cartographic();
    const cartographicPositions = ModelImageryMapping.map(positions, (p) => {
      // Note: This will not yield valid results for p=(0,0,0).
      // But there is no sensible cartographic position for
      // that, so simply accept the unspecified output here.
      ellipsoid.cartesianToCartographic(p, cartographicPosition);
      return cartographicPosition;
    });
    return cartographicPositions;
  }
Creates a new iterable that provides `Cartographic` objects that
are created by converting the given `Cartesian3` objects to
cartographics, based on the given ellipsoid.

The resulting iterable will always return the same `Cartographic`
object. Clients should not store and modify this object.

@param {Iterable<Cartesian3>} positions The positions
@param {Ellipsoid} ellipsoid The ellipsoid
@returns {Iterable<Cartographic>} The cartographic positions