/* * Copyright 2017 Google * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: google/type/latlng.proto // This CPP symbol can be defined to use imports that match up to the framework // imports needed when using CocoaPods. #if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS) #define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 0 #endif #if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS #import #else #import "GPBProtocolBuffers.h" #endif #if GOOGLE_PROTOBUF_OBJC_VERSION < 30002 #error This file was generated by a newer version of protoc which is incompatible with your Protocol Buffer library sources. #endif #if 30002 < GOOGLE_PROTOBUF_OBJC_MIN_SUPPORTED_VERSION #error This file was generated by an older version of protoc which is incompatible with your Protocol Buffer library sources. #endif // @@protoc_insertion_point(imports) #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdeprecated-declarations" CF_EXTERN_C_BEGIN NS_ASSUME_NONNULL_BEGIN #pragma mark - GTPLatlngRoot /** * Exposes the extension registry for this file. * * The base class provides: * @code * + (GPBExtensionRegistry *)extensionRegistry; * @endcode * which is a @c GPBExtensionRegistry that includes all the extensions defined by * this file and all files that it depends on. **/ @interface GTPLatlngRoot : GPBRootObject @end #pragma mark - GTPLatLng typedef GPB_ENUM(GTPLatLng_FieldNumber) { GTPLatLng_FieldNumber_Latitude = 1, GTPLatLng_FieldNumber_Longitude = 2, }; /** * 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) **/ @interface GTPLatLng : GPBMessage /** The latitude in degrees. It must be in the range [-90.0, +90.0]. */ @property(nonatomic, readwrite) double latitude; /** The longitude in degrees. It must be in the range [-180.0, +180.0]. */ @property(nonatomic, readwrite) double longitude; @end NS_ASSUME_NONNULL_END CF_EXTERN_C_END #pragma clang diagnostic pop // @@protoc_insertion_point(global_scope)