Documentation ¶
Index ¶
- type LatLng
- func (*LatLng) Descriptor() ([]byte, []int)
- func (m *LatLng) GetLatitude() float64
- func (m *LatLng) GetLongitude() float64
- func (*LatLng) ProtoMessage()
- func (m *LatLng) Reset()
- func (m *LatLng) String() string
- func (m *LatLng) XXX_DiscardUnknown()
- func (m *LatLng) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *LatLng) XXX_Merge(src proto.Message)
- func (m *LatLng) XXX_Size() int
- func (m *LatLng) XXX_Unmarshal(b []byte) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type LatLng ¶
type LatLng struct { // The latitude in degrees. It must be in the range [-90.0, +90.0]. Latitude float64 `protobuf:"fixed64,1,opt,name=latitude,proto3" json:"latitude,omitempty"` // The longitude in degrees. It must be in the range [-180.0, +180.0]. Longitude float64 `protobuf:"fixed64,2,opt,name=longitude,proto3" json:"longitude,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
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 <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84 standard</a>. 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)
func (*LatLng) Descriptor ¶
func (*LatLng) GetLatitude ¶
func (*LatLng) GetLongitude ¶
func (*LatLng) ProtoMessage ¶
func (*LatLng) ProtoMessage()
func (*LatLng) XXX_DiscardUnknown ¶
func (m *LatLng) XXX_DiscardUnknown()
func (*LatLng) XXX_Marshal ¶
func (*LatLng) XXX_Unmarshal ¶
Click to show internal directories.
Click to hide internal directories.