/**
* BeNomad BeMap JavaScript API - Routing, Isochrone
*/
/**
* @classdesc
* Base class for isochrone calculation.
* @public
* @constructor
* @abstract
* @param {bemap.Context} context BeMap-JS-API Context. Mandatory.
* @param {object} options see below the available values.
*/
bemap.Isochrone = function(context, options) {
bemap.Routing.call(this, context, options);
/**
* ID of geometry.
* @type {String}
* @protected
*/
this.geometryId = 'isochrone';
/**
* Draw a polygon with the polyline array.
* @type {boolean}
* @protected
*/
this.poylineAsPolygon = true;
};
bemap.inherits(bemap.Isochrone, bemap.Routing);
/**
* Execute the isochrone calculation.
* @public
* @param {object} options See below the available values.
* @param {object} options.geoserver Geoserver name will be used for this computation.
* @return {bemap.Isochrone} this
*/
bemap.Isochrone.prototype.compute = function(options) {
this.reset();
if (this.destinations && this.destinations.length != 1) {
console.error("Only 1 destionation is required for an isochrone!");
return;
}
var opts = options || {};
var i = 0;
var first = true;
var url = this.ctx.getBaseUrl() + 'bnd';
var data = 'version=1.0.0&action=routing&mode=MODE_ISOCHRONE&format=json&options=ISOCHRONE_FORWARD,POLYLINE';
if (this.ctx.isAuthInPost()) {
data += '&' + this.ctx.getAuthUrlParams();
} else {
url += '?' + this.ctx.getAuthUrlParams();
}
data += this.buildRequest(opts);
return this.execute(url, data, opts);
};