UNPKG

kepler.gl

Version:

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

104 lines (103 loc) 15.1 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 _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _core = require("@deck.gl/core"); 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 _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 // 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() { return DEFAULT_ICON_GEOMETRY; }, getIcon: function getIcon(d) { return d.icon; } }; var SvgIconLayer = exports["default"] = /*#__PURE__*/function (_CompositeLayer) { function SvgIconLayer() { (0, _classCallCheck2["default"])(this, SvgIconLayer); return _callSuper(this, SvgIconLayer, arguments); } (0, _inherits2["default"])(SvgIconLayer, _CompositeLayer); return (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, rawData = _this$props.data, getIconGeometry = _this$props.getIconGeometry, getIcon = _this$props.getIcon; var data = rawData; var iconLayers = {}; for (var i = 0; i < data.length; i++) { var iconId = getIcon(data[i]); iconLayers[iconId] = iconLayers[iconId] || { id: iconId, geometry: getIconGeometry(iconId) || DEFAULT_ICON_GEOMETRY, data: [] }; iconLayers[iconId].data.push(data[i]); } this.setState({ data: Object.values(iconLayers) }); } }, { key: "_updateAutoHighlight", value: function _updateAutoHighlight(info) { var _info$sourceLayer; info === null || info === void 0 || (_info$sourceLayer = info.sourceLayer) === null || _info$sourceLayer === void 0 || _info$sourceLayer.updateAutoHighlight(info); } }, { key: "renderLayers", value: function renderLayers() { var _this = this; var layerId = this.props.id; var data = this.state.data; var layers = data && data.length && 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; } }]); }(_core.CompositeLayer); SvgIconLayer.layerName = 'SvgIconLayer'; SvgIconLayer.defaultProps = defaultProps; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29yZSIsInJlcXVpcmUiLCJfc2NhdHRlcnBsb3RJY29uTGF5ZXIiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0Iiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfY2FsbFN1cGVyIiwiX2dldFByb3RvdHlwZU9mMiIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMiIsIl9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJSZWZsZWN0IiwiY29uc3RydWN0IiwiY29uc3RydWN0b3IiLCJCb29sZWFuIiwicHJvdG90eXBlIiwidmFsdWVPZiIsImNhbGwiLCJERUZBVUxUX0lDT05fR0VPTUVUUlkiLCJkZWZhdWx0UHJvcHMiLCJnZXRJY29uR2VvbWV0cnkiLCJnZXRJY29uIiwiZCIsImljb24iLCJTdmdJY29uTGF5ZXIiLCJleHBvcnRzIiwiX0NvbXBvc2l0ZUxheWVyIiwiX2NsYXNzQ2FsbENoZWNrMiIsIl9pbmhlcml0czIiLCJfY3JlYXRlQ2xhc3MyIiwia2V5IiwidmFsdWUiLCJpbml0aWFsaXplU3RhdGUiLCJzdGF0ZSIsImRhdGEiLCJ1cGRhdGVTdGF0ZSIsIl9yZWYiLCJjaGFuZ2VGbGFncyIsImRhdGFDaGFuZ2VkIiwiX2V4dHJhY3RTdWJsYXllcnMiLCJfdGhpcyRwcm9wcyIsInByb3BzIiwicmF3RGF0YSIsImljb25MYXllcnMiLCJpIiwiaWNvbklkIiwiaWQiLCJnZW9tZXRyeSIsInNldFN0YXRlIiwidmFsdWVzIiwiX3VwZGF0ZUF1dG9IaWdobGlnaHQiLCJpbmZvIiwiX2luZm8kc291cmNlTGF5ZXIiLCJzb3VyY2VMYXllciIsInVwZGF0ZUF1dG9IaWdobGlnaHQiLCJyZW5kZXJMYXllcnMiLCJfdGhpcyIsImxheWVySWQiLCJsYXllcnMiLCJtYXAiLCJfcmVmMiIsIlNjYXR0ZXJwbG90SWNvbkxheWVyIiwiY29uY2F0IiwiaWNvbkdlb21ldHJ5IiwiQ29tcG9zaXRlTGF5ZXIiLCJsYXllck5hbWUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc3ZnLWljb24tbGF5ZXIvc3ZnLWljb24tbGF5ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtDb21wb3NpdGVMYXllciwgQ29tcG9zaXRlTGF5ZXJQcm9wcywgTGF5ZXIsIFBvc2l0aW9ufSBmcm9tICdAZGVjay5nbC9jb3JlJztcblxuaW1wb3J0IHtSR0JDb2xvciwgUkdCQUNvbG9yfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCBTY2F0dGVycGxvdEljb25MYXllciBmcm9tICcuL3NjYXR0ZXJwbG90LWljb24tbGF5ZXInO1xuXG4vLyBkZWZhdWx0IGljb24gZ2VvbWV0cnkgaXMgYSBzcXVhcmVcbmNvbnN0IERFRkFVTFRfSUNPTl9HRU9NRVRSWSA9IFsxLCAxLCAwLCAxLCAtMSwgMCwgLTEsIC0xLCAwLCAtMSwgLTEsIDAsIC0xLCAxLCAwLCAxLCAxLCAwXTtcblxuaW50ZXJmYWNlIFN2Z0ljb25EYXRhIHtcbiAgaWQ6IHN0cmluZztcbiAgZGF0YTogdW5rbm93bltdO1xuICBnZW9tZXRyeTogbnVtYmVyW107XG59XG5cbmNvbnN0IGRlZmF1bHRQcm9wcyA9IHtcbiAgZ2V0SWNvbkdlb21ldHJ5OiAoKSA9PiBERUZBVUxUX0lDT05fR0VPTUVUUlksXG4gIGdldEljb246IChkOiB7aWNvbjogc3RyaW5nfSkgPT4gZC5pY29uXG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFN2Z0ljb25MYXllclByb3BzIGV4dGVuZHMgQ29tcG9zaXRlTGF5ZXJQcm9wcyB7XG4gIGdldEljb25HZW9tZXRyeTogKGk6IHN0cmluZykgPT4gbnVtYmVyW107XG4gIGdldEljb246IChkOiB7aWNvbjogc3RyaW5nfSkgPT4gc3RyaW5nO1xuICBnZXRQb3NpdGlvbjogKGQ6IGFueSkgPT4gUG9zaXRpb247XG4gIGdldFJhZGl1czogKChkOiBhbnkpID0+IG51bWJlcikgfCBudW1iZXI7XG4gIGdldEZpbGxDb2xvcjogUkdCQ29sb3IgfCBSR0JBQ29sb3I7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFN2Z0ljb25MYXllciBleHRlbmRzIENvbXBvc2l0ZUxheWVyPFN2Z0ljb25MYXllclByb3BzPiB7XG4gIC8vIE11c3QgYmUgZGVmaW5lZFxuICBpbml0aWFsaXplU3RhdGUoKSB7XG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIGRhdGE6IHt9XG4gICAgfTtcbiAgfVxuXG4gIHVwZGF0ZVN0YXRlKHtjaGFuZ2VGbGFnc30pIHtcbiAgICBpZiAoY2hhbmdlRmxhZ3MuZGF0YUNoYW5nZWQpIHtcbiAgICAgIHRoaXMuX2V4dHJhY3RTdWJsYXllcnMoKTtcbiAgICB9XG4gIH1cblxuICBfZXh0cmFjdFN1YmxheWVycygpIHtcbiAgICBjb25zdCB7ZGF0YTogcmF3RGF0YSwgZ2V0SWNvbkdlb21ldHJ5LCBnZXRJY29ufSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgZGF0YSA9IHJhd0RhdGEgYXMge2ljb246IHN0cmluZ31bXTtcblxuICAgIGNvbnN0IGljb25MYXllcnM6IFJlY29yZDxzdHJpbmcsIFN2Z0ljb25EYXRhPiA9IHt9O1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgaWNvbklkID0gZ2V0SWNvbihkYXRhW2ldKTtcbiAgICAgIGljb25MYXllcnNbaWNvbklkXSA9IGljb25MYXllcnNbaWNvbklkXSB8fCB7XG4gICAgICAgIGlkOiBpY29uSWQsXG4gICAgICAgIGdlb21ldHJ5OiBnZXRJY29uR2VvbWV0cnkoaWNvbklkKSB8fCBERUZBVUxUX0lDT05fR0VPTUVUUlksXG4gICAgICAgIGRhdGE6IFtdXG4gICAgICB9O1xuICAgICAgaWNvbkxheWVyc1tpY29uSWRdLmRhdGEucHVzaChkYXRhW2ldKTtcbiAgICB9XG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICBkYXRhOiBPYmplY3QudmFsdWVzKGljb25MYXllcnMpXG4gICAgfSk7XG4gIH1cblxuICBfdXBkYXRlQXV0b0hpZ2hsaWdodChpbmZvKSB7XG4gICAgaW5mbz8uc291cmNlTGF5ZXI/LnVwZGF0ZUF1dG9IaWdobGlnaHQoaW5mbyk7XG4gIH1cblxuICByZW5kZXJMYXllcnMoKTogTGF5ZXJbXSB8IG51bGwge1xuICAgIGNvbnN0IGxheWVySWQgPSB0aGlzLnByb3BzLmlkO1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLnN0YXRlLmRhdGEgYXMgU3ZnSWNvbkRhdGFbXTtcblxuICAgIGNvbnN0IGxheWVycyA9XG4gICAgICBkYXRhICYmXG4gICAgICBkYXRhLmxlbmd0aCAmJlxuICAgICAgZGF0YS5tYXAoXG4gICAgICAgICh7aWQsIGRhdGEsIGdlb21ldHJ5fSkgPT5cbiAgICAgICAgICBuZXcgU2NhdHRlcnBsb3RJY29uTGF5ZXIoe1xuICAgICAgICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICAgICAgICAgIGlkOiBgJHtsYXllcklkfS0ke2lkfWAsXG4gICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgaWNvbkdlb21ldHJ5OiBnZW9tZXRyeVxuICAgICAgICAgIH0pXG4gICAgICApO1xuXG4gICAgcmV0dXJuIGxheWVycyAmJiBsYXllcnMubGVuZ3RoID4gMCA/IGxheWVycyA6IG51bGw7XG4gIH1cbn1cblxuU3ZnSWNvbkxheWVyLmxheWVyTmFtZSA9ICdTdmdJY29uTGF5ZXInO1xuU3ZnSWNv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