Class: Google::Apis::ProximitybeaconV1beta1::LatLng
- Inherits:
-
Object
- Object
- Google::Apis::ProximitybeaconV1beta1::LatLng
- 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) The code in logs/storage/validator/logs_validator_traits.cc treats this type as if it were annotated as ST_LOCATION.
Instance Attribute Summary collapse
-
#latitude ⇒ Float
The latitude in degrees.
-
#longitude ⇒ Float
The longitude in degrees.
Instance Method Summary collapse
-
#initialize(**args) ⇒ LatLng
constructor
A new instance of LatLng.
-
#update!(**args) ⇒ Object
Update properties of this object.
Methods included from Core::JsonObjectSupport
Methods included from Core::Hashable
Constructor Details
#initialize(**args) ⇒ LatLng
Returns a new instance of LatLng
605 606 607 |
# File 'generated/google/apis/proximitybeacon_v1beta1/classes.rb', line 605 def initialize(**args) update!(**args) end |
Instance Attribute Details
#latitude ⇒ Float
The latitude in degrees. It must be in the range [-90.0, +90.0].
Corresponds to the JSON property latitude
603 604 605 |
# File 'generated/google/apis/proximitybeacon_v1beta1/classes.rb', line 603 def latitude @latitude end |
#longitude ⇒ Float
The longitude in degrees. It must be in the range [-180.0, +180.0].
Corresponds to the JSON property longitude
598 599 600 |
# File 'generated/google/apis/proximitybeacon_v1beta1/classes.rb', line 598 def longitude @longitude end |
Instance Method Details
#update!(**args) ⇒ Object
Update properties of this object
610 611 612 613 |
# File 'generated/google/apis/proximitybeacon_v1beta1/classes.rb', line 610 def update!(**args) @longitude = args[:longitude] if args.key?(:longitude) @latitude = args[:latitude] if args.key?(:latitude) end |