kepler.gl.geoiq
Version:
kepler.gl is a webgl based application to visualize large scale location data in the browser
82 lines (76 loc) • 8.31 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.LOAD_MAP_STYLE_TASK = exports.LOAD_FILE_TASK = void 0;
var _tasks = require("react-palm/tasks");
var _d3Request = require("d3-request");
// Copyright (c) 2019 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 LOAD_FILE_TASK = (0, _tasks.taskCreator)(function (_ref, success, error) {
var fileBlob = _ref.fileBlob,
info = _ref.info,
handler = _ref.handler,
processor = _ref.processor;
return handler(fileBlob, processor).then(function (result) {
if (!result) {
// TODO: capture in the UI and show message
throw new Error('fail to load data');
} else {
// we are trying to standardize the shape of our return
// since we start using the kepler.json format
// result has both datasets and info
// TODO: I think we should pass info to the handler and return
// the same format back from the file handler
if (result.datasets) {
// this is coming from parsing keplergl.json file
success(result); // info is already part of datasets
}
success({
datasets: {
data: result,
info: info
}
});
}
})["catch"](function (err) {
return error(err);
});
}, 'LOAD_FILE_TASK');
exports.LOAD_FILE_TASK = LOAD_FILE_TASK;
var LOAD_MAP_STYLE_TASK = (0, _tasks.taskCreator)(function (_ref2, success, error) {
var url = _ref2.url,
id = _ref2.id;
return (0, _d3Request.json)(url, function (err, result) {
if (err) {
error(err);
} else {
if (!result) {
error(new Error('Map style response is empty'));
}
success({
id: id,
style: result
});
}
});
}, 'LOAD_MAP_STYLE_TASK');
exports.LOAD_MAP_STYLE_TASK = LOAD_MAP_STYLE_TASK;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90YXNrcy90YXNrcy5qcyJdLCJuYW1lcyI6WyJMT0FEX0ZJTEVfVEFTSyIsInN1Y2Nlc3MiLCJlcnJvciIsImZpbGVCbG9iIiwiaW5mbyIsImhhbmRsZXIiLCJwcm9jZXNzb3IiLCJ0aGVuIiwicmVzdWx0IiwiRXJyb3IiLCJkYXRhc2V0cyIsImRhdGEiLCJlcnIiLCJMT0FEX01BUF9TVFlMRV9UQVNLIiwidXJsIiwiaWQiLCJzdHlsZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQW9CQTs7QUFDQTs7QUFyQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFLTyxJQUFNQSxjQUFjLEdBQUcsd0JBQzVCLGdCQUF1Q0MsT0FBdkMsRUFBZ0RDLEtBQWhEO0FBQUEsTUFBRUMsUUFBRixRQUFFQSxRQUFGO0FBQUEsTUFBWUMsSUFBWixRQUFZQSxJQUFaO0FBQUEsTUFBa0JDLE9BQWxCLFFBQWtCQSxPQUFsQjtBQUFBLE1BQTJCQyxTQUEzQixRQUEyQkEsU0FBM0I7QUFBQSxTQUNFRCxPQUFPLENBQUNGLFFBQUQsRUFBV0csU0FBWCxDQUFQLENBQ0dDLElBREgsQ0FDUSxVQUFBQyxNQUFNLEVBQUk7QUFDZCxRQUFJLENBQUNBLE1BQUwsRUFBYTtBQUNYO0FBQ0EsWUFBTSxJQUFJQyxLQUFKLENBQVUsbUJBQVYsQ0FBTjtBQUNELEtBSEQsTUFHTztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFJRCxNQUFNLENBQUNFLFFBQVgsRUFBcUI7QUFBRTtBQUNyQlQsUUFBQUEsT0FBTyxDQUFDTyxNQUFELENBQVAsQ0FEbUIsQ0FDRjtBQUNsQjs7QUFDRFAsTUFBQUEsT0FBTyxDQUFDO0FBQUNTLFFBQUFBLFFBQVEsRUFBRTtBQUFDQyxVQUFBQSxJQUFJLEVBQUVILE1BQVA7QUFBZUosVUFBQUEsSUFBSSxFQUFKQTtBQUFmO0FBQVgsT0FBRCxDQUFQO0FBQ0Q7QUFDRixHQWhCSCxXQWlCUyxVQUFBUSxHQUFHO0FBQUEsV0FBSVYsS0FBSyxDQUFDVSxHQUFELENBQVQ7QUFBQSxHQWpCWixDQURGO0FBQUEsQ0FENEIsRUFxQjVCLGdCQXJCNEIsQ0FBdkI7O0FBd0JBLElBQU1DLG1CQUFtQixHQUFHLHdCQUNqQyxpQkFBWVosT0FBWixFQUFxQkMsS0FBckI7QUFBQSxNQUFFWSxHQUFGLFNBQUVBLEdBQUY7QUFBQSxNQUFPQyxFQUFQLFNBQU9BLEVBQVA7QUFBQSxTQUNFLHFCQUFZRCxHQUFaLEVBQWlCLFVBQUNGLEdBQUQsRUFBTUosTUFBTixFQUFpQjtBQUNoQyxRQUFJSSxHQUFKLEVBQVM7QUFDUFYsTUFBQUEsS0FBSyxDQUFDVSxHQUFELENBQUw7QUFDRCxLQUZELE1BRU87QUFDTCxVQUFJLENBQUNKLE1BQUwsRUFBYTtBQUNYTixRQUFBQSxLQUFLLENBQUMsSUFBSU8sS0FBSixDQUFVLDZCQUFWLENBQUQsQ0FBTDtBQUNEOztBQUNEUixNQUFBQSxPQUFPLENBQUM7QUFBQ2MsUUFBQUEsRUFBRSxFQUFGQSxFQUFEO0FBQUtDLFFBQUFBLEtBQUssRUFBRVI7QUFBWixPQUFELENBQVA7QUFDRDtBQUNGLEdBVEQsQ0FERjtBQUFBLENBRGlDLEVBYWpDLHFCQWJpQyxDQUE1QiIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAxOSBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCB7dGFza0NyZWF0b3J9IGZyb20gJ3JlYWN0LXBhbG0vdGFza3MnO1xuaW1wb3J0IHtqc29uIGFzIHJlcXVlc3RKc29ufSBmcm9tICdkMy1yZXF1ZXN0JztcblxuZXhwb3J0IGNvbnN0IExPQURfRklMRV9UQVNLID0gdGFza0NyZWF0b3IoXG4gICh7ZmlsZUJsb2IsIGluZm8sIGhhbmRsZXIsIHByb2Nlc3Nvcn0sIHN1Y2Nlc3MsIGVycm9yKSA9PlxuICAgIGhhbmRsZXIoZmlsZUJsb2IsIHByb2Nlc3NvcilcbiAgICAgIC50aGVuKHJlc3VsdCA9PiB7XG4gICAgICAgIGlmICghcmVzdWx0KSB7XG4gICAgICAgICAgLy8gVE9ETzogY2FwdHVyZSBpbiB0aGUgVUkgYW5kIHNob3cgbWVzc2FnZVxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignZmFpbCB0byBsb2FkIGRhdGEnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyB3ZSBhcmUgdHJ5aW5nIHRvIHN0YW5kYXJkaXplIHRoZSBzaGFwZSBvZiBvdXIgcmV0dXJuXG4gICAgICAgICAgLy8gc2luY2Ugd2Ugc3RhcnQgdXNpbmcgdGhlIGtlcGxlci5qc29uIGZvcm1hdFxuICAgICAgICAgIC8vIHJlc3VsdCBoYXMgYm90aCBkYXRhc2V0cyBhbmQgaW5mb1xuICAgICAgICAgIC8vIFRPRE86IEkgdGhpbmsgd2Ugc2hvdWxkIHBhc3MgaW5mbyB0byB0aGUgaGFuZGxlciBhbmQgcmV0dXJuXG4gICAgICAgICAgLy8gdGhlIHNhbWUgZm9ybWF0IGJhY2sgZnJvbSB0aGUgZmlsZSBoYW5kbGVyXG4gICAgICAgICAgaWYgKHJlc3VsdC5kYXRhc2V0cykgeyAvLyB0aGlzIGlzIGNvbWluZyBmcm9tIHBhcnNpbmcga2VwbGVyZ2wuanNvbiBmaWxlXG4gICAgICAgICAgICBzdWNjZXNzKHJlc3VsdCk7IC8vIGluZm8gaXMgYWxyZWFkeSBwYXJ0IG9mIGRhdGFzZXRzXG4gICAgICAgICAgfVxuICAgICAgICAgIHN1Y2Nlc3Moe2RhdGFzZXRzOiB7ZGF0YTogcmVzdWx0LCBpbmZvfX0pO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgLmNhdGNoKGVyciA9PiBlcnJvcihlcnIpKSxcblxuICAnTE9BRF9GSUxFX1RBU0snXG4pO1xuXG5leHBvcnQgY29uc3QgTE9BRF9NQVBfU1RZTEVfVEFTSyA9IHRhc2tDcmVhdG9yKFxuICAoe3VybCwgaWR9LCBzdWNjZXNzLCBlcnJvcikgPT5cbiAgICByZXF1ZXN0SnNvbih1cmwsIChlcnIsIHJlc3VsdCkgPT4ge1xuICAgICAgaWYgKGVycikge1xuICAgICAgICBlcnJvcihlcnIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgICAgICBlcnJvcihuZXcgRXJyb3IoJ01hcCBzdHlsZSByZXNwb25zZSBpcyBlbXB0eScpKTtcbiAgICAgICAgfVxuICAgICAgICBzdWNjZXNzKHtpZCwgc3R5bGU6IHJlc3VsdH0pXG4gICAgICB9XG4gICAgfSksXG5cbiAgJ0xPQURfTUFQX1NUWUxFX1RBU0snXG4pO1xuIl19