docs: def geolocate(client, home_mobile_country_code=None,
                home_mobile_network_code=None, radio_type=None, carrier=None,
                consider_ip=None, cell_towers=None, wifi_access_points=None):
      """
      The Google Maps Geolocation API returns a location and accuracy
      radius based on information about cell towers and WiFi nodes given.
  
      See https://developers.google.com/maps/documentation/geolocation/intro
      for more info, including more detail for each parameter below.
  
      :param home_mobile_country_code: The mobile country code (MCC) for
          the device's home network.
      :type home_mobile_country_code: string
  
      :param home_mobile_network_code: The mobile network code (MCC) for
          the device's home network.
      :type home_mobile_network_code: string
  
      :param radio_type: The mobile radio type. Supported values are
          lte, gsm, cdma, and wcdma. While this field is optional, it
          should be included if a value is available, for more accurate
          results.
      :type radio_type: string
  
      :param carrier: The carrier name.
      :type carrier: string
  
      :param consider_ip: Specifies whether to fall back to IP geolocation
          if wifi and cell tower signals are not available. Note that the
          IP address in the request header may not be the IP of the device.
      :type consider_ip: bool
  
      :param cell_towers: A list of cell tower dicts. See
          https://developers.google.com/maps/documentation/geolocation/intro#cell_tower_object
          for more detail.
      :type cell_towers: list of dicts
  
      :param wifi_access_points: A list of WiFi access point dicts. See
          https://developers.google.com/maps/documentation/geolocation/intro#wifi_access_point_object
          for more detail.
      :type wifi_access_points: list of dicts
      """
  
      params = {}
      if home_mobile_country_code is not None:
          params["homeMobileCountryCode"] = home_mobile_country_code
      if home_mobile_network_code is not None:
          params["homeMobileNetworkCode"] = home_mobile_network_code
      if radio_type is not None:
          params["radioType"] = radio_type
      if carrier is not None:
          params["carrier"] = carrier
      if consider_ip is not None:
          params["considerIp"] = consider_ip
      if cell_towers is not None:
          params["cellTowers"] = cell_towers
      if wifi_access_points is not None:
          params["wifiAccessPoints"] = wifi_access_points
  
      return client._request("/geolocation/v1/geolocate", {},  # No GET params
                             base_url=_GEOLOCATION_BASE_URL,
                             extract_body=_geolocation_extract,
                             post_json=params)