UNPKG

kepler.gl

Version:

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

133 lines (132 loc) 16.2 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = useFetchVectorTileMetadata; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _react = require("/Users/ihordykhta/Desktop/unfolded/kepler.gl/node_modules/react"); var _pmtiles = require("@loaders.gl/pmtiles"); var _src = require("/Users/ihordykhta/Desktop/unfolded/kepler.gl/src/constants/src"); var _src2 = require("/Users/ihordykhta/Desktop/unfolded/kepler.gl/src/table/src"); 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; } // SPDX-License-Identifier: MIT // Copyright contributors to the kepler.gl project var DEFAULT_PROCESS_FUNCTION = function DEFAULT_PROCESS_FUNCTION(json) { return _objectSpread({ metaJson: null, bounds: null, center: null, maxZoom: null, minZoom: null, fields: [] }, json); }; /** Hook to fetch and return mvt or pmtiles metadata. */ function useFetchVectorTileMetadata(_ref) { var remoteTileFormat = _ref.remoteTileFormat, tilesetUrl = _ref.tilesetUrl, metadataUrl = _ref.metadataUrl, _ref$process = _ref.process, process = _ref$process === void 0 ? DEFAULT_PROCESS_FUNCTION : _ref$process; var _useState = (0, _react.useState)(null), _useState2 = (0, _slicedToArray2["default"])(_useState, 2), error = _useState2[0], setError = _useState2[1]; var _useState3 = (0, _react.useState)(null), _useState4 = (0, _slicedToArray2["default"])(_useState3, 2), data = _useState4[0], setData = _useState4[1]; var _useState5 = (0, _react.useState)(false), _useState6 = (0, _slicedToArray2["default"])(_useState5, 2), loading = _useState6[0], setLoading = _useState6[1]; (0, _react.useEffect)(function () { var getAndProcessMetadata = /*#__PURE__*/function () { var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() { var metadata, tileSource, processedMetadata; return _regenerator["default"].wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: setError(null); setData(null); if (!metadataUrl) { _context.next = 33; break; } setLoading(true); _context.prev = 4; metadata = null; if (!(remoteTileFormat === _src.RemoteTileFormat.MVT)) { _context.next = 12; break; } _context.next = 9; return (0, _src2.getMVTMetadata)(metadataUrl); case 9: metadata = _context.sent; _context.next = 16; break; case 12: tileSource = _pmtiles.PMTilesSource.createDataSource(metadataUrl, {}); _context.next = 15; return tileSource.metadata; case 15: metadata = _context.sent; case 16: if (metadata) { _context.next = 18; break; } throw new Error('Failed to fetch metadata'); case 18: processedMetadata = process(metadata); if (!(processedMetadata instanceof Error)) { _context.next = 23; break; } setError(processedMetadata); _context.next = 27; break; case 23: setError(null); _context.next = 26; return (0, _src2.getFieldsFromTile)({ remoteTileFormat: remoteTileFormat, tilesetUrl: tilesetUrl, metadataUrl: metadataUrl, metadata: processedMetadata }); case 26: setData(processedMetadata); case 27: _context.next = 32; break; case 29: _context.prev = 29; _context.t0 = _context["catch"](4); setError(_context.t0); case 32: setLoading(false); case 33: case "end": return _context.stop(); } }, _callee, null, [[4, 29]]); })); return function getAndProcessMetadata() { return _ref2.apply(this, arguments); }; }(); getAndProcessMetadata(); }, [metadataUrl, tilesetUrl, remoteTileFormat, setError, setData, process]); return { data: data, loading: loading, error: error }; } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX3BtdGlsZXMiLCJfc3JjIiwiX3NyYzIiLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIkRFRkFVTFRfUFJPQ0VTU19GVU5DVElPTiIsImpzb24iLCJtZXRhSnNvbiIsImJvdW5kcyIsImNlbnRlciIsIm1heFpvb20iLCJtaW5ab29tIiwiZmllbGRzIiwidXNlRmV0Y2hWZWN0b3JUaWxlTWV0YWRhdGEiLCJfcmVmIiwicmVtb3RlVGlsZUZvcm1hdCIsInRpbGVzZXRVcmwiLCJtZXRhZGF0YVVybCIsIl9yZWYkcHJvY2VzcyIsInByb2Nlc3MiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJlcnJvciIsInNldEVycm9yIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJkYXRhIiwic2V0RGF0YSIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwibG9hZGluZyIsInNldExvYWRpbmciLCJ1c2VFZmZlY3QiLCJnZXRBbmRQcm9jZXNzTWV0YWRhdGEiLCJfcmVmMiIsIl9hc3luY1RvR2VuZXJhdG9yMiIsIl9yZWdlbmVyYXRvciIsIm1hcmsiLCJfY2FsbGVlIiwibWV0YWRhdGEiLCJ0aWxlU291cmNlIiwicHJvY2Vzc2VkTWV0YWRhdGEiLCJ3cmFwIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwiUmVtb3RlVGlsZUZvcm1hdCIsIk1WVCIsImdldE1WVE1ldGFkYXRhIiwic2VudCIsIlBNVGlsZXNTb3VyY2UiLCJjcmVhdGVEYXRhU291cmNlIiwiRXJyb3IiLCJnZXRGaWVsZHNGcm9tVGlsZSIsInQwIiwic3RvcCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NyYy9ob29rcy91c2UtZmV0Y2gtdmVjdG9yLXRpbGUtbWV0YWRhdGEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHt1c2VFZmZlY3QsIHVzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7VGlsZUpTT059IGZyb20gJ0Bsb2FkZXJzLmdsL212dCc7XG5pbXBvcnQge1BNVGlsZXNTb3VyY2UsIFBNVGlsZXNNZXRhZGF0YX0gZnJvbSAnQGxvYWRlcnMuZ2wvcG10aWxlcyc7XG5cbmltcG9ydCB7UmVtb3RlVGlsZUZvcm1hdH0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtnZXRNVlRNZXRhZGF0YSwgVmVjdG9yVGlsZU1ldGFkYXRhLCBnZXRGaWVsZHNGcm9tVGlsZX0gZnJvbSAnQGtlcGxlci5nbC90YWJsZSc7XG5cbnR5cGUgRmV0Y2hWZWN0b3JUaWxlTWV0YWRhdGFQcm9wcyA9IHtcbiAgbWV0YWRhdGFVcmw6IHN0cmluZyB8IG51bGw7XG4gIHRpbGVzZXRVcmw6IHN0cmluZyB8IG51bGw7XG4gIHJlbW90ZVRpbGVGb3JtYXQ6IFJlbW90ZVRpbGVGb3JtYXQ7XG4gIHByb2Nlc3M/OiAoanNvbjogUE1UaWxlc01ldGFkYXRhIHwgVGlsZUpTT04pID0+IFZlY3RvclRpbGVNZXRhZGF0YSB8IEVycm9yIHwgbnVsbDtcbn07XG5cbmNvbnN0IERFRkFVTFRfUFJPQ0VTU19GVU5DVElPTiA9IChqc29uOiBQTVRpbGVzTWV0YWRhdGEgfCBUaWxlSlNPTik6IFZlY3RvclRpbGVNZXRhZGF0YSA9PiB7XG4gIHJldHVybiB7XG4gICAgbWV0YUpzb246IG51bGwsXG4gICAgYm91bmRzOiBudWxsLFxuICAgIGNlbnRlcjogbnVsbCxcbiAgICBtYXhab29tOiBudWxsLFxuICAgIG1pblpvb206IG51bGwsXG4gICAgZmllbGRzOiBbXSxcbiAgICAuLi5qc29uXG4gIH07XG59O1xuXG50eXBlIEZldGNoVmVjdG9yVGlsZU1ldGFkYXRhUmV0dXJuID0ge1xuICBkYXRhOiBWZWN0b3JUaWxlTWV0YWRhdGEgfCBudWxsO1xuICBsb2FkaW5nOiBib29sZWFuO1xuICBlcnJvcjogRXJyb3IgfCBudWxsO1xufTtcblxuLyoqIEhvb2sgdG8gZmV0Y2ggYW5kIHJldHVybiBtdnQgb3IgcG10aWxlcyBtZXRhZGF0YS4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVzZUZldGNoVmVjdG9yVGlsZU1ldGFkYXRhKHtcbiAgcmVtb3RlVGlsZUZvcm1hdCxcbiAgdGlsZXNldFVybCxcbiAgbWV0YWRhdGFVcmwsXG4gIHByb2Nlc3MgPSBERUZBVUxUX1BST0NFU1NfRlVOQ1RJT05cbn06IEZldGNoVmVjdG9yVGlsZU1ldGFkYXRhUHJvcHMpOiBGZXRjaFZlY3RvclRpbGVNZXRhZGF0YVJldHVybiB7XG4gIGNvbnN0IFtlcnJvciwgc2V0RXJyb3JdID0gdXNlU3RhdGU8RXJyb3IgfCBudWxsPihudWxsKTtcbiAgY29uc3QgW2RhdGEsIHNldERhdGFdID0gdXNlU3RhdGU8VmVjdG9yVGlsZU1ldGFkYXRhIHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGdldEFuZFByb2Nlc3NNZXRhZGF0YSA9IGFzeW5jICgpID0+IHtcbiAgICAgIHNldEVycm9yKG51bGwpO1xuICAgICAgc2V0RGF0YShudWxsKTtcbiAgICAgIGlmIChtZXRhZGF0YVVybCkge1xuICAgICAgICBzZXRMb2FkaW5nKHRydWUpO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgbGV0IG1ldGFkYXRhOiBQTVRpbGVzTWV0YWRhdGEgfCBUaWxlSlNPTiB8IG51bGwgPSBudWxsO1xuICAgICAgICAgIGlmIChyZW1vdGVUaWxlRm9ybWF0ID09PSBSZW1vdGVUaWxlRm9ybWF0Lk1WVCkge1xuICAgICAgICAgICAgbWV0YWRhdGEgPSBhd2FpdCBnZXRNVlRNZXRhZGF0YShtZXRhZGF0YVVybCk7XG5cbiAgICAgICAgICAgIC8vIE1WVFNvdXJjZSByZXR1cm5zIG1lc3N5IHBhcnRpYWwgbWV0YWRhdGFcbiAgICAgICAgICAgIC8vIE1WVFNvdXJjZS5jcmVhdGVEYXRhU291cmNlKCcnLCB7XG4gICAgICAgICAgICAvLyAgIG12dDoge1xuICAgICAgICAgICAgLy8gICAgIG1ldGFkYXRhVXJsOiBkZWNvZGVVUklDb21wb25lbnQodXJsKVxuICAgICAgICAgICAgLy8gICB9XG4gICAgICAgICAgICAvLyB9KVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCB0aWxlU291cmNlID0gUE1UaWxlc1NvdXJjZS5jcmVhdGVEYXRhU291cmNlKG1ldGFkYXRhVXJsLCB7fSk7XG4gICAgICAgICAgICBtZXRhZGF0YSA9IGF3YWl0IHRpbGVTb3VyY2UubWV0YWRhdGE7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gU2luY2Ugd2Ugc3dpdGNoZWQgdG8gU291cmNlLmNyZWF0ZURhdGFTb3VyY2UgZGV0YWlsZWQgcmVzcG9uc2UgZXJyb3JzIGFyZW4ndCBhdmFpbGFibGUgaGVyZS4uLlxuICAgICAgICAgIGlmICghbWV0YWRhdGEpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGZldGNoIG1ldGFkYXRhJyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgcHJvY2Vzc2VkTWV0YWRhdGEgPSBwcm9jZXNzKG1ldGFkYXRhKTtcbiAgICAgICAgICBpZiAocHJvY2Vzc2VkTWV0YWRhdGEgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgICAgc2V0RXJyb3IocHJvY2Vzc2VkTWV0YWRhdGEpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzZXRFcnJvcihudWxsKTtcblxuICAgICAgICAgICAgYXdhaXQgZ2V0RmllbGRzRnJvbVRpbGUoe1xuICAgICAgICAgICAgICByZW1vdGVUaWxlRm9ybWF0LFxuICAgICAgICAgICAgICB0aWxlc2V0VXJsLFxuICAgICAgICAgICAgICBtZXRhZGF0YVVybCxcbiAgICAgICAgICAgICAgbWV0YWRhdGE6IHByb2Nlc3NlZE1ldGFkYXRhXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgc2V0RGF0YShwcm9jZXNzZWRNZXRhZGF0YSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChtZXRhZGF0YUVycm9yKSB7XG4gICAgICAgICAgc2V0RXJyb3IobWV0YWRhdGFFcnJvciBhcyBhbnkpO1xuICAgICAgICB9XG4gICAgICAgIHNldExvYWRpbmcoZmFsc2UpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBnZXRBbmRQcm9jZXNzTWV0YWRhdGEoKTtcbiAgfSwgW21ldGFkYXRhVXJsLCB0aWxlc2V0VXJsLCByZW1vdGVUaWxlRm9ybWF0LCBzZXRFcnJvciwgc2V0RGF0YSwgcHJvY2Vzc10pO1xuXG4gIHJldHVybiB7ZGF0YSwgbG9hZGluZywgZXJyb3J9O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUdBLElBQUFDLFFBQUEsR0FBQUQsT0FBQTtBQUVBLElBQUFFLElBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLEtBQUEsR0FBQUgsT0FBQTtBQUF1RixTQUFBSSxRQUFBQyxDQUFBLEVBQUFDLENBQUEsUUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQUosQ0FBQSxPQUFBRyxNQUFBLENBQUFFLHFCQUFB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