import { Validate } from "../validate"; import { SYMBOL_GEO_POINT } from '../helper/symbol' /** * 地址位置 * * @author haroldhu */ export class Point { /** * 纬度 * [-90, 90] */ readonly latitude: number; /** * 经度 * [-180, 180] */ readonly longitude: number; /** * 初始化 * * @param latitude - 纬度 [-90, 90] * @param longitude - 经度 [-180, 180] */ constructor(longitude: number, latitude: number) { Validate.isGeopoint("longitude", longitude); Validate.isGeopoint("latitude", latitude); this.longitude = longitude; this.latitude = latitude; } parse(key) { return { [key]: { type: 'Point', coordinates: [this.longitude, this.latitude] } } } toJSON(): object { return { type: 'Point', coordinates: [ this.longitude, this.latitude, ], } } get _internalType() { return SYMBOL_GEO_POINT } }