UNPKG

backendless

Version:

Backendless JavaScript SDK for Node.js and the browser

116 lines (111 loc) 4.36 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _geometry = _interopRequireDefault(require("./geometry")); var _linestring = _interopRequireDefault(require("./linestring")); var _constants = require("./constants"); function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } var GEOJSON_TYPE = _constants.GeoTypes.POLYGON; var WKT_TYPE = GEOJSON_TYPE.toUpperCase(); var Polygon = /*#__PURE__*/function (_Geometry) { (0, _inherits2["default"])(Polygon, _Geometry); var _super = _createSuper(Polygon); function Polygon(boundary, holes, srs) { var _this; (0, _classCallCheck2["default"])(this, Polygon); _this = _super.call(this, srs); _this.setBoundary(boundary); _this.setHoles(holes); return _this; } (0, _createClass2["default"])(Polygon, [{ key: "getBoundary", value: function getBoundary() { return this.boundary; } }, { key: "setBoundary", value: function setBoundary(boundary) { if (!boundary) { throw new Error('The \'boundary\' argument is required.'); } if (!(boundary instanceof _linestring["default"])) { boundary = new _linestring["default"](boundary, this.srs); } this.boundary = boundary; return this; } }, { key: "getHoles", value: function getHoles() { return this.holes; } }, { key: "setHoles", value: function setHoles(holes) { this.holes = holes || []; return this; } /** * @override */ }, { key: "getGeojsonType", value: function getGeojsonType() { return GEOJSON_TYPE; } /** * @override */ }, { key: "getWktType", value: function getWktType() { return WKT_TYPE; } /** * @override */ }, { key: "jsonCoordinatePairs", value: function jsonCoordinatePairs() { var outerBoundaries = []; this.getBoundary().getPoints().forEach(function (point) { outerBoundaries.push([point.getX(), point.getY()]); }); var innerBoundaries = this.holes.map(function (hole) { return hole.getPoints().map(function (point) { return [point.getX(), point.getY()]; }); }); return [outerBoundaries].concat((0, _toConsumableArray2["default"])(innerBoundaries)); } /** * @override */ }, { key: "wktCoordinatePairs", value: function wktCoordinatePairs() { var wktPairsListCollection = [this.getBoundary().wktCoordinatePairs()]; this.holes.forEach(function (hole) { return wktPairsListCollection.push(hole.wktCoordinatePairs()); }); var wrapParens = function wrapParens(str) { return '(' + str + ')'; }; return wktPairsListCollection.map(wrapParens).join(','); } }]); return Polygon; }(_geometry["default"]); var _default = Polygon; exports["default"] = _default;