backendless
Version:
Backendless JavaScript SDK for Node.js and the browser
49 lines (48 loc) • 2.6 kB
JavaScript
;
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));
}