kepler.gl
Version:
kepler.gl is a webgl based application to visualize large scale location data in the browser
68 lines (67 loc) • 8.31 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _core = require("@deck.gl/core");
var _filterShaderModule = _interopRequireDefault(require("./filter-shader-module"));
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } // SPDX-License-Identifier: MIT
// Copyright contributors to the kepler.gl project
var VALUE_FILTERED = 1;
var defaultProps = {
getFiltered: {
type: 'accessor',
value: VALUE_FILTERED
}
};
/**
* FilterArrowExtension - a deck.gl extension to filter arrow layer
*
* A simple extension to filter arrow layer based on the result of CPU filteredIndex,
* so we can avoid filtering on the raw Arrow table and recreating geometry attributes.
* Specifically, an attribute `filtered` is added to the layer to indicate whether the feature has been Filtered
* the shader module is modified to discard the feature if filtered value is 0
* the accessor getFiltered is used to get the value of `filtered` based on the value `filteredIndex` in Arrowlayer
*/
var FilterArrowExtension = exports["default"] = /*#__PURE__*/function (_LayerExtension) {
function FilterArrowExtension() {
(0, _classCallCheck2["default"])(this, FilterArrowExtension);
return _callSuper(this, FilterArrowExtension, arguments);
}
(0, _inherits2["default"])(FilterArrowExtension, _LayerExtension);
return (0, _createClass2["default"])(FilterArrowExtension, [{
key: "getShaders",
value: function getShaders() {
return {
modules: [_filterShaderModule["default"]],
defines: {}
};
}
}, {
key: "initializeState",
value: function initializeState() {
var attributeManager = this.getAttributeManager();
if (attributeManager) {
attributeManager.add({
filtered: {
size: 1,
type: 'float32',
stepMode: 'dynamic',
accessor: 'getFiltered'
}
});
}
}
}]);
}(_core.LayerExtension);
(0, _defineProperty2["default"])(FilterArrowExtension, "defaultProps", defaultProps);
(0, _defineProperty2["default"])(FilterArrowExtension, "extensionName", 'FilterArrowExtension');
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29yZSIsInJlcXVpcmUiLCJfZmlsdGVyU2hhZGVyTW9kdWxlIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9jYWxsU3VwZXIiLCJ0IiwibyIsImUiLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsImFwcGx5IiwiQm9vbGVhbiIsInByb3RvdHlwZSIsInZhbHVlT2YiLCJjYWxsIiwiVkFMVUVfRklMVEVSRUQiLCJkZWZhdWx0UHJvcHMiLCJnZXRGaWx0ZXJlZCIsInR5cGUiLCJ2YWx1ZSIsIkZpbHRlckFycm93RXh0ZW5zaW9uIiwiZXhwb3J0cyIsIl9MYXllckV4dGVuc2lvbiIsIl9jbGFzc0NhbGxDaGVjazIiLCJhcmd1bWVudHMiLCJfaW5oZXJpdHMyIiwiX2NyZWF0ZUNsYXNzMiIsImtleSIsImdldFNoYWRlcnMiLCJtb2R1bGVzIiwic2hhZGVyTW9kdWxlIiwiZGVmaW5lcyIsImluaXRpYWxpemVTdGF0ZSIsImF0dHJpYnV0ZU1hbmFnZXIiLCJnZXRBdHRyaWJ1dGVNYW5hZ2VyIiwiYWRkIiwiZmlsdGVyZWQiLCJzaXplIiwic3RlcE1vZGUiLCJhY2Nlc3NvciIsIkxheWVyRXh0ZW5zaW9uIiwiX2RlZmluZVByb3BlcnR5MiJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kZWNrZ2wtZXh0ZW5zaW9ucy9maWx0ZXItYXJyb3ctbGF5ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtMYXllciwgTGF5ZXJFeHRlbnNpb259IGZyb20gJ0BkZWNrLmdsL2NvcmUnO1xuXG5pbXBvcnQgc2hhZGVyTW9kdWxlIGZyb20gJy4vZmlsdGVyLXNoYWRlci1tb2R1bGUnO1xuXG5jb25zdCBWQUxVRV9GSUxURVJFRCA9IDE7XG5cbmNvbnN0IGRlZmF1bHRQcm9wcyA9IHtcbiAgZ2V0RmlsdGVyZWQ6IHt0eXBlOiAnYWNjZXNzb3InLCB2YWx1ZTogVkFMVUVfRklMVEVSRUR9XG59O1xuXG5leHBvcnQgdHlwZSBGaWx0ZXJBcnJvd0V4dGVuc2lvblByb3BzID0ge1xuICBnZXRGaWx0ZXJlZD86ICgpID0+IG51bWJlcjtcbn07XG5cbi8qKlxuICogRmlsdGVyQXJyb3dFeHRlbnNpb24gLSBhIGRlY2suZ2wgZXh0ZW5zaW9uIHRvIGZpbHRlciBhcnJvdyBsYXllclxuICpcbiAqIEEgc2ltcGxlIGV4dGVuc2lvbiB0byBmaWx0ZXIgYXJyb3cgbGF5ZXIgYmFzZWQgb24gdGhlIHJlc3VsdCBvZiBDUFUgZmlsdGVyZWRJbmRleCxcbiAqIHNvIHdlIGNhbiBhdm9pZCBmaWx0ZXJpbmcgb24gdGhlIHJhdyBBcnJvdyB0YWJsZSBhbmQgcmVjcmVhdGluZyBnZW9tZXRyeSBhdHRyaWJ1dGVzLlxuICogU3BlY2lmaWNhbGx5LCBhbiBhdHRyaWJ1dGUgYGZpbHRlcmVkYCBpcyBhZGRlZCB0byB0aGUgbGF5ZXIgdG8gaW5kaWNhdGUgd2hldGhlciB0aGUgZmVhdHVyZSBoYXMgYmVlbiBGaWx0ZXJlZFxuICogdGhlIHNoYWRlciBtb2R1bGUgaXMgbW9kaWZpZWQgdG8gZGlzY2FyZCB0aGUgZmVhdHVyZSBpZiBmaWx0ZXJlZCB2YWx1ZSBpcyAwXG4gKiB0aGUgYWNjZXNzb3IgZ2V0RmlsdGVyZWQgaXMgdXNlZCB0byBnZXQgdGhlIHZhbHVlIG9mIGBmaWx0ZXJlZGAgYmFzZWQgb24gdGhlIHZhbHVlIGBmaWx0ZXJlZEluZGV4YCBpbiBBcnJvd2xheWVyXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZpbHRlckFycm93RXh0ZW5zaW9uIGV4dGVuZHMgTGF5ZXJFeHRlbnNpb24ge1xuICBzdGF0aWMgZGVmYXVsdFByb3BzID0gZGVmYXVsdFByb3BzO1xuICBzdGF0aWMgZXh0ZW5zaW9uTmFtZSA9ICdGaWx0ZXJBcnJvd0V4dGVuc2lvbic7XG5cbiAgZ2V0U2hhZGVycygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbW9kdWxlczogW3NoYWRlck1vZHVsZV0sXG4gICAgICBkZWZpbmVzOiB7fVxuICAgIH07XG4gIH1cblxuICBpbml0aWFsaXplU3RhdGUodGhpczogTGF5ZXI8RmlsdGVyQXJyb3dFeHRlbnNpb25Qcm9wcz4pIHtcbiAgICBjb25zdCBhdHRyaWJ1dGVNYW5hZ2VyID0gdGhpcy5nZXRBdHRyaWJ1dGVNYW5hZ2VyKCk7XG4gICAgaWYgKGF0dHJpYnV0ZU1hbmFnZXIpIHtcbiAgICAgIGF0dHJpYnV0ZU1hbmFnZXIuYWRkKHtcbiAgICAgICAgZmlsdGVyZWQ6IHtcbiAgICAgICAgICBzaXplOiAxLFxuICAgICAgICAgIHR5cGU6ICdmbG9hdDMyJyxcbiAgICAgICAgICBzdGVwTW9kZTogJ2R5bmFtaWMnLFxuICAgICAgICAgIGFjY2Vzc29yOiAnZ2V0RmlsdGVyZWQnXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsS0FBQSxHQUFBQyxPQUFBO0FBRUEsSUFBQUMsbUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUFrRCxTQUFBRyxXQUFBQyxDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxXQUFBRCxDQUFBLE9BQUFFLGdCQUFBLGFBQUFGLENBQUEsT0FBQUcsMkJBQUEsYUFBQUosQ0FBQSxFQUFBSyx5QkFBQSxLQUFBQyxPQUFBLENBQUFDLFNBQUEsQ0FBQU4sQ0FBQSxFQUFBQyxDQUFBLFlBQUFDLGdCQUFBLGFBQUFILENBQUEsRUFBQVEsV0FBQSxJQUFBUCxDQUFBLENBQUFRLEtBQUEsQ0FBQVQsQ0FBQSxFQUFBRSxDQUFBO0FBQUEsU0FBQUcsMEJBQUEsY0FBQUwsQ0FBQSxJQUFBVSxPQUFBLENBQUFDLFNBQUEsQ0FBQUMsT0FBQSxDQUFBQyxJQUFBLENBQUFQLE9BQUEsQ0FBQUMsU0FBQSxDQUFBRyxPQUFBLGlDQUFBVixDQUFBLGFBQUFLLHlCQUFBLFlBQUFBLDBCQUFBLGFBQUFMLENBQUEsVUFMbEQ7QUFDQTtBQU1BLElBQU1jLGNBQWMsR0FBRyxDQUFDO0FBRXhCLElBQU1DLFlBQVksR0FBRztFQUNuQkMsV0FBVyxFQUFFO0lBQUNDLElBQUksRUFBRSxVQUFVO0lBQUVDLEtBQUssRUFBRUo7RUFBYztBQUN2RCxDQUFDO0FBTUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBUkEsSUFTcUJLLG9CQUFvQixHQUFBQyxPQUFBLHFDQUFBQyxlQUFBO0VBQUEsU0FBQUYscUJBQUE7SUFBQSxJQUFBRyxnQkFBQSxtQkFBQUgsb0JBQUE7SUFBQSxPQUFBcEIsVUFBQSxPQUFBb0Isb0JBQUEsRUFBQUksU0FBQTtFQUFBO0VBQUEsSUFBQUMsVUFBQSxhQUFBTCxvQkFBQSxFQUFBRSxlQUFBO0VBQUEsV0FBQUksYUFBQSxhQUFBTixvQkFBQTtJQUFBTyxHQUFBO0lBQUFSLEtBQUEsRUFJdkMsU0FBQVMsVUFBVUEsQ0FBQSxFQUFHO01BQ1gsT0FBTztRQUNMQyxPQUFPLEVBQUUsQ0FBQ0MsOEJBQVksQ0FBQztRQUN2QkMsT0FBTyxFQUFFLENBQUM7TUFDWixDQUFDO0lBQ0g7RUFBQztJQUFBSixHQUFBO0lBQUFSLEtBQUEsRUFFRCxTQUFBYSxlQUFlQSxDQUFBLEVBQXlDO01BQ3RELElBQU1DLGdCQUFnQixHQUFHLElBQUksQ0FBQ0MsbUJBQW1CLENBQUMsQ0FBQztNQUNuRCxJQUFJRCxnQkFBZ0IsRUFBRTtRQUNwQkEsZ0JBQWdCLENBQUNFLEdBQUcsQ0FBQztVQUNuQkMsUUFBUSxFQUFFO1lBQ1JDLElBQUksRUFBRSxDQUFDO1lBQ1BuQixJQUFJLEVBQUUsU0FBUztZQUNmb0IsUUFBUSxFQUFFLFNBQVM7WUFDbkJDLFFBQVEsRUFBRTtVQUNaO1FBQ0YsQ0FBQyxDQUFDO01BQ0o7SUFDRjtFQUFDO0FBQUEsRUF2QitDQyxvQkFBYztBQUFBLElBQUFDLGdCQUFBLGFBQTNDckIsb0JBQW9CLGtCQUNqQkosWUFBWTtBQUFBLElBQUF5QixnQkFBQSxhQURmckIsb0JBQW9CLG1CQUVoQixzQkFBc0IiLCJpZ25vcmVMaXN0IjpbXX0=