swiss-projection
Version:
Convert from LV03(EPSG:21781) and LV95(EPSG:2056) to WGS84(EPSG:4326)
61 lines (60 loc) • 1.79 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var isNumber = function (value) {
return !isNaN(Number(value));
};
var isPoint = function (c) {
if (!Array.isArray(c)) {
return false;
}
return isNumber(c[0]) && isNumber(c[1]);
};
var isLine = function (c) {
return Array.isArray(c) && isPoint(c[0]);
};
var isPolygon = function (c) {
return Array.isArray(c) && isLine(c[0]);
};
var isMultiPolygon = function (c) {
return Array.isArray(c) && isPolygon(c[0]);
};
exports.isCoords = function (c) {
return isPoint(c) || isLine(c) || isPolygon(c) || isMultiPolygon(c);
};
exports.convertPoint = function (converter) {
return function (point) {
return converter(point);
};
};
exports.convertLine = function (converter) {
return function (line) {
return line.map(exports.convertPoint(converter));
};
};
exports.convertPolygon = function (converter) {
return function (polygon) {
return polygon.map(exports.convertLine(converter));
};
};
exports.convertMultiPolygon = function (converter) {
return function (multipolygon) {
return multipolygon.map(exports.convertPolygon(converter));
};
};
exports.default = (function (converter) {
return function (coordinates) {
if (isPoint(coordinates)) {
return exports.convertPoint(converter)(coordinates);
}
if (isLine(coordinates)) {
return exports.convertLine(converter)(coordinates);
}
if (isPolygon(coordinates)) {
return exports.convertPolygon(converter)(coordinates);
}
if (isMultiPolygon(coordinates)) {
return exports.convertMultiPolygon(converter)(coordinates);
}
return coordinates;
};
});