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
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 _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