/*! * Copyright 2018 Google Inc. All Rights Reserved. * * 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. */ import { google } from '../protos/firestore_v1_proto_api'; import { Serializable } from './serializer'; import api = google.firestore.v1; /** * An immutable object representing a geographic location in Firestore. The * location is represented as a latitude/longitude pair. * * @class */ export declare class GeoPoint implements Serializable { private readonly _latitude; private readonly _longitude; /** * Creates a [GeoPoint]{@link GeoPoint}. * * @param {number} latitude The latitude as a number between -90 and 90. * @param {number} longitude The longitude as a number between -180 and 180. * * @example * let data = { * google: new Firestore.GeoPoint(37.422, 122.084) * }; * * firestore.doc('col/doc').set(data).then(() => { * console.log(`Location is ${data.google.latitude}, ` + * `${data.google.longitude}`); * }); */ constructor(latitude: number, longitude: number); /** * The latitude as a number between -90 and 90. * * @type {number} * @name GeoPoint#latitude * @readonly */ readonly latitude: number; /** * The longitude as a number between -180 and 180. * * @type {number} * @name GeoPoint#longitude * @readonly */ readonly longitude: number; /** * Returns true if this `GeoPoint` is equal to the provided value. * * @param {*} other The value to compare against. * @return {boolean} true if this `GeoPoint` is equal to the provided value. */ isEqual(other: GeoPoint): boolean; /** * Converts the GeoPoint to a google.type.LatLng proto. * @private */ toProto(): api.IValue; /** * Converts a google.type.LatLng proto to its GeoPoint representation. * @private */ static fromProto(proto: google.type.ILatLng): GeoPoint; }