"use strict";var __extends=this&&this.__extends||function(){var o=function(t,n){o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,r){e.__proto__=r}||function(e,r){for(var i in r)if(Object.prototype.hasOwnProperty.call(r,i))e[i]=r[i]};return o(t,n)};return function(t,n){if(typeof n!=="function"&&n!==null)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");o(t,n);function e(){this.constructor=t}t.prototype=n===null?Object.create(n):(e.prototype=n.prototype,new e)}}();Object.defineProperty(exports,"__esModule",{value:true});exports.Geo=exports.GeoMultiPolygon=exports.GeoMultiLineString=exports.GeoMultiPoint=exports.GeoPolygon=exports.GeoLineString=exports.GeoPoint=exports.Geometry=void 0;var Geometry=function(){function o(t,n){this.type=t;this.coordinates=n}o.prototype.toJSON=function(){return{type:this.type,coordinates:this.coordinates}};return o}();exports.Geometry=Geometry;var GeoPoint=function(o){__extends(t,o);function t(n,e){var r=o.call(this,"Point",[n,e])||this;r.longitude=n;r.latitude=e;return r}return t}(Geometry);exports.GeoPoint=GeoPoint;var GeoLineString=function(o){__extends(t,o);function t(n){var e=this;var r=n.map(function(i){return i.coordinates});e=o.call(this,"LineString",r)||this;e.points=n;return e}return t}(Geometry);exports.GeoLineString=GeoLineString;var GeoPolygon=function(o){__extends(t,o);function t(n){var e=this;var r=n.map(function(i){return i.coordinates});e=o.call(this,"Polygon",r)||this;e.lines=n;return e}return t}(Geometry);exports.GeoPolygon=GeoPolygon;var GeoMultiPoint=function(o){__extends(t,o);function t(n){var e=this;var r=n.map(function(i){return i.coordinates});e=o.call(this,"MultiPoint",r)||this;e.points=n;return e}return t}(Geometry);exports.GeoMultiPoint=GeoMultiPoint;var GeoMultiLineString=function(o){__extends(t,o);function t(n){var e=this;var r=n.map(function(i){return i.coordinates});e=o.call(this,"MultiLineString",r)||this;e.lines=n;return e}return t}(Geometry);exports.GeoMultiLineString=GeoMultiLineString;var GeoMultiPolygon=function(o){__extends(t,o);function t(n){var e=this;var r=n.map(function(i){return i.coordinates});e=o.call(this,"MultiPolygon",r)||this;e.polygons=n;return e}return t}(Geometry);exports.GeoMultiPolygon=GeoMultiPolygon;var Geo=function(){function o(){}o.prototype.Point=function(t,n){return new GeoPoint(t,n)};o.prototype.LineString=function(t){return new GeoLineString(t)};o.prototype.Polygon=function(t){return new GeoPolygon(t)};o.prototype.MultiPoint=function(t){return new GeoMultiPoint(t)};o.prototype.MultiLineString=function(t){return new GeoMultiLineString(t)};o.prototype.MultiPolygon=function(t){return new GeoMultiPolygon(t)};return o}();exports.Geo=Geo;