Class: GoogleMapsPlatform::ElevationResult

Inherits:
BaseModel
  • Object
show all
Defined in:
lib/google_maps_platform/models/elevation_result.rb

Overview

ElevationResult Model.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from BaseModel

#check_for_conflict, #process_additional_properties, #process_array, #process_basic_value, #process_hash, #to_hash, #to_json

Constructor Details

#initialize(elevation:, location:, resolution: SKIP, additional_properties: nil) ⇒ ElevationResult



51
52
53
54
55
56
57
58
59
60
# File 'lib/google_maps_platform/models/elevation_result.rb', line 51

def initialize(elevation:, location:, resolution: SKIP,
               additional_properties: nil)
  # Add additional model properties to the instance

  additional_properties = {} if additional_properties.nil?

  @elevation = elevation
  @resolution = resolution unless resolution == SKIP
  @location = location
  @additional_properties = additional_properties
end

Instance Attribute Details

#elevationFloat

The elevation of the location in meters.



14
15
16
# File 'lib/google_maps_platform/models/elevation_result.rb', line 14

def elevation
  @elevation
end

#locationLatLngLiteral

An object describing a specific location with Latitude and Longitude in decimal degrees.



28
29
30
# File 'lib/google_maps_platform/models/elevation_result.rb', line 28

def location
  @location
end

#resolutionFloat

The value indicating the maximum distance between data points from which the elevation was interpolated, in meters. This property will be missing if the resolution is not known. Note that elevation data becomes more coarse (larger resolution values) when multiple points are passed. To obtain the most accurate elevation value for a point, it should be queried independently.



23
24
25
# File 'lib/google_maps_platform/models/elevation_result.rb', line 23

def resolution
  @resolution
end

Class Method Details

.from_hash(hash) ⇒ Object

Creates an instance of the object from a hash.



63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# File 'lib/google_maps_platform/models/elevation_result.rb', line 63

def self.from_hash(hash)
  return nil unless hash

  # Extract variables from the hash.

  elevation = hash.key?('elevation') ? hash['elevation'] : nil
  location = LatLngLiteral.from_hash(hash['location']) if hash['location']
  resolution = hash.key?('resolution') ? hash['resolution'] : SKIP

  # Create a new hash for additional properties, removing known properties.

  new_hash = hash.reject { |k, _| names.value?(k) }

  additional_properties = APIHelper.get_additional_properties(
    new_hash, proc { |value| value }
  )

  # Create object from extracted values.

  ElevationResult.new(elevation: elevation,
                      location: location,
                      resolution: resolution,
                      additional_properties: additional_properties)
end

.namesObject

A mapping from model property names to API property names.



31
32
33
34
35
36
37
# File 'lib/google_maps_platform/models/elevation_result.rb', line 31

def self.names
  @_hash = {} if @_hash.nil?
  @_hash['elevation'] = 'elevation'
  @_hash['resolution'] = 'resolution'
  @_hash['location'] = 'location'
  @_hash
end

.nullablesObject

An array for nullable fields



47
48
49
# File 'lib/google_maps_platform/models/elevation_result.rb', line 47

def self.nullables
  []
end

.optionalsObject

An array for optional fields



40
41
42
43
44
# File 'lib/google_maps_platform/models/elevation_result.rb', line 40

def self.optionals
  %w[
    resolution
  ]
end

Instance Method Details

#inspectObject

Provides a debugging-friendly string with detailed object information.



93
94
95
96
97
# File 'lib/google_maps_platform/models/elevation_result.rb', line 93

def inspect
  class_name = self.class.name.split('::').last
  "<#{class_name} elevation: #{@elevation.inspect}, resolution: #{@resolution.inspect},"\
  " location: #{@location.inspect}, additional_properties: #{@additional_properties}>"
end

#to_sObject

Provides a human-readable string representation of the object.



86
87
88
89
90
# File 'lib/google_maps_platform/models/elevation_result.rb', line 86

def to_s
  class_name = self.class.name.split('::').last
  "<#{class_name} elevation: #{@elevation}, resolution: #{@resolution}, location:"\
  " #{@location}, additional_properties: #{@additional_properties}>"
end