code: function geoPropertyPair() {
    var args = mlutil.asArray.apply(null, arguments);
    if (args.length < 2) {
      throw new Error('need at least two parameters for geospatial property pair query');
    }
  
    var location = {};
  
    var keys = ['parent-property', 'lat-property', 'lon-property'];
    var key = null;
    var arg = null;
    for (var i=0; i < keys.length; i++) {
      key = keys[i];
      arg = args[i];
      if (typeof arg === 'string' || arg instanceof String) {
        location[key] = arg;
      } else if (arg instanceof JSONPropertyDef) {
        location[key] = arg['json-property'];
      } else {
        throw new Error('no parameter for '+key+': '+JSON.stringify(arg));
      }
    }
  
    return {'geo-json-property-pair': location};
  }
docs: Specifies the geospatial locations represented by a JSON property pair
  for passing to the {@link queryBuilder#geospatial} function.
  @method
  @since 1.0
  @memberof queryBuilder#
  @param {string} parent - the name of the containing parent property
  @param {string} latitude - the name of the latitude property
  @param {string} longitude -  the name of the longitude property
  @returns {queryBuilder.GeoLocation} the specification for the geospatial locations