'use strict';
define(
['backbone', 'models/maps/GeoBoundingBox'],
(Backbone, GeoBoundingBox) => {
/**
* @class GeocodedLocation
* @classdes GeocodedLocation is the representation of a place that has been
* geocoded to provide latitude and longitude bounding coordinates for
* navigating to on a map.
* @classcategory Models/Geocoder
* @since 2.28.0
* @extends Backbone.Model
*/
const GeocodedLocation = Backbone.Model.extend(
/** @lends GeocodedLocation.prototype */{
/**
* Overrides the default Backbone.Model.defaults() function to specify
* default attributes.
* @name GeocodedLocation#defaults
* @type {Object}
* @property {GeoBoundingBox} box Bounding box representing this location
* on a map.
* @property {string} displayName A name that can be displayed to the user
* representing this location.
*/
defaults() {
return {
box: new GeoBoundingBox,
displayName: '',
};
},
/**
* @typedef {Object} GeocodedLocationOptions
* @property {Object} box An object representing a boundary around a
* location on a map.
* @property {string} displayName A display name for the location.
*/
initialize({ box: { north, south, east, west } = {}, displayName = '' } = {}) {
this.set('box', new GeoBoundingBox({ north, south, east, west }));
this.set('displayName', displayName);
},
});
return GeocodedLocation;
});