'Initialize a customized Google geocoder.
API authentication is only required for Google Maps Premier customers.
``domain`` should be the localized Google Maps domain to connect to. The default
is \'maps.google.com\', but if you\'re geocoding address in the UK (for
example), you may want to set it to \'maps.google.co.uk\' to properly bias results.
``protocol`` http or https.
``client_id`` Premier account client id.
``secret_key`` Premier account secret key.'

def __init__(self, domain='maps.googleapis.com', protocol='http', client_id=None, secret_key=None):

    super(GoogleV3, self).__init__()
    if (protocol not in ('http', 'https')):
        raise ValueError, 'Supported    protocols    are    http    and    https.'
    if (client_id and (not secret_key)):
        raise ValueError, 'Must    provide    secret_key    with    client_id.'
    if (secret_key and (not client_id)):
        raise ValueError, 'Must    provide    client_id    with    secret_key.'
    self.domain = domain.strip('/')
    self.protocol = protocol
    self.doc = {}
    if (client_id and secret_key):
        self.client_id = client_id
        self.secret_key = secret_key
        self.premier = True
    else:
        self.premier = False
