class_docstr: Geocoder using the Physical Address Geocoder from DataBC.
  
  Documentation at:
      https://github.com/bcgov/ols-geocoder/blob/gh-pages/geocoder-developer-guide.md
class_docstr_tok: ["Geocoder","using","the","Physical","Address","Geocoder","from","DataBC",".","Documentation","at",":","https",":","\/\/github.com\/bcgov\/ols-geocoder\/blob\/gh-pages\/geocoder-developer-guide.md"]
docstr: Return a location point by address.
  
  :param str query: The address or query you wish to geocode.
  
  :param int max_results: The maximum number of resutls to request.
  
  :param float set_back: The distance to move the accessPoint away
      from the curb (in meters) and towards the interior of the parcel.
      location_descriptor must be set to accessPoint for set_back to
      take effect.
  
  :param str location_descriptor: The type of point requested. It
      can be any, accessPoint, frontDoorPoint, parcelPoint,
      rooftopPoint and routingPoint.
  
  :param bool exactly_one: Return one result or a list of results, if
      available.
  
  :param int timeout: Time, in seconds, to wait for the geocoding service
      to respond before raising a :class:`geopy.exc.GeocoderTimedOut`
      exception. Set this only if you wish to override, on this call
      only, the value set during the geocoder's initialization.
  
  :rtype: ``None``, :class:`geopy.location.Location` or a list of them, if
      ``exactly_one=False``.
docstr_tok: ["Return","a","location","point","by","address",".",":","param","str","query",":","The","address","or","query","you","wish","to","geocode",".",":","param","int","max_results",":","The","maximum","number","of","resutls","to","request",".",":","param","float","set_back",":","The","distance","to","move","the","accessPoint","away","from","the","curb","(","in","meters",")","and","towards","the","interior","of","the","parcel",".","location_descriptor","must","be","set","to","accessPoint","for","set_back","to","take","effect",".",":","param","str","location_descriptor",":","The","type","of","point","requested",".","It","can","be","any",",","accessPoint",",","frontDoorPoint",",","parcelPoint",",","rooftopPoint","and","routingPoint",".",":","param","bool","exactly_one",":","Return","one","result","or","a","list","of","results",",","if","available",".",":","param","int","timeout",":","Time",",","in","seconds",",","to","wait","for","the","geocoding","service","to","respond","before","raising","a",":","class",":","`","geopy.exc.GeocoderTimedOut","`","exception",".","Set","this","only","if","you","wish","to","override",",","on","this","call","only",",","the","value","set","during","the","geocoder","'s","initialization",".",":","rtype",":","``","None","``",",",":","class",":","`","geopy.location.Location","`","or","a","list","of","them",",","if","``","exactly_one=False","``","."]
code: def geocode(
      self,
      query,
      *,
      max_results=25,
      set_back=0,
      location_descriptor="any",
      exactly_one=True,
      timeout=DEFAULT_SENTINEL,
  ):
      """
      Return a location point by address.
  
      :param str query: The address or query you wish to geocode.
  
      :param int max_results: The maximum number of resutls to request.
  
      :param float set_back: The distance to move the accessPoint away
          from the curb (in meters) and towards the interior of the parcel.
          location_descriptor must be set to accessPoint for set_back to
          take effect.
  
      :param str location_descriptor: The type of point requested. It
          can be any, accessPoint, frontDoorPoint, parcelPoint,
          rooftopPoint and routingPoint.
  
      :param bool exactly_one: Return one result or a list of results, if
          available.
  
      :param int timeout: Time, in seconds, to wait for the geocoding service
          to respond before raising a :class:`geopy.exc.GeocoderTimedOut`
          exception. Set this only if you wish to override, on this call
          only, the value set during the geocoder's initialization.
  
      :rtype: ``None``, :class:`geopy.location.Location` or a list of them, if
          ``exactly_one=False``.
      """
      params = {"addressString": query}
      if set_back != 0:
          params["setBack"] = set_back
      if location_descriptor not in [
          "any",
          "accessPoint",
          "frontDoorPoint",
          "parcelPoint",
          "rooftopPoint",
          "routingPoint",
      ]:
          raise GeocoderQueryError(
              "You did not provided a location_descriptor "
              "the webservice can consume. It should be any, accessPoint, "
              "frontDoorPoint, parcelPoint, rooftopPoint or routingPoint."
          )
      params["locationDescriptor"] = location_descriptor
      if exactly_one:
          max_results = 1
      params["maxResults"] = max_results
  
      url = "?".join((self.api, urlencode(params)))
      logger.debug("%s.geocode: %s", self.__class__.__name__, url)
      callback = partial(self._parse_json, exactly_one=exactly_one)
      return self._call_geocoder(url, callback, timeout=timeout)
  
file_path: geopy/geopy/geocoders/databc.py
imports: from functools import partial
  from urllib.parse import urlencode
  from geopy.exc import GeocoderQueryError
  from geopy.geocoders.base import DEFAULT_SENTINEL, Geocoder
  from geopy.location import Location
  from geopy.util import logger
label_desc: Use image node_id 2 for calling the DataBC obj's underlying member method code with example usage: obj.geocode(query) and returns: self