cartodb-4.42/lib/assets/javascripts/cartodb/models/tile_json.js
2024-04-06 05:25:13 +00:00

45 lines
1.0 KiB
JavaScript

/**
* Model to representing a TileJSON endpoint
* See https://github.com/mapbox/tilejson-spec/tree/master/2.1.0 for details
*/
cdb.admin.TileJSON = cdb.core.Model.extend({
idAttribute: 'url',
url: function() {
return this.get('url');
},
save: function() {
// no-op, obviously no write privileges ;)
},
newTileLayer: function() {
if (!this._isFetched()) throw new Error('no tiles, have fetch been called and returned a successful resultset?');
var layer = new cdb.admin.TileLayer({
urlTemplate: this._urlTemplate(),
name: this._name(),
attribution: this.get('attribution'),
maxZoom: this.get('maxzoom'),
minZoom: this.get('minzoom'),
bounding_boxes: this.get('bounds'),
tms: this.get('scheme') === 'tms'
});
return layer;
},
_isFetched: function() {
return this.get('tiles').length > 0;
},
_urlTemplate: function() {
return this.get('tiles')[0];
},
_name: function() {
return this.get('name') || this.get('description');
}
});