Generates digital signatures for Google Maps API calls.

Share:

Description

This function, primarily, is a helper for drive_time and geocode_url. It is only necessary when building digital signatures with the private cryptographic key associated with your (paid) Google for Work account. To build valid signatures your vector of addresses must contain "web-safe" UTF-8 characters. By default, and unlike drive_time and geocode_url,this function assumes that the address and dest parameters are already URL encoded. If this is not the case, you may apply url encoding to the inputs using the optional urlencode parameter (see below). (see: address_cleaner). For basic geocoding and distance analyses it is generally easier to use drive_time and geocode_url to encode a request with your Google for Work private key. However, and particularly with large batch jobs, it can be useful to inspect the output of this function for malformed values which yield invalid signatures (see the "debug" option). The function's method of signature generation follows the pattern outlined for Python in the Google Developer documention.

Usage

1
2
3
4
google_encode64(address, dest = NULL, gmode = "geocode", privkey = NULL,
  clientid = NULL, debug = FALSE, verbose = FALSE,
  travel_mode = "driving", units = "metric", language = "en-EN",
  urlencode = FALSE)

Arguments

address

A 1xN vector of UTF-8 addresses (if gmode='dtime', this is the origin address).

dest

If gmode is 'dtime', this is the destination address.

gmode

character string; must be either "geocode" (the default) or "dtime" (for distance requests).

privkey

character string; your Google for Work API key

clientid

character string; generally, this ID will be of the form 'gme-[company]'.

debug

logical; when TRUE, returns a complete data frame of locations and their associated URL signatures (this can be useful for debugging invalid signatures).

verbose

logical; when TRUE, displays additional progress output.

travel_mode

character string; currently, valid values include (see this page for details):

  • driving (the default): indicates standard driving directions using the road network.

  • transit: requests directions via public transit routes.

  • walking: requests walking directions via pedestrian paths & sidewalks (where available).

  • bicycling: requests bicycling directions via bicycle paths & preferred streets (currently only available in the US and some Canadian cities).

units

character string; must be either "metric" (the default) or "imperial". Specifying "metric" will return distance between origin and destination as kilometers, whereas "imperial" returns distance in miles. For geocode requests this parameter is ignorned if non-null.

language

character string; localization of the returned object. This parameter is set to "en-EN" by default, but refer to this page for an up-to-date list of Google's supported languages.

urlencode

logical; when TRUE, applies the url_encode function from the urltools package.