UNPKG

kepler.gl.geoiq

Version:

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

89 lines (77 loc) 9.53 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.calculateLayerDomain = void 0; var _defaultSettings = require("../../constants/default-settings"); var _dataScaleUtils = require("../../utils/data-scale-utils"); // Copyright (c) 2023 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. var calculateLayerDomain = exports.calculateLayerDomain = function calculateLayerDomain(data) { var _dataset = dataset, allData = _dataset.allData, filteredIndexForDomain = _dataset.filteredIndexForDomain; var defaultDomain = [0, 1]; var _visualChannel = visualChannel, scale = _visualChannel.scale; var scaleType = 'quantile'; var field = { format: '', id: 'population', name: 'Population', tableFieldIndex: 1, type: 'integer' }; if (!field) { // if colorField or sizeField were set back to null return defaultDomain; } if (!_defaultSettings.SCALE_TYPES[scaleType]) { Console.error("scale type ".concat(scaleType, " not supported")); return defaultDomain; } // TODO: refactor to add valueAccessor to field // const fieldIdx = field.tableFieldIndex - 1; // const isTime = field.type === ALL_FIELD_TYPES.timestamp; // const valueAccessor = maybeToDate.bind( // null, // isTime, // fieldIdx, // field.format // ); var indexValueAccessor = function indexValueAccessor(i) { return valueAccessor(allData[i]); }; var sortFunction = getSortingFunction(field.type); switch (scaleType) { case _defaultSettings.SCALE_TYPES.ordinal: case _defaultSettings.SCALE_TYPES.point: // do not recalculate ordinal domain based on filtered data // don't need to update ordinal domain every time return (0, _dataScaleUtils.getOrdinalDomain)(allData, valueAccessor); case _defaultSettings.SCALE_TYPES.quantile: return (0, _dataScaleUtils.getQuantileDomain)(filteredIndexForDomain, indexValueAccessor, sortFunction); case _defaultSettings.SCALE_TYPES.quantize: case _defaultSettings.SCALE_TYPES.linear: case _defaultSettings.SCALE_TYPES.sqrt: default: return (0, _dataScaleUtils.getLinearDomain)(filteredIndexForDomain, indexValueAccessor); } }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYXllcnMvbXZ0LWdlb2pzb24tbGF5ZXIvbXZ0LWdlb2pzb24tdXRpbHMuanMiXSwibmFtZXMiOlsiY2FsY3VsYXRlTGF5ZXJEb21haW4iLCJkYXRhIiwiZGF0YXNldCIsImFsbERhdGEiLCJmaWx0ZXJlZEluZGV4Rm9yRG9tYWluIiwiZGVmYXVsdERvbWFpbiIsInZpc3VhbENoYW5uZWwiLCJzY2FsZSIsInNjYWxlVHlwZSIsImZpZWxkIiwiZm9ybWF0IiwiaWQiLCJuYW1lIiwidGFibGVGaWVsZEluZGV4IiwidHlwZSIsIlNDQUxFX1RZUEVTIiwiQ29uc29sZSIsImVycm9yIiwiaW5kZXhWYWx1ZUFjY2Vzc29yIiwiaSIsInZhbHVlQWNjZXNzb3IiLCJzb3J0RnVuY3Rpb24iLCJnZXRTb3J0aW5nRnVuY3Rpb24iLCJvcmRpbmFsIiwicG9pbnQiLCJxdWFudGlsZSIsInF1YW50aXplIiwibGluZWFyIiwic3FydCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQW9CQTs7QUFDQTs7QUFyQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFTTyxJQUFNQSxvQkFBb0Isa0NBQUcsU0FBdkJBLG9CQUF1QixDQUFBQyxJQUFJLEVBQUk7QUFDMUMsaUJBQTBDQyxPQUExQztBQUFBLE1BQU9DLE9BQVAsWUFBT0EsT0FBUDtBQUFBLE1BQWdCQyxzQkFBaEIsWUFBZ0JBLHNCQUFoQjtBQUNBLE1BQU1DLGFBQWEsR0FBRyxDQUFDLENBQUQsRUFBSSxDQUFKLENBQXRCO0FBQ0EsdUJBQWdCQyxhQUFoQjtBQUFBLE1BQU9DLEtBQVAsa0JBQU9BLEtBQVA7QUFDQSxNQUFNQyxTQUFTLEdBQUcsVUFBbEI7QUFFQSxNQUFNQyxLQUFLLEdBQUc7QUFDWkMsSUFBQUEsTUFBTSxFQUFFLEVBREk7QUFFWkMsSUFBQUEsRUFBRSxFQUFFLFlBRlE7QUFHWkMsSUFBQUEsSUFBSSxFQUFFLFlBSE07QUFJWkMsSUFBQUEsZUFBZSxFQUFFLENBSkw7QUFLWkMsSUFBQUEsSUFBSSxFQUFFO0FBTE0sR0FBZDs7QUFPQSxNQUFJLENBQUNMLEtBQUwsRUFBWTtBQUNWO0FBQ0EsV0FBT0osYUFBUDtBQUNEOztBQUVELE1BQUksQ0FBQ1UsNkJBQVlQLFNBQVosQ0FBTCxFQUE2QjtBQUMzQlEsSUFBQUEsT0FBTyxDQUFDQyxLQUFSLHNCQUE0QlQsU0FBNUI7QUFDQSxXQUFPSCxhQUFQO0FBQ0QsR0FyQnlDLENBdUIxQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNBLE1BQU1hLGtCQUFrQixHQUFHLFNBQXJCQSxrQkFBcUIsQ0FBQUMsQ0FBQztBQUFBLFdBQUlDLGFBQWEsQ0FBQ2pCLE9BQU8sQ0FBQ2dCLENBQUQsQ0FBUixDQUFqQjtBQUFBLEdBQTVCOztBQUVBLE1BQU1FLFlBQVksR0FBR0Msa0JBQWtCLENBQUNiLEtBQUssQ0FBQ0ssSUFBUCxDQUF2Qzs7QUFFQSxVQUFRTixTQUFSO0FBQ0UsU0FBS08sNkJBQVlRLE9BQWpCO0FBQ0EsU0FBS1IsNkJBQVlTLEtBQWpCO0FBQ0U7QUFDQTtBQUNBLGFBQU8sc0NBQWlCckIsT0FBakIsRUFBMEJpQixhQUExQixDQUFQOztBQUVGLFNBQUtMLDZCQUFZVSxRQUFqQjtBQUNFLGFBQU8sdUNBQ0xyQixzQkFESyxFQUVMYyxrQkFGSyxFQUdMRyxZQUhLLENBQVA7O0FBTUYsU0FBS04sNkJBQVlXLFFBQWpCO0FBQ0EsU0FBS1gsNkJBQVlZLE1BQWpCO0FBQ0EsU0FBS1osNkJBQVlhLElBQWpCO0FBQ0E7QUFDRSxhQUFPLHFDQUFnQnhCLHNCQUFoQixFQUF3Q2Msa0JBQXhDLENBQVA7QUFsQko7QUFvQkQsQ0F4RE0iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjMgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQge1NDQUxFX1RZUEVTfSBmcm9tICdjb25zdGFudHMvZGVmYXVsdC1zZXR0aW5ncyc7XG5pbXBvcnQge1xuICBnZXRRdWFudGlsZURvbWFpbixcbiAgZ2V0T3JkaW5hbERvbWFpbixcbiAgZ2V0TGluZWFyRG9tYWluXG59IGZyb20gJ3V0aWxzL2RhdGEtc2NhbGUtdXRpbHMnO1xuXG5leHBvcnQgY29uc3QgY2FsY3VsYXRlTGF5ZXJEb21haW4gPSBkYXRhID0+IHtcbiAgY29uc3Qge2FsbERhdGEsIGZpbHRlcmVkSW5kZXhGb3JEb21haW59ID0gZGF0YXNldDtcbiAgY29uc3QgZGVmYXVsdERvbWFpbiA9IFswLCAxXTtcbiAgY29uc3Qge3NjYWxlfSA9IHZpc3VhbENoYW5uZWw7XG4gIGNvbnN0IHNjYWxlVHlwZSA9ICdxdWFudGlsZSc7XG5cbiAgY29uc3QgZmllbGQgPSB7XG4gICAgZm9ybWF0OiAnJyxcbiAgICBpZDogJ3BvcHVsYXRpb24nLFxuICAgIG5hbWU6ICdQb3B1bGF0aW9uJyxcbiAgICB0YWJsZUZpZWxkSW5kZXg6IDEsXG4gICAgdHlwZTogJ2ludGVnZXInXG4gIH07XG4gIGlmICghZmllbGQpIHtcbiAgICAvLyBpZiBjb2xvckZpZWxkIG9yIHNpemVGaWVsZCB3ZXJlIHNldCBiYWNrIHRvIG51bGxcbiAgICByZXR1cm4gZGVmYXVsdERvbWFpbjtcbiAgfVxuXG4gIGlmICghU0NBTEVfVFlQRVNbc2NhbGVUeXBlXSkge1xuICAgIENvbnNvbGUuZXJyb3IoYHNjYWxlIHR5cGUgJHtzY2FsZVR5cGV9IG5vdCBzdXBwb3J0ZWRgKTtcbiAgICByZXR1cm4gZGVmYXVsdERvbWFpbjtcbiAgfVxuXG4gIC8vIFRPRE86IHJlZmFjdG9yIHRvIGFkZCB2YWx1ZUFjY2Vzc29yIHRvIGZpZWxkXG4gIC8vIGNvbnN0IGZpZWxkSWR4ID0gZmllbGQudGFibGVGaWVsZEluZGV4IC0gMTtcbiAgLy8gY29uc3QgaXNUaW1lID0gZmllbGQudHlwZSA9PT0gQUxMX0ZJRUxEX1RZUEVTLnRpbWVzdGFtcDtcbiAgLy8gY29uc3QgdmFsdWVBY2Nlc3NvciA9IG1heWJlVG9EYXRlLmJpbmQoXG4gIC8vICAgbnVsbCxcbiAgLy8gICBpc1RpbWUsXG4gIC8vICAgZmllbGRJZHgsXG4gIC8vICAgZmllbGQuZm9ybWF0XG4gIC8vICk7XG4gIGNvbnN0IGluZGV4VmFsdWVBY2Nlc3NvciA9IGkgPT4gdmFsdWVBY2Nlc3NvcihhbGxEYXRhW2ldKTtcblxuICBjb25zdCBzb3J0RnVuY3Rpb24gPSBnZXRTb3J0aW5nRnVuY3Rpb24oZmllbGQudHlwZSk7XG5cbiAgc3dpdGNoIChzY2FsZVR5cGUpIHtcbiAgICBjYXNlIFNDQUxFX1RZUEVTLm9yZGluYWw6XG4gICAgY2FzZSBTQ0FMRV9UWVBFUy5wb2ludDpcbiAgICAgIC8vIGRvIG5vdCByZWNhbGN1bGF0ZSBvcmRpbmFsIGRvbWFpbiBiYXNlZCBvbiBmaWx0ZXJlZCBkYXRhXG4gICAgICAvLyBkb24ndCBuZWVkIHRvIHVwZGF0ZSBvcmRpbmFsIGRvbWFpbiBldmVyeSB0aW1lXG4gICAgICByZXR1cm4gZ2V0T3JkaW5hbERvbWFpbihhbGxEYXRhLCB2YWx1ZUFjY2Vzc29yKTtcblxuICAgIGNhc2UgU0NBTEVfVFlQRVMucXVhbnRpbGU6XG4gICAgICByZXR1cm4gZ2V0UXVhbnRpbGVEb21haW4oXG4gICAgICAgIGZpbHRlcmVkSW5kZXhGb3JEb21haW4sXG4gICAgICAgIGluZGV4VmFsdWVBY2Nlc3NvcixcbiAgICAgICAgc29ydEZ1bmN0aW9uXG4gICAgICApO1xuXG4gICAgY2FzZSBTQ0FMRV9UWVBFUy5xdWFudGl6ZTpcbiAgICBjYXNlIFNDQUxFX1RZUEVTLmxpbmVhcjpcbiAgICBjYXNlIFNDQUxFX1RZUEVTLnNxcnQ6XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBnZXRMaW5lYXJEb21haW4oZmlsdGVyZWRJbmRleEZvckRvbWFpbiwgaW5kZXhWYWx1ZUFjY2Vzc29yKTtcbiAgfVxufTtcbiJdfQ==