UNPKG

kepler.gl.geoiq

Version:

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

143 lines (120 loc) 15.9 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 _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); 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 _arcLayer = _interopRequireDefault(require("../arc-layer/arc-layer")); var _lineLayer = _interopRequireDefault(require("../../deckgl-layers/line-layer/line-layer")); var _lineLayerIcon = _interopRequireDefault(require("./line-layer-icon")); 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; } } var LineLayer = exports["default"] = /*#__PURE__*/function (_ArcLayer) { (0, _inherits2["default"])(LineLayer, _ArcLayer); var _super = _createSuper(LineLayer); function LineLayer() { (0, _classCallCheck2["default"])(this, LineLayer); return _super.apply(this, arguments); } (0, _createClass2["default"])(LineLayer, [{ key: "type", get: function get() { return 'line'; } }, { key: "layerIcon", get: function get() { return _lineLayerIcon["default"]; } }, { key: "renderLayer", value: function renderLayer(_ref) { var data = _ref.data, idx = _ref.idx, layerInteraction = _ref.layerInteraction, objectHovered = _ref.objectHovered, mapState = _ref.mapState, interactionConfig = _ref.interactionConfig; var brush = interactionConfig.brush; var colorUpdateTriggers = { color: this.config.color, colorField: this.config.colorField, colorRange: this.config.visConfig.colorRange, colorScale: this.config.colorScale, targetColor: this.config.visConfig.targetColor }; var interaction = { // auto highlighting pickable: true, autoHighlight: !brush.enabled, highlightColor: this.config.highlightColor, // brushing brushRadius: brush.config.size * 1000, brushSource: true, brushTarget: true, enableBrushing: brush.enabled }; return [// base layer new _lineLayer["default"](_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, layerInteraction), data), interaction), {}, { getColor: data.getSourceColor, id: this.id, idx: idx, opacity: this.config.visConfig.opacity, strokeScale: this.config.visConfig.thickness, // parameters parameters: { depthTest: mapState.dragRotate }, updateTriggers: { getWidth: { sizeField: this.config.sizeField, sizeRange: this.config.visConfig.sizeRange }, getColor: colorUpdateTriggers, getTargetColor: colorUpdateTriggers } }))].concat((0, _toConsumableArray2["default"])(this.isLayerHovered(objectHovered) ? [new _lineLayer["default"]({ id: "".concat(this.id, "-hovered"), data: [objectHovered.object], strokeScale: this.config.visConfig.thickness, getColor: this.config.highlightColor, getTargetColor: this.config.highlightColor, getWidth: data.getWidth, pickable: false })] : [])); } }], [{ key: "findDefaultLayerProps", value: function findDefaultLayerProps(_ref2) { var _ref2$fieldPairs = _ref2.fieldPairs, fieldPairs = _ref2$fieldPairs === void 0 ? [] : _ref2$fieldPairs; if (fieldPairs.length < 2) { return { props: [] }; } var props = {}; // connect the first two point layer with arc props.columns = { lat0: fieldPairs[0].pair.lat, lng0: fieldPairs[0].pair.lng, lat1: fieldPairs[1].pair.lat, lng1: fieldPairs[1].pair.lng }; props.label = "".concat(fieldPairs[0].defaultName, " -> ").concat(fieldPairs[1].defaultName, " line"); return { props: [props] }; } }]); return LineLayer; }(_arcLayer["default"]); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYXllcnMvbGluZS1sYXllci9saW5lLWxheWVyLmpzIl0sIm5hbWVzIjpbIkxpbmVMYXllciIsIkxpbmVMYXllckljb24iLCJkYXRhIiwiaWR4IiwibGF5ZXJJbnRlcmFjdGlvbiIsIm9iamVjdEhvdmVyZWQiLCJtYXBTdGF0ZSIsImludGVyYWN0aW9uQ29uZmlnIiwiYnJ1c2giLCJjb2xvclVwZGF0ZVRyaWdnZXJzIiwiY29sb3IiLCJjb25maWciLCJjb2xvckZpZWxkIiwiY29sb3JSYW5nZSIsInZpc0NvbmZpZyIsImNvbG9yU2NhbGUiLCJ0YXJnZXRDb2xvciIsImludGVyYWN0aW9uIiwicGlja2FibGUiLCJhdXRvSGlnaGxpZ2h0IiwiZW5hYmxlZCIsImhpZ2hsaWdodENvbG9yIiwiYnJ1c2hSYWRpdXMiLCJzaXplIiwiYnJ1c2hTb3VyY2UiLCJicnVzaFRhcmdldCIsImVuYWJsZUJydXNoaW5nIiwiRGVja0dMTGluZUxheWVyIiwiZ2V0Q29sb3IiLCJnZXRTb3VyY2VDb2xvciIsImlkIiwib3BhY2l0eSIsInN0cm9rZVNjYWxlIiwidGhpY2tuZXNzIiwicGFyYW1ldGVycyIsImRlcHRoVGVzdCIsImRyYWdSb3RhdGUiLCJ1cGRhdGVUcmlnZ2VycyIsImdldFdpZHRoIiwic2l6ZUZpZWxkIiwic2l6ZVJhbmdlIiwiZ2V0VGFyZ2V0Q29sb3IiLCJpc0xheWVySG92ZXJlZCIsIm9iamVjdCIsImZpZWxkUGFpcnMiLCJsZW5ndGgiLCJwcm9wcyIsImNvbHVtbnMiLCJsYXQwIiwicGFpciIsImxhdCIsImxuZzAiLCJsbmciLCJsYXQxIiwibG5nMSIsImxhYmVsIiwiZGVmYXVsdE5hbWUiLCJBcmNMYXllciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvQkE7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7SUFFcUJBLFM7Ozs7Ozs7Ozs7OztTQUNuQixlQUFXO0FBQ1QsYUFBTyxNQUFQO0FBQ0Q7OztTQUVELGVBQWdC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T0FBcEIsQ0FERixDQURBLEdBWUEsRUFuQ047QUFxQ0Q7OztXQXhGRCxzQ0FBZ0Q7QUFBQSxtQ0FBbEIwQixVQUFrQjtBQUFBLFVBQWxCQSxVQUFrQixpQ0FBTCxFQUFLOztBQUM5QyxVQUFJQSxVQUFVLENBQUNDLE1BQVgsR0FBb0IsQ0FBeEIsRUFBMkI7QUFDekIsZUFBTztBQUFDQyxVQUFBQSxLQUFLLEVBQUU7QUFBUixTQUFQO0FBQ0Q7O0FBQ0QsVUFBTUEsS0FBSyxHQUFHLEVBQWQsQ0FKOEMsQ0FNOUM7O0FBQ0FBLE1BQUFBLEtBQUssQ0FBQ0MsT0FBTixHQUFnQjtBQUNkQyxRQUFBQSxJQUFJLEVBQUVKLFVBQVUsQ0FBQyxDQUFELENBQVYsQ0FBY0ssSUFBZCxDQUFtQkMsR0FEWDtBQUVkQyxRQUFBQSxJQUFJLEVBQUVQLFVBQVUsQ0FBQyxDQUFELENBQVYsQ0FBY0ssSUFBZCxDQUFtQkcsR0FGWDtBQUdkQyxRQUFBQSxJQUFJLEVBQUVULFVBQVUsQ0FBQyxDQUFELENBQVYsQ0FBY0ssSUFBZCxDQUFtQkMsR0FIWDtBQUlkSSxRQUFBQSxJQUFJLEVBQUVWLFVBQVUsQ0FBQyxDQUFELENBQVYsQ0FBY0ssSUFBZCxDQUFtQkc7QUFKWCxPQUFoQjtBQU1BTixNQUFBQSxLQUFLLENBQUNTLEtBQU4sYUFBaUJYLFVBQVUsQ0FBQyxDQUFELENBQVYsQ0FBY1ksV0FBL0IsaUJBQ0VaLFVBQVUsQ0FBQyxDQUFELENBQVYsQ0FBY1ksV0FEaEI7QUFJQSxhQUFPO0FBQUNWLFFBQUFBLEtBQUssRUFBRSxDQUFDQSxLQUFEO0FBQVIsT0FBUDtBQUNEOzs7RUEzQm9DVyxvQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMyBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCBBcmNMYXllciBmcm9tICcuLi9hcmMtbGF5ZXIvYXJjLWxheWVyJztcbmltcG9ydCBEZWNrR0xMaW5lTGF5ZXIgZnJvbSAnZGVja2dsLWxheWVycy9saW5lLWxheWVyL2xpbmUtbGF5ZXInO1xuaW1wb3J0IExpbmVMYXllckljb24gZnJvbSAnLi9saW5lLWxheWVyLWljb24nO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBMaW5lTGF5ZXIgZXh0ZW5kcyBBcmNMYXllciB7XG4gIGdldCB0eXBlKCkge1xuICAgIHJldHVybiAnbGluZSc7XG4gIH1cblxuICBnZXQgbGF5ZXJJY29uKCkge1xuICAgIHJldHVybiBMaW5lTGF5ZXJJY29uO1xuICB9XG5cbiAgc3RhdGljIGZpbmREZWZhdWx0TGF5ZXJQcm9wcyh7ZmllbGRQYWlycyA9IFtdfSkge1xuICAgIGlmIChmaWVsZFBhaXJzLmxlbmd0aCA8IDIpIHtcbiAgICAgIHJldHVybiB7cHJvcHM6IFtdfTtcbiAgICB9XG4gICAgY29uc3QgcHJvcHMgPSB7fTtcblxuICAgIC8vIGNvbm5lY3QgdGhlIGZpcnN0IHR3byBwb2ludCBsYXllciB3aXRoIGFyY1xuICAgIHByb3BzLmNvbHVtbnMgPSB7XG4gICAgICBsYXQwOiBmaWVsZFBhaXJzWzBdLnBhaXIubGF0LFxuICAgICAgbG5nMDogZmllbGRQYWlyc1swXS5wYWlyLmxuZyxcbiAgICAgIGxhdDE6IGZpZWxkUGFpcnNbMV0ucGFpci5sYXQsXG4gICAgICBsbmcxOiBmaWVsZFBhaXJzWzFdLnBhaXIubG5nXG4gICAgfTtcbiAgICBwcm9wcy5sYWJlbCA9IGAke2ZpZWxkUGFpcnNbMF0uZGVmYXVsdE5hbWV9IC0+ICR7XG4gICAgICBmaWVsZFBhaXJzWzFdLmRlZmF1bHROYW1lXG4gICAgfSBsaW5lYDtcblxuICAgIHJldHVybiB7cHJvcHM6IFtwcm9wc119O1xuICB9XG5cbiAgcmVuZGVyTGF5ZXIoe1xuICAgIGRhdGEsXG4gICAgaWR4LFxuICAgIGxheWVySW50ZXJhY3Rpb24sXG4gICAgb2JqZWN0SG92ZXJlZCxcbiAgICBtYXBTdGF0ZSxcbiAgICBpbnRlcmFjdGlvbkNvbmZpZ1xuICB9KSB7XG4gICAgY29uc3Qge2JydXNofSA9IGludGVyYWN0aW9uQ29uZmlnO1xuXG4gICAgY29uc3QgY29sb3JVcGRhdGVUcmlnZ2VycyA9IHtcbiAgICAgIGNvbG9yOiB0aGlzLmNvbmZpZy5jb2xvcixcbiAgICAgIGNvbG9yRmllbGQ6IHRoaXMuY29uZmlnLmNvbG9yRmllbGQsXG4gICAgICBjb2xvclJhbmdlOiB0aGlzLmNvbmZpZy52aXNDb25maWcuY29sb3JSYW5nZSxcbiAgICAgIGNvbG9yU2NhbGU6IHRoaXMuY29uZmlnLmNvbG9yU2NhbGUsXG4gICAgICB0YXJnZXRDb2xvcjogdGhpcy5jb25maWcudmlzQ29uZmlnLnRhcmdldENvbG9yXG4gICAgfTtcblxuICAgIGNvbnN0IGludGVyYWN0aW9uID0ge1xuICAgICAgLy8gYXV0byBoaWdobGlnaHRpbmdcbiAgICAgIHBpY2thYmxlOiB0cnVlLFxuICAgICAgYXV0b0hpZ2hsaWdodDogIWJydXNoLmVuYWJsZWQsXG4gICAgICBoaWdobGlnaHRDb2xvcjogdGhpcy5jb25maWcuaGlnaGxpZ2h0Q29sb3IsXG5cbiAgICAgIC8vIGJydXNoaW5nXG4gICAgICBicnVzaFJhZGl1czogYnJ1c2guY29uZmlnLnNpemUgKiAxMDAwLFxuICAgICAgYnJ1c2hTb3VyY2U6IHRydWUsXG4gICAgICBicnVzaFRhcmdldDogdHJ1ZSxcbiAgICAgIGVuYWJsZUJydXNoaW5nOiBicnVzaC5lbmFibGVkXG4gICAgfTtcblxuICAgIHJldHVybiBbXG4gICAgICAvLyBiYXNlIGxheWVyXG4gICAgICBuZXcgRGVja0dMTGluZUxheWVyKHtcbiAgICAgICAgLi4ubGF5ZXJJbnRlcmFjdGlvbixcbiAgICAgICAgLi4uZGF0YSxcbiAgICAgICAgLi4uaW50ZXJhY3Rpb24sXG4gICAgICAgIGdldENvbG9yOiBkYXRhLmdldFNvdXJjZUNvbG9yLFxuICAgICAgICBpZDogdGhpcy5pZCxcbiAgICAgICAgaWR4LFxuICAgICAgICBvcGFjaXR5OiB0aGlzLmNvbmZpZy52aXNDb25maWcub3BhY2l0eSxcbiAgICAgICAgc3Ryb2tlU2NhbGU6IHRoaXMuY29uZmlnLnZpc0NvbmZpZy50aGlja25lc3MsXG4gICAgICAgIC8vIHBhcmFtZXRlcnNcbiAgICAgICAgcGFyYW1ldGVyczoge2RlcHRoVGVzdDogbWFwU3RhdGUuZHJhZ1JvdGF0ZX0sXG4gICAgICAgIHVwZGF0ZVRyaWdnZXJzOiB7XG4gICAgICAgICAgZ2V0V2lkdGg6IHtcbiAgICAgICAgICAgIHNpemVGaWVsZDogdGhpcy5jb25maWcuc2l6ZUZpZWxkLFxuICAgICAgICAgICAgc2l6ZVJhbmdlOiB0aGlzLmNvbmZpZy52aXNDb25maWcuc2l6ZVJhbmdlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBnZXRDb2xvcjogY29sb3JVcGRhdGVUcmlnZ2VycyxcbiAgICAgICAgICBnZXRUYXJnZXRDb2xvcjogY29sb3JVcGRhdGVUcmlnZ2Vyc1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICAgIC8vIGhvdmVyIGxheWVyXG4gICAgICAuLi4odGhpcy5pc0xheWVySG92ZXJlZChvYmplY3RIb3ZlcmVkKVxuICAgICAgICA/IFtcbiAgICAgICAgICAgIG5ldyBEZWNrR0xMaW5lTGF5ZXIoe1xuICAgICAgICAgICAgICBpZDogYCR7dGhpcy5pZH0taG92ZXJlZGAsXG4gICAgICAgICAgICAgIGRhdGE6IFtvYmplY3RIb3ZlcmVkLm9iamVjdF0sXG4gICAgICAgICAgICAgIHN0cm9rZVNjYWxlOiB0aGlzLmNvbmZpZy52aXNDb25maWcudGhpY2tuZXNzLFxuICAgICAgICAgICAgICBnZXRDb2xvcjogdGhpcy5jb25maWcuaGlnaGxpZ2h0Q29sb3IsXG4gICAgICAgICAgICAgIGdldFRhcmdldENvbG9yOiB0aGlzLmNvbmZpZy5oaWdobGlnaHRDb2xvcixcbiAgICAgICAgICAgICAgZ2V0V2lkdGg6IGRhdGEuZ2V0V2lkdGgsXG4gICAgICAgICAgICAgIHBpY2thYmxlOiBmYWxzZVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICBdXG4gICAgICAgIDogW10pXG4gICAgXTtcbiAgfVxufVxuIl19