Class: Google::Apis::ProximitybeaconV1beta1::LatLng

Inherits:
Object
  • Object
show all
Includes:
Core::Hashable, Core::JsonObjectSupport
Defined in:
generated/google/apis/proximitybeacon_v1beta1/classes.rb,
generated/google/apis/proximitybeacon_v1beta1/representations.rb,
generated/google/apis/proximitybeacon_v1beta1/representations.rb

Overview

An object representing a latitude/longitude pair. This is expressed as a pair of doubles representing degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. Example of normalization code in Python: def NormalizeLongitude(longitude): """Wraps decimal degrees longitude to [-180.0, 180.0].""" q, r = divmod(longitude, 360.0) if r > 180.0 or (r == 180.0 and q <= -1.0): return r - 360.0 return r def NormalizeLatLng(latitude, longitude): """Wraps decimal degrees latitude and longitude to [-90.0, 90.0] and [-180.0, 180.0], respectively.""" r = latitude % 360.0 if r <= 90.0: return r, NormalizeLongitude(longitude) elif r >= 270.0: return r - 360, NormalizeLongitude(longitude) else: return 180 - r, NormalizeLongitude(longitude + 180.0) assert 180.0 == NormalizeLongitude(180.0) assert -180.0 == NormalizeLongitude(-180.0) assert -179.0 == NormalizeLongitude(181.0) assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0) assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0) assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0) assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0) assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0) assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0) assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0) assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0) assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0) assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Core::JsonObjectSupport

#to_json

Methods included from Core::Hashable

process_value, #to_h

Constructor Details

#initialize(**args) ⇒ LatLng

Returns a new instance of LatLng



691
692
693
# File 'generated/google/apis/proximitybeacon_v1beta1/classes.rb', line 691

def initialize(**args)
   update!(**args)
end

Instance Attribute Details

#latitudeFloat

The latitude in degrees. It must be in the range [-90.0, +90.0]. Corresponds to the JSON property latitude

Returns:

  • (Float)


684
685
686
# File 'generated/google/apis/proximitybeacon_v1beta1/classes.rb', line 684

def latitude
  @latitude
end

#longitudeFloat

The longitude in degrees. It must be in the range [-180.0, +180.0]. Corresponds to the JSON property longitude

Returns:

  • (Float)


689
690
691
# File 'generated/google/apis/proximitybeacon_v1beta1/classes.rb', line 689

def longitude
  @longitude
end

Instance Method Details

#update!(**args) ⇒ Object

Update properties of this object



696
697
698
699
# File 'generated/google/apis/proximitybeacon_v1beta1/classes.rb', line 696

def update!(**args)
  @latitude = args[:latitude] if args.key?(:latitude)
  @longitude = args[:longitude] if args.key?(:longitude)
end