kepler.gl.geoiq
Version:
kepler.gl is a webgl based application to visualize large scale location data in the browser
93 lines (70 loc) • 10.9 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 _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _deck = require("deck.gl");
var _shaderUtils = require("../layer-utils/shader-utils");
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function addBrushingVsShader(vs) {
return (0, _shaderUtils.editShader)(vs, 'scatterplot brushing vs', 'outerRadiusPixels += stroked * lineWidthPixels / 2.0;', 'outerRadiusPixels = brushing_getRadius(instancePositions, outerRadiusPixels + stroked * lineWidthPixels / 2.0);');
}
var defaultProps = _objectSpread(_objectSpread({}, _deck.ScatterplotLayer.defaultProps), {}, {
enableBrushing: true,
// brush radius in meters
brushRadius: 100000,
mousePosition: [0, 0],
outsideBrushRadius: 0
});
var ScatterplotBrushingLayer = exports["default"] = /*#__PURE__*/function (_ScatterplotLayer) {
(0, _inherits2["default"])(ScatterplotBrushingLayer, _ScatterplotLayer);
var _super = _createSuper(ScatterplotBrushingLayer);
function ScatterplotBrushingLayer() {
(0, _classCallCheck2["default"])(this, ScatterplotBrushingLayer);
return _super.apply(this, arguments);
}
(0, _createClass2["default"])(ScatterplotBrushingLayer, [{
key: "getShaders",
value: function getShaders() {
var shaders = (0, _get2["default"])((0, _getPrototypeOf2["default"])(ScatterplotBrushingLayer.prototype), "getShaders", this).call(this);
return {
vs: addBrushingVsShader(shaders.vs),
fs: shaders.fs,
modules: shaders.modules.concat(['brushing'])
};
}
}, {
key: "draw",
value: function draw(opts) {
var uniforms = opts.uniforms;
var _this$props = this.props,
brushRadius = _this$props.brushRadius,
enableBrushing = _this$props.enableBrushing,
mousePosition = _this$props.mousePosition,
outsideBrushRadius = _this$props.outsideBrushRadius; // add uniforms
(0, _get2["default"])((0, _getPrototypeOf2["default"])(ScatterplotBrushingLayer.prototype), "draw", this).call(this, _objectSpread(_objectSpread({}, opts), {}, {
uniforms: _objectSpread(_objectSpread({}, uniforms), {}, {
brushing_uBrushRadius: brushRadius,
brushing_uOutsideBrushRadius: outsideBrushRadius,
brushing_uMousePosition: mousePosition ? new Float32Array(this.unproject(mousePosition)) : defaultProps.mousePosition,
brushing_uEnableBrushing: enableBrushing ? 1 : 0
})
}));
}
}]);
return ScatterplotBrushingLayer;
}(_deck.ScatterplotLayer);
ScatterplotBrushingLayer.layerName = 'ScatterplotBrushingLayer';
ScatterplotBrushingLayer.defaultProps = defaultProps;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZWNrZ2wtbGF5ZXJzL3NjYXR0ZXJwbG90LWJydXNoaW5nLWxheWVyL3NjYXR0ZXJwbG90LWJydXNoaW5nLWxheWVyLmpzIl0sIm5hbWVzIjpbImFkZEJydXNoaW5nVnNTaGFkZXIiLCJ2cyIsImRlZmF1bHRQcm9wcyIsIlNjYXR0ZXJwbG90TGF5ZXIiLCJlbmFibGVCcnVzaGluZyIsImJydXNoUmFkaXVzIiwibW91c2VQb3NpdGlvbiIsIm91dHNpZGVCcnVzaFJhZGl1cyIsIlNjYXR0ZXJwbG90QnJ1c2hpbmdMYXllciIsInNoYWRlcnMiLCJmcyIsIm1vZHVsZXMiLCJjb25jYXQiLCJvcHRzIiwidW5pZm9ybXMiLCJwcm9wcyIsImJydXNoaW5nX3VCcnVzaFJhZGl1cyIsImJydXNoaW5nX3VPdXRzaWRlQnJ1c2hSYWRpdXMiLCJicnVzaGluZ191TW91c2VQb3NpdGlvbiIsIkZsb2F0MzJBcnJheSIsInVucHJvamVjdCIsImJydXNoaW5nX3VFbmFibGVCcnVzaGluZyIsImxheWVyTmFtZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvQkE7O0FBQ0E7Ozs7Ozs7Ozs7QUFFQSxTQUFTQSxtQkFBVCxDQUE2QkMsRUFBN0IsRUFBaUM7QUFDL0IsU0FBTyw2QkFDTEEsRUFESyxFQUVMLHlCQUZLLEVBR0wsdURBSEssRUFJTCxpSEFKSyxDQUFQO0FBTUQ7O0FBRUQsSUFBTUMsWUFBWSxtQ0FDYkMsdUJBQWlCRCxZQURKO0FBRWhCRSxFQUFBQSxjQUFjLEVBQUUsSUFGQTtBQUdoQjtBQUNBQyxFQUFBQSxXQUFXLEVBQUUsTUFKRztBQUtoQkMsRUFBQUEsYUFBYSxFQUFFLENBQUMsQ0FBRCxFQUFJLENBQUosQ0FMQztBQU1oQkMsRUFBQUEsa0JBQWtCLEVBQUU7QUFOSixFQUFsQjs7SUFTcUJDLHdCOzs7Ozs7Ozs7Ozs7V0FFbkIsc0JBQWE7QUFDWCxVQUFNQyxPQUFPLDZIQUFiO0FBQ0EsYUFBTztBQUNMUixRQUFBQSxFQUFFLEVBQUVELG1CQUFtQixDQUFDUyxPQUFPLENBQUNSLEVBQVQsQ0FEbEI7QUFFTFMsUUFBQUEsRUFBRSxFQUFFRCxPQUFPLENBQUNDLEVBRlA7QUFHTEMsUUFBQUEsT0FBTyxFQUFFRixPQUFPLENBQUNFLE9BQVIsQ0FBZ0JDLE1BQWhCLENBQXVCLENBQUMsVUFBRCxDQUF2QjtBQUhKLE9BQVA7QUFLRDs7O1dBQ0QsY0FBS0MsSUFBTCxFQUFXO0FBQ1QsVUFBT0MsUUFBUCxHQUFtQkQsSUFBbkIsQ0FBT0MsUUFBUDtBQUNBLHdCQUtJLEtBQUtDLEtBTFQ7QUFBQSxVQUNFVixXQURGLGVBQ0VBLFdBREY7QUFBQSxVQUVFRCxjQUZGLGVBRUVBLGNBRkY7QUFBQSxVQUdFRSxhQUhGLGVBR0VBLGFBSEY7QUFBQSxVQUlFQyxrQkFKRixlQUlFQSxrQkFKRixDQUZTLENBU1Q7O0FBQ0EsMkpBQ0tNLElBREw7QUFFRUMsUUFBQUEsUUFBUSxrQ0FDSEEsUUFERztBQUVORSxVQUFBQSxxQkFBcUIsRUFBRVgsV0FGakI7QUFHTlksVUFBQUEsNEJBQTRCLEVBQUVWLGtCQUh4QjtBQUlOVyxVQUFBQSx1QkFBdUIsRUFBRVosYUFBYSxHQUNsQyxJQUFJYSxZQUFKLENBQWlCLEtBQUtDLFNBQUwsQ0FBZWQsYUFBZixDQUFqQixDQURrQyxHQUVsQ0osWUFBWSxDQUFDSSxhQU5YO0FBT05lLFVBQUFBLHdCQUF3QixFQUFFakIsY0FBYyxHQUFHLENBQUgsR0FBTztBQVB6QztBQUZWO0FBWUQ7OztFQWhDbURELHNCOztBQW1DdERLLHdCQUF3QixDQUFDYyxTQUF6QixHQUFxQywwQkFBckM7QUFDQWQsd0JBQXdCLENBQUNOLFlBQXpCLEdBQXdDQSxZQUF4QyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMyBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCB7U2NhdHRlcnBsb3RMYXllcn0gZnJvbSAnZGVjay5nbCc7XG5pbXBvcnQge2VkaXRTaGFkZXJ9IGZyb20gJ2RlY2tnbC1sYXllcnMvbGF5ZXItdXRpbHMvc2hhZGVyLXV0aWxzJztcblxuZnVuY3Rpb24gYWRkQnJ1c2hpbmdWc1NoYWRlcih2cykge1xuICByZXR1cm4gZWRpdFNoYWRlcihcbiAgICB2cyxcbiAgICAnc2NhdHRlcnBsb3QgYnJ1c2hpbmcgdnMnLFxuICAgICdvdXRlclJhZGl1c1BpeGVscyArPSBzdHJva2VkICogbGluZVdpZHRoUGl4ZWxzIC8gMi4wOycsXG4gICAgJ291dGVyUmFkaXVzUGl4ZWxzID0gYnJ1c2hpbmdfZ2V0UmFkaXVzKGluc3RhbmNlUG9zaXRpb25zLCBvdXRlclJhZGl1c1BpeGVscyArIHN0cm9rZWQgKiBsaW5lV2lkdGhQaXhlbHMgLyAyLjApOydcbiAgKTtcbn1cblxuY29uc3QgZGVmYXVsdFByb3BzID0ge1xuICAuLi5TY2F0dGVycGxvdExheWVyLmRlZmF1bHRQcm9wcyxcbiAgZW5hYmxlQnJ1c2hpbmc6IHRydWUsXG4gIC8vIGJydXNoIHJhZGl1cyBpbiBtZXRlcnNcbiAgYnJ1c2hSYWRpdXM6IDEwMDAwMCxcbiAgbW91c2VQb3NpdGlvbjogWzAsIDBdLFxuICBvdXRzaWRlQnJ1c2hSYWRpdXM6IDBcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNjYXR0ZXJwbG90QnJ1c2hpbmdMYXllciBleHRlbmRzIFNjYXR0ZXJwbG90TGF5ZXIge1xuXG4gIGdldFNoYWRlcnMoKSB7XG4gICAgY29uc3Qgc2hhZGVycyA9IHN1cGVyLmdldFNoYWRlcnMoKTtcbiAgICByZXR1cm4ge1xuICAgICAgdnM6IGFkZEJydXNoaW5nVnNTaGFkZXIoc2hhZGVycy52cyksXG4gICAgICBmczogc2hhZGVycy5mcyxcbiAgICAgIG1vZHVsZXM6IHNoYWRlcnMubW9kdWxlcy5jb25jYXQoWydicnVzaGluZyddKVxuICAgIH07XG4gIH1cbiAgZHJhdyhvcHRzKSB7XG4gICAgY29uc3Qge3VuaWZvcm1zfSA9IG9wdHM7XG4gICAgY29uc3Qge1xuICAgICAgYnJ1c2hSYWRpdXMsXG4gICAgICBlbmFibGVCcnVzaGluZyxcbiAgICAgIG1vdXNlUG9zaXRpb24sXG4gICAgICBvdXRzaWRlQnJ1c2hSYWRpdXNcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIC8vIGFkZCB1bmlmb3Jtc1xuICAgIHN1cGVyLmRyYXcoe1xuICAgICAgLi4ub3B0cyxcbiAgICAgIHVuaWZvcm1zOiB7XG4gICAgICAgIC4uLnVuaWZvcm1zLFxuICAgICAgICBicnVzaGluZ191QnJ1c2hSYWRpdXM6IGJydXNoUmFkaXVzLFxuICAgICAgICBicnVzaGluZ191T3V0c2lkZUJydXNoUmFkaXVzOiBvdXRzaWRlQnJ1c2hSYWRpdXMsXG4gICAgICAgIGJydXNoaW5nX3VNb3VzZVBvc2l0aW9uOiBtb3VzZVBvc2l0aW9uXG4gICAgICAgICAgPyBuZXcgRmxvYXQzMkFycmF5KHRoaXMudW5wcm9qZWN0KG1vdXNlUG9zaXRpb24pKVxuICAgICAgICAgIDogZGVmYXVsdFByb3BzLm1vdXNlUG9zaXRpb24sXG4gICAgICAgIGJydXNoaW5nX3VFbmFibGVCcnVzaGluZzogZW5hYmxlQnJ1c2hpbmcgPyAxIDogMFxuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG5cblNjYXR0ZXJwbG90QnJ1c2hpbmdMYXllci5sYXllck5hbWUgPSAnU2NhdHRlcnBsb3RCcnVzaGluZ0xheWVyJztcblNjYXR0ZXJwbG90QnJ1c2hpbmdMYXllci5kZWZhdWx0UHJvcHMgPSBkZWZhdWx0UHJvcHM7XG4iXX0=