12345678910111213141516171819202122232425262728293031323334353637383940 |
- import { Validate } from '../validate';
- import { SYMBOL_GEO_POINT } from '../helper/symbol';
- import { isArray } from '../utils/type';
- export class Point {
- constructor(longitude, latitude) {
- 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() {
- return {
- type: 'Point',
- coordinates: [
- this.longitude,
- this.latitude,
- ],
- };
- }
- toReadableString() {
- return `[${this.longitude},${this.latitude}]`;
- }
- static validate(point) {
- return point.type === 'Point' &&
- isArray(point.coordinates) &&
- Validate.isGeopoint('longitude', point.coordinates[0]) &&
- Validate.isGeopoint('latitude', point.coordinates[1]);
- }
- get _internalType() {
- return SYMBOL_GEO_POINT;
- }
- }
|