Source: MapLocator.js

/**
 * @module nyc/MapLocator
 */

/**
 * @desc An abstract class for managing map location
 * @public
 * @abstract
 * @class
 */
class MapLocator {
  /**
   * @desc Zoom to the provided loacation then optionally invoke a callback function
   * @public
   * @abstract
   * @method
   * @param {module:nyc/Locator~Locator.Result} data The location to which the map will be oriented
   * @param {module:nyc/MapLocator~MapLocator#zoomLocationCallback=} callback The function to call after the locator has zoomed to the location
   */
  zoomLocation(data, callback) {
    throw 'Not implemented'
  }
  /**
   * @desc Set the location to the provided loacation without moving the map
   * @public
   * @abstract
   * @method
   * @param {module:nyc/Locator~Locator.Result} data The location
   */
  setLocation(data) {
    throw 'Not implemented'
  }
  /**
   * @desc Get the projection of the map
   * @public
   * @abstract
   * @method
   * @returns {string} The map projection
   */
  getProjection() {
    throw 'Not implemented'
  }
}

/**
 * @desc Callback for {@link module:nyc/MapLocator~MapLocator#zoomLocation}
 * @public
 * @callback module:nyc/MapLocator~MapLocator#zoomLocationCallback
 */

/**
 * @desc The default zoom level when zooming to locations
 * @const
 * @type {number}
 */
MapLocator.ZOOM_LEVEL = 17

export default MapLocator