UNPKG

kepler.gl

Version:

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

158 lines (128 loc) 13.5 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = undefined; var _extends2 = require('babel-runtime/helpers/extends'); var _extends3 = _interopRequireDefault(_extends2); var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = require('babel-runtime/helpers/createClass'); var _createClass3 = _interopRequireDefault(_createClass2); var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn'); var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); var _inherits2 = require('babel-runtime/helpers/inherits'); var _inherits3 = _interopRequireDefault(_inherits2); var _arcLayer = require('../arc-layer/arc-layer'); var _arcLayer2 = _interopRequireDefault(_arcLayer); var _lineLayer = require('../../deckgl-layers/line-layer/line-layer'); var _lineLayer2 = _interopRequireDefault(_lineLayer); var _lineLayerIcon = require('./line-layer-icon'); var _lineLayerIcon2 = _interopRequireDefault(_lineLayerIcon); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var LineLayer = function (_ArcLayer) { (0, _inherits3.default)(LineLayer, _ArcLayer); function LineLayer() { (0, _classCallCheck3.default)(this, LineLayer); return (0, _possibleConstructorReturn3.default)(this, (LineLayer.__proto__ || Object.getPrototypeOf(LineLayer)).apply(this, arguments)); } (0, _createClass3.default)(LineLayer, [{ 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 _lineLayer2.default((0, _extends3.default)({}, layerInteraction, data, interaction, { getColor: data.getSourceColor, id: this.id, idx: idx, fp64: this.config.visConfig['hi-precision'], opacity: this.config.visConfig.opacity, strokeScale: this.config.visConfig.thickness, // parameters parameters: { depthTest: mapState.dragRotate }, updateTriggers: { getStrokeWidth: { sizeField: this.config.sizeField, sizeRange: this.config.visConfig.sizeRange }, getColor: colorUpdateTriggers, getTargetColor: colorUpdateTriggers } }))]; } }, { key: 'type', get: function get() { return 'line'; } }, { key: 'layerIcon', get: function get() { return _lineLayerIcon2.default; } }], [{ key: 'findDefaultLayerProps', value: function findDefaultLayerProps(_ref2) { var fieldPairs = _ref2.fieldPairs; if (fieldPairs.length < 2) { return []; } 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 = fieldPairs[0].defaultName + ' -> ' + fieldPairs[1].defaultName + ' line'; return props; } }]); return LineLayer; }(_arcLayer2.default); // Copyright (c) 2018 Uber Technologies, Inc. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. exports.default = LineLayer; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYXllcnMvbGluZS1sYXllci9saW5lLWxheWVyLmpzIl0sIm5hbWVzIjpbIkxpbmVMYXllciIsImRhdGEiLCJpZHgiLCJsYXllckludGVyYWN0aW9uIiwib2JqZWN0SG92ZXJlZCIsIm1hcFN0YXRlIiwiaW50ZXJhY3Rpb25Db25maWciLCJicnVzaCIsImNvbG9yVXBkYXRlVHJpZ2dlcnMiLCJjb2xvciIsImNvbmZpZyIsImNvbG9yRmllbGQiLCJjb2xvclJhbmdlIiwidmlzQ29uZmlnIiwiY29sb3JTY2FsZSIsInRhcmdldENvbG9yIiwiaW50ZXJhY3Rpb24iLCJwaWNrYWJsZSIsImF1dG9IaWdobGlnaHQiLCJlbmFibGVkIiwiaGlnaGxpZ2h0Q29sb3IiLCJicnVzaFJhZGl1cyIsInNpemUiLCJicnVzaFNvdXJjZSIsImJydXNoVGFyZ2V0IiwiZW5hYmxlQnJ1c2hpbmciLCJEZWNrR0xMaW5lTGF5ZXIiLCJnZXRDb2xvciIsImdldFNvdXJjZUNvbG9yIiwiaWQiLCJmcDY0Iiwib3BhY2l0eSIsInN0cm9rZVNjYWxlIiwidGhpY2tuZXNzIiwicGFyYW1ldGVycyIsImRlcHRoVGVzdCIsImRyYWdSb3RhdGUiLCJ1cGRhdGVUcmlnZ2VycyIsImdldFN0cm9rZVdpZHRoIiwic2l6ZUZpZWxkIiwic2l6ZVJhbmdlIiwiZ2V0VGFyZ2V0Q29sb3IiLCJMaW5lTGF5ZXJJY29uIiwiZmllbGRQYWlycyIsImxlbmd0aCIsInByb3BzIiwiY29sdW1ucyIsImxhdDAiLCJwYWlyIiwibGF0IiwibG5nMCIsImxuZyIsImxhdDEiLCJsbmcxIiwibGFiZWwiLCJkZWZhdWx0TmFtZSIsIkFyY0xheWVyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvQkE7Ozs7QUFDQTs7OztBQUNBOzs7Ozs7SUFFcUJBLFM7Ozs7Ozs7Ozs7c0NBb0NoQjtBQUFBLFVBTkRDLElBTUMsUUFOREEsSUFNQztBQUFBLFVBTERDLEdBS0MsUUFM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ZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IEFyY0xheWVyIGZyb20gJy4uL2FyYy1sYXllci9hcmMtbGF5ZXInO1xuaW1wb3J0IERlY2tHTExpbmVMYXllciBmcm9tICdkZWNrZ2wtbGF5ZXJzL2xpbmUtbGF5ZXIvbGluZS1sYXllcic7XG5pbXBvcnQgTGluZUxheWVySWNvbiBmcm9tICcuL2xpbmUtbGF5ZXItaWNvbic7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIExpbmVMYXllciBleHRlbmRzIEFyY0xheWVyIHtcbiAgZ2V0IHR5cGUoKSB7XG4gICAgcmV0dXJuICdsaW5lJztcbiAgfVxuXG4gIGdldCBsYXllckljb24oKSB7XG4gICAgcmV0dXJuIExpbmVMYXllckljb247XG4gIH1cblxuICBzdGF0aWMgZmluZERlZmF1bHRMYXllclByb3BzKHtmaWVsZFBhaXJzfSkge1xuICAgIGlmIChmaWVsZFBhaXJzLmxlbmd0aCA8IDIpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgY29uc3QgcHJvcHMgPSB7fTtcblxuICAgIC8vIGNvbm5lY3QgdGhlIGZpcnN0IHR3byBwb2ludCBsYXllciB3aXRoIGFyY1xuICAgIHByb3BzLmNvbHVtbnMgPSB7XG4gICAgICBsYXQwOiBmaWVsZFBhaXJzWzBdLnBhaXIubGF0LFxuICAgICAgbG5nMDogZmllbGRQYWlyc1swXS5wYWlyLmxuZyxcbiAgICAgIGxhdDE6IGZpZWxkUGFpcnNbMV0ucGFpci5sYXQsXG4gICAgICBsbmcxOiBmaWVsZFBhaXJzWzFdLnBhaXIubG5nXG4gICAgfTtcbiAgICBwcm9wcy5sYWJlbCA9IGAke2ZpZWxkUGFpcnNbMF0uZGVmYXVsdE5hbWV9IC0+ICR7XG4gICAgICBmaWVsZFBhaXJzWzFdLmRlZmF1bHROYW1lXG4gICAgICB9IGxpbmVgO1xuXG4gICAgcmV0dXJuIHByb3BzO1xuICB9XG5cbiAgcmVuZGVyTGF5ZXIoe1xuICAgIGRhdGEsXG4gICAgaWR4LFxuICAgIGxheWVySW50ZXJhY3Rpb24sXG4gICAgb2JqZWN0SG92ZXJlZCxcbiAgICBtYXBTdGF0ZSxcbiAgICBpbnRlcmFjdGlvbkNvbmZpZ1xuICB9KSB7XG4gICAgY29uc3Qge2JydXNofSA9IGludGVyYWN0aW9uQ29uZmlnO1xuXG4gICAgY29uc3QgY29sb3JVcGRhdGVUcmlnZ2VycyA9IHtcbiAgICAgIGNvbG9yOiB0aGlzLmNvbmZpZy5jb2xvcixcbiAgICAgIGNvbG9yRmllbGQ6IHRoaXMuY29uZmlnLmNvbG9yRmllbGQsXG4gICAgICBjb2xvclJhbmdlOiB0aGlzLmNvbmZpZy52aXNDb25maWcuY29sb3JSYW5nZSxcbiAgICAgIGNvbG9yU2NhbGU6IHRoaXMuY29uZmlnLmNvbG9yU2NhbGUsXG4gICAgICB0YXJnZXRDb2xvcjogdGhpcy5jb25maWcudmlzQ29uZmlnLnRhcmdldENvbG9yXG4gICAgfTtcblxuICAgIGNvbnN0IGludGVyYWN0aW9uID0ge1xuICAgICAgLy8gYXV0byBoaWdobGlnaHRpbmdcbiAgICAgIHBpY2thYmxlOiB0cnVlLFxuICAgICAgYXV0b0hpZ2hsaWdodDogIWJydXNoLmVuYWJsZWQsXG4gICAgICBoaWdobGlnaHRDb2xvcjogdGhpcy5jb25maWcuaGlnaGxpZ2h0Q29sb3IsXG5cbiAgICAgIC8vIGJydXNoaW5nXG4gICAgICBicnVzaFJhZGl1czogYnJ1c2guY29uZmlnLnNpemUgKiAxMDAwLFxuICAgICAgYnJ1c2hTb3VyY2U6IHRydWUsXG4gICAgICBicnVzaFRhcmdldDogdHJ1ZSxcbiAgICAgIGVuYWJsZUJydXNoaW5nOiBicnVzaC5lbmFibGVkXG4gICAgfTtcblxuICAgIHJldHVybiBbXG4gICAgICAvLyBiYXNlIGxheWVyXG4gICAgICBuZXcgRGVja0dMTGluZUxheWVyKHtcbiAgICAgICAgLi4ubGF5ZXJJbnRlcmFjdGlvbixcbiAgICAgICAgLi4uZGF0YSxcbiAgICAgICAgLi4uaW50ZXJhY3Rpb24sXG4gICAgICAgIGdldENvbG9yOiBkYXRhLmdldFNvdXJjZUNvbG9yLFxuICAgICAgICBpZDogdGhpcy5pZCxcbiAgICAgICAgaWR4LFxuICAgICAgICBmcDY0OiB0aGlzLmNvbmZpZy52aXNDb25maWdbJ2hpLXByZWNpc2lvbiddLFxuICAgICAgICBvcGFjaXR5OiB0aGlzLmNvbmZpZy52aXNDb25maWcub3BhY2l0eSxcbiAgICAgICAgc3Ryb2tlU2NhbGU6IHRoaXMuY29uZmlnLnZpc0NvbmZpZy50aGlja25lc3MsXG4gICAgICAgIC8vIHBhcmFtZXRlcnNcbiAgICAgICAgcGFyYW1ldGVyczoge2RlcHRoVGVzdDogbWFwU3RhdGUuZHJhZ1JvdGF0ZX0sXG4gICAgICAgIHVwZGF0ZVRyaWdnZXJzOiB7XG4gICAgICAgICAgZ2V0U3Ryb2tlV2lkdGg6IHtcbiAgICAgICAgICAgIHNpemVGaWVsZDogdGhpcy5jb25maWcuc2l6ZUZpZWxkLFxuICAgICAgICAgICAgc2l6ZVJhbmdlOiB0aGlzLmNvbmZpZy52aXNDb25maWcuc2l6ZVJhbmdlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBnZXRDb2xvcjogY29sb3JVcGRhdGVUcmlnZ2VycyxcbiAgICAgICAgICBnZXRUYXJnZXRDb2xvcjogY29sb3JVcGRhdGVUcmlnZ2Vyc1xuICAgICAgICB9XG4gICAgICB9KVxuICAgIF07XG4gIH1cbn1cbiJdfQ==