UNPKG

backendless

Version:

Backendless JavaScript SDK for Node.js and the browser

49 lines (48 loc) 2.6 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.GEO_CLASSES = void 0; exports["default"] = geoConstructor; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _toArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toArray")); var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _point = _interopRequireDefault(require("./point")); var _linestring = _interopRequireDefault(require("./linestring")); var _polygon = _interopRequireDefault(require("./polygon")); var _constants = require("./constants"); var _spatialReferenceSystem = _interopRequireDefault(require("./spatial-reference-system")); var _Constructors; var GEO_CLASSES = ['com.backendless.persistence.Polygon', 'com.backendless.persistence.LineString', 'com.backendless.persistence.Point', 'com.backendless.persistence.Geometry']; exports.GEO_CLASSES = GEO_CLASSES; var pointConstructor = function pointConstructor(coordinates, srs) { var _coordinates = (0, _slicedToArray2["default"])(coordinates, 2), x = _coordinates[0], y = _coordinates[1]; return new _point["default"](srs).setX(x).setY(y); }; var lineStringConstructor = function lineStringConstructor(coordinates, srs) { var points = coordinates.map(function (coordsPair) { return pointConstructor(coordsPair, srs); }); return new _linestring["default"](points, srs); }; var polygonConstructor = function polygonConstructor(coordinates, srs) { var lineStrings = coordinates.map(function (lineString) { return lineStringConstructor(lineString, srs); }); var _lineStrings = (0, _toArray2["default"])(lineStrings), boundary = _lineStrings[0], holes = _lineStrings.slice(1); return new _polygon["default"](boundary, holes, srs); }; var Constructors = (_Constructors = {}, (0, _defineProperty2["default"])(_Constructors, _constants.GeoTypes.POINT, pointConstructor), (0, _defineProperty2["default"])(_Constructors, _constants.GeoTypes.LINE_STRING, lineStringConstructor), (0, _defineProperty2["default"])(_Constructors, _constants.GeoTypes.POLYGON, polygonConstructor), _Constructors); function geoConstructor(geoObject, srs) { var constructor = Constructors[geoObject.type]; srs = srs || _spatialReferenceSystem["default"].valueBySRSId(geoObject.srsId); if (constructor) { return constructor(geoObject.coordinates, srs); } throw new Error("There is no constructor for ".concat(geoObject.type)); }