kepler.gl
Version:
kepler.gl is a webgl based application to visualize large scale location data in the browser
69 lines (51 loc) • 8.49 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.createDataContainer = createDataContainer;
exports.createIndexedDataContainer = createIndexedDataContainer;
exports.getSampleData = getSampleData;
exports.DataForm = void 0;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _rowDataContainer = require("./row-data-container");
var _indexedDataContainer = require("./indexed-data-container");
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
/** @type {import('./data-container-utils').DataForm} */
var DataForm = {
ROWS_ARRAY: 'ROWS_ARRAY'
};
/** @type {import('./data-container-utils').DataContainerOptions} */
exports.DataForm = DataForm;
var defaultOptions = {
inputDataFormat: DataForm.ROWS_ARRAY
};
/** @type {typeof import('./data-container-utils').createDataContainer} */
function createDataContainer(data) {
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultOptions;
options = _objectSpread(_objectSpread({}, defaultOptions), options);
if (options.inputDataFormat === DataForm.ROWS_ARRAY) {
return new _rowDataContainer.RowDataContainer({
rows: data,
fields: options.fields
});
}
throw Error('Failed to create a data container: not implemented format');
}
/** @type {typeof import('./data-container-utils').createIndexedDataContainer} */
function createIndexedDataContainer(dataContainer, indices) {
return new _indexedDataContainer.IndexedDataContainer(dataContainer, indices);
}
/** @type {typeof import('./data-container-utils').getSampleData} */
function getSampleData(dataContainer) {
var sampleSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;
var numberOfRows = dataContainer.numRows();
var sampleStep = Math.max(Math.floor(numberOfRows / sampleSize), 1);
var indices = [];
for (var i = 0; i < numberOfRows; i += sampleStep) {
indices.push(i);
}
return createIndexedDataContainer(dataContainer, indices);
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy90YWJsZS11dGlscy9kYXRhLWNvbnRhaW5lci11dGlscy5qcyJdLCJuYW1lcyI6WyJEYXRhRm9ybSIsIlJPV1NfQVJSQVkiLCJkZWZhdWx0T3B0aW9ucyIsImlucHV0RGF0YUZvcm1hdCIsImNyZWF0ZURhdGFDb250YWluZXIiLCJkYXRhIiwib3B0aW9ucyIsIlJvd0RhdGFDb250YWluZXIiLCJyb3dzIiwiZmllbGRzIiwiRXJyb3IiLCJjcmVhdGVJbmRleGVkRGF0YUNvbnRhaW5lciIsImRhdGFDb250YWluZXIiLCJpbmRpY2VzIiwiSW5kZXhlZERhdGFDb250YWluZXIiLCJnZXRTYW1wbGVEYXRhIiwic2FtcGxlU2l6ZSIsIm51bWJlck9mUm93cyIsIm51bVJvd3MiLCJzYW1wbGVTdGVwIiwiTWF0aCIsIm1heCIsImZsb29yIiwiaSIsInB1c2giXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBb0JBOztBQUNBOzs7Ozs7QUFFQTtBQUNPLElBQU1BLFFBQVEsR0FBRztBQUN0QkMsRUFBQUEsVUFBVSxFQUFFO0FBRFUsQ0FBakI7QUFJUDs7O0FBQ0EsSUFBTUMsY0FBYyxHQUFHO0FBQ3JCQyxFQUFBQSxlQUFlLEVBQUVILFFBQVEsQ0FBQ0M7QUFETCxDQUF2QjtBQUlBOztBQUNPLFNBQVNHLG1CQUFULENBQTZCQyxJQUE3QixFQUE2RDtBQUFBLE1BQTFCQyxPQUEwQix1RUFBaEJKLGNBQWdCO0FBQ2xFSSxFQUFBQSxPQUFPLG1DQUFPSixjQUFQLEdBQTBCSSxPQUExQixDQUFQOztBQUVBLE1BQUlBLE9BQU8sQ0FBQ0gsZUFBUixLQUE0QkgsUUFBUSxDQUFDQyxVQUF6QyxFQUFxRDtBQUNuRCxXQUFPLElBQUlNLGtDQUFKLENBQXFCO0FBQUNDLE1BQUFBLElBQUksRUFBRUgsSUFBUDtBQUFhSSxNQUFBQSxNQUFNLEVBQUVILE9BQU8sQ0FBQ0c7QUFBN0IsS0FBckIsQ0FBUDtBQUNEOztBQUVELFFBQU1DLEtBQUssQ0FBQywyREFBRCxDQUFYO0FBQ0Q7QUFFRDs7O0FBQ08sU0FBU0MsMEJBQVQsQ0FBb0NDLGFBQXBDLEVBQW1EQyxPQUFuRCxFQUE0RDtBQUNqRSxTQUFPLElBQUlDLDBDQUFKLENBQXlCRixhQUF6QixFQUF3Q0MsT0FBeEMsQ0FBUDtBQUNEO0FBRUQ7OztBQUNPLFNBQVNFLGFBQVQsQ0FBdUJILGFBQXZCLEVBQXdEO0FBQUEsTUFBbEJJLFVBQWtCLHVFQUFMLEdBQUs7QUFDN0QsTUFBTUMsWUFBWSxHQUFHTCxhQUFhLENBQUNNLE9BQWQsRUFBckI7QUFDQSxNQUFNQyxVQUFVLEdBQUdDLElBQUksQ0FBQ0MsR0FBTCxDQUFTRCxJQUFJLENBQUNFLEtBQUwsQ0FBV0wsWUFBWSxHQUFHRCxVQUExQixDQUFULEVBQWdELENBQWhELENBQW5CO0FBRUEsTUFBTUgsT0FBTyxHQUFHLEVBQWhCOztBQUNBLE9BQUssSUFBSVUsQ0FBQyxHQUFHLENBQWIsRUFBZ0JBLENBQUMsR0FBR04sWUFBcEIsRUFBa0NNLENBQUMsSUFBSUosVUFBdkMsRUFBbUQ7QUFDakROLElBQUFBLE9BQU8sQ0FBQ1csSUFBUixDQUFhRCxDQUFiO0FBQ0Q7O0FBRUQsU0FBT1osMEJBQTBCLENBQUNDLGFBQUQsRUFBZ0JDLE9BQWhCLENBQWpDO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjEgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQge1Jvd0RhdGFDb250YWluZXJ9IGZyb20gJy4vcm93LWRhdGEtY29udGFpbmVyJztcbmltcG9ydCB7SW5kZXhlZERhdGFDb250YWluZXJ9IGZyb20gJy4vaW5kZXhlZC1kYXRhLWNvbnRhaW5lcic7XG5cbi8qKiBAdHlwZSB7aW1wb3J0KCcuL2RhdGEtY29udGFpbmVyLXV0aWxzJykuRGF0YUZvcm19ICovXG5leHBvcnQgY29uc3QgRGF0YUZvcm0gPSB7XG4gIFJPV1NfQVJSQVk6ICdST1dTX0FSUkFZJ1xufTtcblxuLyoqIEB0eXBlIHtpbXBvcnQoJy4vZGF0YS1jb250YWluZXItdXRpbHMnKS5EYXRhQ29udGFpbmVyT3B0aW9uc30gKi9cbmNvbnN0IGRlZmF1bHRPcHRpb25zID0ge1xuICBpbnB1dERhdGFGb3JtYXQ6IERhdGFGb3JtLlJPV1NfQVJSQVlcbn07XG5cbi8qKiBAdHlwZSB7dHlwZW9mIGltcG9ydCgnLi9kYXRhLWNvbnRhaW5lci11dGlscycpLmNyZWF0ZURhdGFDb250YWluZXJ9ICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRGF0YUNvbnRhaW5lcihkYXRhLCBvcHRpb25zID0gZGVmYXVsdE9wdGlvbnMpIHtcbiAgb3B0aW9ucyA9IHsuLi5kZWZhdWx0T3B0aW9ucywgLi4ub3B0aW9uc307XG5cbiAgaWYgKG9wdGlvbnMuaW5wdXREYXRhRm9ybWF0ID09PSBEYXRhRm9ybS5ST1dTX0FSUkFZKSB7XG4gICAgcmV0dXJuIG5ldyBSb3dEYXRhQ29udGFpbmVyKHtyb3dzOiBkYXRhLCBmaWVsZHM6IG9wdGlvbnMuZmllbGRzfSk7XG4gIH1cblxuICB0aHJvdyBFcnJvcignRmFpbGVkIHRvIGNyZWF0ZSBhIGRhdGEgY29udGFpbmVyOiBub3QgaW1wbGVtZW50ZWQgZm9ybWF0Jyk7XG59XG5cbi8qKiBAdHlwZSB7dHlwZW9mIGltcG9ydCgnLi9kYXRhLWNvbnRhaW5lci11dGlscycpLmNyZWF0ZUluZGV4ZWREYXRhQ29udGFpbmVyfSAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUluZGV4ZWREYXRhQ29udGFpbmVyKGRhdGFDb250YWluZXIsIGluZGljZXMpIHtcbiAgcmV0dXJuIG5ldyBJbmRleGVkRGF0YUNvbnRhaW5lcihkYXRhQ29udGFpbmVyLCBpbmRpY2VzKTtcbn1cblxuLyoqIEB0eXBlIHt0eXBlb2YgaW1wb3J0KCcuL2RhdGEtY29udGFpbmVyLXV0aWxzJykuZ2V0U2FtcGxlRGF0YX0gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTYW1wbGVEYXRhKGRhdGFDb250YWluZXIsIHNhbXBsZVNpemUgPSA1MDApIHtcbiAgY29uc3QgbnVtYmVyT2ZSb3dzID0gZGF0YUNvbnRhaW5lci5udW1Sb3dzKCk7XG4gIGNvbnN0IHNhbXBsZVN0ZXAgPSBNYXRoLm1heChNYXRoLmZsb29yKG51bWJlck9mUm93cyAvIHNhbXBsZVNpemUpLCAxKTtcblxuICBjb25zdCBpbmRpY2VzID0gW107XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbnVtYmVyT2ZSb3dzOyBpICs9IHNhbXBsZVN0ZXApIHtcbiAgICBpbmRpY2VzLnB1c2goaSk7XG4gIH1cblxuICByZXR1cm4gY3JlYXRlSW5kZXhlZERhdGFDb250YWluZXIoZGF0YUNvbnRhaW5lciwgaW5kaWNlcyk7XG59XG4iXX0=