Source: MapLocator.js

/**
 * @module nyc/MapLocator
 */

import Locator from 'nyc/Locator'

/**
 * @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 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