UNPKG

kepler.gl.geoiq

Version:

kepler.gl is a webgl based application to visualize large scale location data in the browser

123 lines (99 loc) 12.2 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); 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 _deck = require("deck.gl"); var _scatterplotIconLayer = _interopRequireDefault(require("./scatterplot-icon-layer")); 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 _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; } } // default icon geometry is a square var DEFAULT_ICON_GEOMETRY = [1, 1, 0, 1, -1, 0, -1, -1, 0, -1, -1, 0, -1, 1, 0, 1, 1, 0]; var defaultProps = { getIconGeometry: function getIconGeometry(iconId) { return DEFAULT_ICON_GEOMETRY; }, getIcon: function getIcon(d) { return d.icon; } }; var SvgIconLayer = exports["default"] = /*#__PURE__*/function (_CompositeLayer) { (0, _inherits2["default"])(SvgIconLayer, _CompositeLayer); var _super = _createSuper(SvgIconLayer); function SvgIconLayer() { (0, _classCallCheck2["default"])(this, SvgIconLayer); return _super.apply(this, arguments); } (0, _createClass2["default"])(SvgIconLayer, [{ key: "initializeState", value: // Must be defined function initializeState() { this.state = { data: {} }; } }, { key: "updateState", value: function updateState(_ref) { var changeFlags = _ref.changeFlags; if (changeFlags.dataChanged) { this._extractSublayers(); } } }, { key: "_extractSublayers", value: function _extractSublayers() { var _this$props = this.props, data = _this$props.data, getIconGeometry = _this$props.getIconGeometry, getIcon = _this$props.getIcon; var iconLayers = data.reduce(function (accu, d) { var iconId = getIcon(d); if (iconId in accu) { accu[iconId].data.push(d); } else { var geometry = getIconGeometry(iconId) || DEFAULT_ICON_GEOMETRY; accu[iconId] = { id: iconId, geometry: geometry, data: [d] }; } return accu; }, {}); this.setState({ data: Object.values(iconLayers) }); } }, { key: "renderLayers", value: function renderLayers() { var _this = this; var layerId = this.props.id; var layers = this.state.data && this.state.data.length && this.state.data.map(function (_ref2) { var id = _ref2.id, data = _ref2.data, geometry = _ref2.geometry; return new _scatterplotIconLayer["default"](_objectSpread(_objectSpread({}, _this.props), {}, { id: "".concat(layerId, "-").concat(id), data: data, iconGeometry: geometry })); }); return layers && layers.length > 0 ? layers : null; } }]); return SvgIconLayer; }(_deck.CompositeLayer); SvgIconLayer.layerName = 'SvgIconLayer'; SvgIconLayer.defaultProps = defaultProps; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZWNrZ2wtbGF5ZXJzL3N2Zy1pY29uLWxheWVyL3N2Zy1pY29uLWxheWVyLmpzIl0sIm5hbWVzIjpbIkRFRkFVTFRfSUNPTl9HRU9NRVRSWSIsImRlZmF1bHRQcm9wcyIsImdldEljb25HZW9tZXRyeSIsImljb25JZCIsImdldEljb24iLCJkIiwiaWNvbiIsIlN2Z0ljb25MYXllciIsInN0YXRlIiwiZGF0YSIsImNoYW5nZUZsYWdzIiwiZGF0YUNoYW5nZWQiLCJfZXh0cmFjdFN1YmxheWVycyIsInByb3BzIiwiaWNvbkxheWVycyIsInJlZHVjZSIsImFjY3UiLCJwdXNoIiwiZ2VvbWV0cnkiLCJpZCIsInNldFN0YXRlIiwiT2JqZWN0IiwidmFsdWVzIiwibGF5ZXJJZCIsImxheWVycyIsImxlbmd0aCIsIm1hcCIsIlNjYXR0ZXJwbG90SWNvbkxheWVyIiwiaWNvbkdlb21ldHJ5IiwiQ29tcG9zaXRlTGF5ZXIiLCJsYXllck5hbWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW9CQTs7QUFDQTs7Ozs7Ozs7OztBQUVBO0FBQ0EsSUFBTUEscUJBQXFCLEdBQUcsQ0FDNUIsQ0FENEIsRUFFNUIsQ0FGNEIsRUFHNUIsQ0FINEIsRUFJNUIsQ0FKNEIsRUFLNUIsQ0FBQyxDQUwyQixFQU01QixDQU40QixFQU81QixDQUFDLENBUDJCLEVBUTVCLENBQUMsQ0FSMkIsRUFTNUIsQ0FUNEIsRUFVNUIsQ0FBQyxDQVYyQixFQVc1QixDQUFDLENBWDJCLEVBWTVCLENBWjRCLEVBYTVCLENBQUMsQ0FiMkIsRUFjNUIsQ0FkNEIsRUFlNUIsQ0FmNEIsRUFnQjVCLENBaEI0QixFQWlCNUIsQ0FqQjRCLEVBa0I1QixDQWxCNEIsQ0FBOUI7QUFvQkEsSUFBTUMsWUFBWSxHQUFHO0FBQ25CQyxFQUFBQSxlQUFlLEVBQUUseUJBQUFDLE1BQU07QUFBQSxXQUFJSCxxQkFBSjtBQUFBLEdBREo7QUFFbkJJLEVBQUFBLE9BQU8sRUFBRSxpQkFBQUMsQ0FBQztBQUFBLFdBQUlBLENBQUMsQ0FBQ0MsSUFBTjtBQUFBO0FBRlMsQ0FBckI7O0lBS3FCQyxZOzs7Ozs7Ozs7Ozs7V0FDbkI7QUFDQSwrQkFBa0I7QUFDaEIsV0FBS0MsS0FBTCxHQUFhO0FBQ1hDLFFBQUFBLElBQUksRUFBRTtBQURLLE9BQWI7QUFHRDs7O1dBRUQsMkJBQTJCO0FBQUEsVUFBZEMsV0FBYyxRQUFkQSxXQUFjOztBQUN6QixVQUFJQSxXQUFXLENBQUNDLFdBQWhCLEVBQTZCO0FBQzNCLGFBQUtDLGlCQUFMO0FBQ0Q7QUFDRjs7O1dBRUQsNkJBQW9CO0FBQ2xCLHdCQUF5QyxLQUFLQyxLQUE5QztBQUFBLFVBQU9KLElBQVAsZUFBT0EsSUFBUDtBQUFBLFVBQWFQLGVBQWIsZUFBYUEsZUFBYjtBQUFBLFVBQThCRSxPQUE5QixlQUE4QkEsT0FBOUI7QUFFQSxVQUFNVSxVQUFVLEdBQUdMLElBQUksQ0FBQ00sTUFBTCxDQUFZLFVBQUNDLElBQUQsRUFBT1gsQ0FBUCxFQUFhO0FBQzFDLFlBQU1GLE1BQU0sR0FBR0MsT0FBTyxDQUFDQyxDQUFELENBQXRCOztBQUVBLFlBQUlGLE1BQU0sSUFBSWEsSUFBZCxFQUFvQjtBQUNsQkEsVUFBQUEsSUFBSSxDQUFDYixNQUFELENBQUosQ0FBYU0sSUFBYixDQUFrQlEsSUFBbEIsQ0FBdUJaLENBQXZCO0FBQ0QsU0FGRCxNQUVPO0FBQ0wsY0FBTWEsUUFBUSxHQUFHaEIsZUFBZSxDQUFDQyxNQUFELENBQWYsSUFBMkJILHFCQUE1QztBQUNBZ0IsVUFBQUEsSUFBSSxDQUFDYixNQUFELENBQUosR0FBZTtBQUNiZ0IsWUFBQUEsRUFBRSxFQUFFaEIsTUFEUztBQUViZSxZQUFBQSxRQUFRLEVBQVJBLFFBRmE7QUFHYlQsWUFBQUEsSUFBSSxFQUFFLENBQUNKLENBQUQ7QUFITyxXQUFmO0FBS0Q7O0FBRUQsZUFBT1csSUFBUDtBQUNELE9BZmtCLEVBZWhCLEVBZmdCLENBQW5CO0FBaUJBLFdBQUtJLFFBQUwsQ0FBYztBQUNaWCxRQUFBQSxJQUFJLEVBQUVZLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjUixVQUFkO0FBRE0sT0FBZDtBQUdEOzs7V0FFRCx3QkFBZTtBQUFBOztBQUNiLFVBQU1TLE9BQU8sR0FBRyxLQUFLVixLQUFMLENBQVdNLEVBQTNCO0FBRUEsVUFBTUssTUFBTSxHQUNWLEtBQUtoQixLQUFMLENBQVdDLElBQVgsSUFDQSxLQUFLRCxLQUFMLENBQVdDLElBQVgsQ0FBZ0JnQixNQURoQixJQUVBLEtBQUtqQixLQUFMLENBQVdDLElBQVgsQ0FBZ0JpQixHQUFoQixDQUNFO0FBQUEsWUFBRVAsRUFBRixTQUFFQSxFQUFGO0FBQUEsWUFBTVYsSUFBTixTQUFNQSxJQUFOO0FBQUEsWUFBWVMsUUFBWixTQUFZQSxRQUFaO0FBQUEsZUFDRSxJQUFJUyxnQ0FBSixpQ0FDSyxLQUFJLENBQUNkLEtBRFY7QUFFRU0sVUFBQUEsRUFBRSxZQUFLSSxPQUFMLGNBQWdCSixFQUFoQixDQUZKO0FBR0VWLFVBQUFBLElBQUksRUFBSkEsSUFIRjtBQUlFbUIsVUFBQUEsWUFBWSxFQUFFVjtBQUpoQixXQURGO0FBQUEsT0FERixDQUhGO0FBYUEsYUFBT00sTUFBTSxJQUFJQSxNQUFNLENBQUNDLE1BQVAsR0FBZ0IsQ0FBMUIsR0FBOEJELE1BQTlCLEdBQXVDLElBQTlDO0FBQ0Q7OztFQXhEdUNLLG9COztBQTJEMUN0QixZQUFZLENBQUN1QixTQUFiLEdBQXlCLGNBQXpCO0FBQ0F2QixZQUFZLENBQUNOLFlBQWIsR0FBNEJBLFlBQTVCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIzIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IHtDb21wb3NpdGVMYXllcn0gZnJvbSAnZGVjay5nbCc7XG5pbXBvcnQgU2NhdHRlcnBsb3RJY29uTGF5ZXIgZnJvbSAnLi9zY2F0dGVycGxvdC1pY29uLWxheWVyJztcblxuLy8gZGVmYXVsdCBpY29uIGdlb21ldHJ5IGlzIGEgc3F1YXJlXG5jb25zdCBERUZBVUxUX0lDT05fR0VPTUVUUlkgPSBbXG4gIDEsXG4gIDEsXG4gIDAsXG4gIDEsXG4gIC0xLFxuICAwLFxuICAtMSxcbiAgLTEsXG4gIDAsXG4gIC0xLFxuICAtMSxcbiAgMCxcbiAgLTEsXG4gIDEsXG4gIDAsXG4gIDEsXG4gIDEsXG4gIDBcbl07XG5jb25zdCBkZWZhdWx0UHJvcHMgPSB7XG4gIGdldEljb25HZW9tZXRyeTogaWNvbklkID0+IERFRkFVTFRfSUNPTl9HRU9NRVRSWSxcbiAgZ2V0SWNvbjogZCA9PiBkLmljb25cbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFN2Z0ljb25MYXllciBleHRlbmRzIENvbXBvc2l0ZUxheWVyIHtcbiAgLy8gTXVzdCBiZSBkZWZpbmVkXG4gIGluaXRpYWxpemVTdGF0ZSgpIHtcbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgZGF0YToge31cbiAgICB9O1xuICB9XG5cbiAgdXBkYXRlU3RhdGUoe2NoYW5nZUZsYWdzfSkge1xuICAgIGlmIChjaGFuZ2VGbGFncy5kYXRhQ2hhbmdlZCkge1xuICAgICAgdGhpcy5fZXh0cmFjdFN1YmxheWVycygpO1xuICAgIH1cbiAgfVxuXG4gIF9leHRyYWN0U3VibGF5ZXJzKCkge1xuICAgIGNvbnN0IHtkYXRhLCBnZXRJY29uR2VvbWV0cnksIGdldEljb259ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IGljb25MYXllcnMgPSBkYXRhLnJlZHVjZSgoYWNjdSwgZCkgPT4ge1xuICAgICAgY29uc3QgaWNvbklkID0gZ2V0SWNvbihkKTtcblxuICAgICAgaWYgKGljb25JZCBpbiBhY2N1KSB7XG4gICAgICAgIGFjY3VbaWNvbklkXS5kYXRhLnB1c2goZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBnZW9tZXRyeSA9IGdldEljb25HZW9tZXRyeShpY29uSWQpIHx8IERFRkFVTFRfSUNPTl9HRU9NRVRSWTtcbiAgICAgICAgYWNjdVtpY29uSWRdID0ge1xuICAgICAgICAgIGlkOiBpY29uSWQsXG4gICAgICAgICAgZ2VvbWV0cnksXG4gICAgICAgICAgZGF0YTogW2RdXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBhY2N1O1xuICAgIH0sIHt9KTtcblxuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgZGF0YTogT2JqZWN0LnZhbHVlcyhpY29uTGF5ZXJzKVxuICAgIH0pO1xuICB9XG5cbiAgcmVuZGVyTGF5ZXJzKCkge1xuICAgIGNvbnN0IGxheWVySWQgPSB0aGlzLnByb3BzLmlkO1xuXG4gICAgY29uc3QgbGF5ZXJzID1cbiAgICAgIHRoaXMuc3RhdGUuZGF0YSAmJlxuICAgICAgdGhpcy5zdGF0ZS5kYXRhLmxlbmd0aCAmJlxuICAgICAgdGhpcy5zdGF0ZS5kYXRhLm1hcChcbiAgICAgICAgKHtpZCwgZGF0YSwgZ2VvbWV0cnl9KSA9PlxuICAgICAgICAgIG5ldyBTY2F0dGVycGxvdEljb25MYXllcih7XG4gICAgICAgICAgICAuLi50aGlzLnByb3BzLFxuICAgICAgICAgICAgaWQ6IGAke2xheWVySWR9LSR7aWR9YCxcbiAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICBpY29uR2VvbWV0cnk6IGdlb21ldHJ5XG4gICAgICAgICAgfSlcbiAgICAgICk7XG5cbiAgICByZXR1cm4gbGF5ZXJzICYmIGxheWVycy5sZW5ndGggPiAwID8gbGF5ZXJzIDogbnVsbDtcbiAgfVxufVxuXG5TdmdJY29uTGF5ZXIubGF5ZXJOYW1lID0gJ1N2Z0ljb25MYXllcic7XG5TdmdJY29uTGF5ZXIuZGVmYXVsdFByb3BzID0gZGVmYXVsdFByb3BzO1xuIl19