module GoogleMapsService::Apis::Geocoding
Performs requests to the Google Maps Geocoding
API.
Public Instance Methods
Geocoding
is the process of converting addresses (like `“1600 Amphitheatre Parkway, Mountain View, CA”`) into geographic coordinates (like latitude 37.423021 and longitude -122.083739), which you can use to place markers or position the map.
@example Geocode an address
results = client.geocode('Sydney')
@example Geocode a component only
results = client.geocode(nil, components: {administrative_area: 'TX', country: 'US'})
@example Geocode an address and component
results = client.geocode('Sydney', components: {administrative_area: 'TX', country: 'US'})
@example Multiple parameters
results = client.geocode('Sydney', components: {administrative_area: 'TX', country: 'US'}, bounds: { northeast: {lat: 32.7183997, lng: -97.26864001970849}, southwest: {lat: 32.7052583, lng: -97.27133798029149} }, region: 'us')
@param [String] address The address to geocode. You must specify either this value and/or `components`. @param [Hash] components A component filter for which you wish to obtain a geocode,
for example: `{'administrative_area': 'TX','country': 'US'}`
@param [String, Hash] bounds The bounding box of the viewport within which to bias geocode
results more prominently. Accept string or hash with `northeast` and `southwest` keys.
@param [String] region The region code, specified as a ccTLD (_top-level domain_)
two-character value.
@param [String] language The language in which to return results.
@return [Array] Array of geocoding results.
# File lib/google_maps_service/apis/geocoding.rb, line 41 def geocode(address, components: nil, bounds: nil, region: nil, language: nil) params = {} params[:address] = address if address params[:components] = GoogleMapsService::Convert.components(components) if components params[:bounds] = GoogleMapsService::Convert.bounds(bounds) if bounds params[:region] = region if region params[:language] = language if language return get('/maps/api/geocode/json', params)[:results] end
Reverse geocoding is the process of converting geographic coordinates into a human-readable address.
@example Simple lat/lon pair
client.reverse_geocode({lat: 40.714224, lng: -73.961452})
@example Multiple parameters
client.reverse_geocode([40.714224, -73.961452], location_type: ['ROOFTOP', 'RANGE_INTERPOLATED'], result_type: ['street_address', 'route'], language: 'es')
@param [Hash, Array] latlng The latitude/longitude value for which you wish to obtain
the closest, human-readable address.
@param [String, Array<String>] location_type One or more location types to restrict results to. @param [String, Array<String>] result_type One or more address types to restrict results to. @param [String] language The language in which to return results.
@return [Array] Array of reverse geocoding results.
# File lib/google_maps_service/apis/geocoding.rb, line 72 def reverse_geocode(latlng, location_type: nil, result_type: nil, language: nil) params = { latlng: GoogleMapsService::Convert.latlng(latlng) } params[:result_type] = GoogleMapsService::Convert.join_list('|', result_type) if result_type params[:location_type] = GoogleMapsService::Convert.join_list('|', location_type) if location_type params[:language] = language if language return get('/maps/api/geocode/json', params)[:results] end