APlaceGeocoder = function (httpAdapter, options) {
  this.supportIPv4 = false;
  this.supportIPv6 = false;
  this.supportAddress = true;
  APlaceGeocoder.super_.call(this, httpAdapter);

  if (!this.constructor.name) {
    throw new Error('The Constructor must be named');
  }

  this.name = formatGeocoderName(this.constructor.name);

  if (!httpAdapter || httpAdapter == 'undefined') {
    throw new Error(this.constructor.name + ' need an httpAdapter');
  }
  this.httpAdapter = httpAdapter;

  if (options) {
    for (var k in options) {
      this.options[k] = options[k];
    }
  }

  if (!this.options.language) {
    this.options.language = 'en';
  }

  if (!this.options.apiKey) {
    throw new Error('You must specify a apiKey (see https://aplace.io/en/documentation/general/authentication)');
  }

  if (this.options.apiKey && !httpAdapter.supportsHttps()) {
    throw new Error('You must use https http adapter');
  }

  this.options = options;
}
APlaceGeocoder Constructor
@param <object> httpAdapter Http Adapter
@param <object> options     Options (language, apiKey)