mirror of
https://github.com/musix-org/musix-oss
synced 2025-06-17 04:26:00 +00:00
79 lines
2.5 KiB
TypeScript
79 lines
2.5 KiB
TypeScript
/*!
|
|
* 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;
|
|
}
|