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
JavaScript
;
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