UNPKG

kepler.gl

Version:

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

53 lines (49 loc) 7.04 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.findMapBounds = findMapBounds; exports.processLayerBounds = processLayerBounds; var _src = require("/Users/ihordykhta/Desktop/unfolded/kepler.gl/src/utils/src"); // SPDX-License-Identifier: MIT // Copyright contributors to the kepler.gl project /** * takes a list of layer bounds and returns a single bound */ function processLayerBounds(layerBounds) { return layerBounds.reduce(function (res, b) { var minLongitude = Math.min(res[0], b[0]); var minLatitude = Math.min(res[1], b[1]); var maxLongitude = Math.max(res[2], b[2]); var maxLatitude = Math.max(res[3], b[3]); // for some reason WebMercatorViewport can't handle latitude -90,90 and throws an error // so we default to lat/lng (0,0) // viewport.js:81 Uncaught Error: Pixel project matrix not invertible // at WebMercatorViewport16.Viewport5 (viewport.js:81:13) // at new WebMercatorViewport16 (web-mercator-viewport.js:92:5) // at getViewportFromMapState (map-utils.js:46:66) return [(0, _src.validateLongitude)(minLongitude), (0, _src.validateLatitude)(minLatitude), (0, _src.validateLongitude)(maxLongitude), (0, _src.validateLatitude)(maxLatitude)]; }, [_src.MAX_LONGITUDE, _src.MAX_LATITUDE, _src.MIN_LONGITUDE, _src.MIN_LATITUDE]); } /** * return center of map from given points * @param layers * @returns coordinates of map center, empty if not found */ function findMapBounds(layers) { // find bounds in formatted layerData // take ALL layers into account when finding map bounds var availableLayerBounds = layers.reduce(function (res, l) { if (l.meta && l.meta.bounds) { res.push(l.meta.bounds); } return res; }, []); // return null if no layer is available if (availableLayerBounds.length === 0) { return null; } // merge bounds in each layer return processLayerBounds(availableLayerBounds); } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfc3JjIiwicmVxdWlyZSIsInByb2Nlc3NMYXllckJvdW5kcyIsImxheWVyQm91bmRzIiwicmVkdWNlIiwicmVzIiwiYiIsIm1pbkxvbmdpdHVkZSIsIk1hdGgiLCJtaW4iLCJtaW5MYXRpdHVkZSIsIm1heExvbmdpdHVkZSIsIm1heCIsIm1heExhdGl0dWRlIiwidmFsaWRhdGVMb25naXR1ZGUiLCJ2YWxpZGF0ZUxhdGl0dWRlIiwiTUFYX0xPTkdJVFVERSIsIk1BWF9MQVRJVFVERSIsIk1JTl9MT05HSVRVREUiLCJNSU5fTEFUSVRVREUiLCJmaW5kTWFwQm91bmRzIiwibGF5ZXJzIiwiYXZhaWxhYmxlTGF5ZXJCb3VuZHMiLCJsIiwibWV0YSIsImJvdW5kcyIsInB1c2giLCJsZW5ndGgiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVkdWNlcnMvc3JjL2RhdGEtdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtCb3VuZHN9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtMYXllcn0gZnJvbSAnQGtlcGxlci5nbC9sYXllcnMnO1xuaW1wb3J0IHtcbiAgTUFYX0xBVElUVURFLFxuICBNSU5fTEFUSVRVREUsXG4gIE1BWF9MT05HSVRVREUsXG4gIE1JTl9MT05HSVRVREUsXG4gIHZhbGlkYXRlTG9uZ2l0dWRlLFxuICB2YWxpZGF0ZUxhdGl0dWRlXG59IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuXG4vKipcbiAqIHRha2VzIGEgbGlzdCBvZiBsYXllciBib3VuZHMgYW5kIHJldHVybnMgYSBzaW5nbGUgYm91bmRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb2Nlc3NMYXllckJvdW5kcyhsYXllckJvdW5kczogQm91bmRzW10pOiBCb3VuZHMge1xuICByZXR1cm4gbGF5ZXJCb3VuZHMucmVkdWNlKFxuICAgIChyZXMsIGIpID0+IHtcbiAgICAgIGNvbnN0IG1pbkxvbmdpdHVkZSA9IE1hdGgubWluKHJlc1swXSwgYlswXSk7XG4gICAgICBjb25zdCBtaW5MYXRpdHVkZSA9IE1hdGgubWluKHJlc1sxXSwgYlsxXSk7XG4gICAgICBjb25zdCBtYXhMb25naXR1ZGUgPSBNYXRoLm1heChyZXNbMl0sIGJbMl0pO1xuICAgICAgY29uc3QgbWF4TGF0aXR1ZGUgPSBNYXRoLm1heChyZXNbM10sIGJbM10pO1xuXG4gICAgICAvLyBmb3Igc29tZSByZWFzb24gV2ViTWVyY2F0b3JWaWV3cG9ydCBjYW4ndCBoYW5kbGUgbGF0aXR1ZGUgLTkwLDkwIGFuZCB0aHJvd3MgYW4gZXJyb3JcbiAgICAgIC8vIHNvIHdlIGRlZmF1bHQgdG8gbGF0L2xuZyAoMCwwKVxuICAgICAgLy8gdmlld3BvcnQuanM6ODEgVW5jYXVnaHQgRXJyb3I6IFBpeGVsIHByb2plY3QgbWF0cml4IG5vdCBpbnZlcnRpYmxlXG4gICAgICAvLyBhdCBXZWJNZXJjYXRvclZpZXdwb3J0MTYuVmlld3BvcnQ1ICh2aWV3cG9ydC5qczo4MToxMylcbiAgICAgIC8vIGF0IG5ldyBXZWJNZXJjYXRvclZpZXdwb3J0MTYgKHdlYi1tZXJjYXRvci12aWV3cG9ydC5qczo5Mjo1KVxuICAgICAgLy8gYXQgZ2V0Vmlld3BvcnRGcm9tTWFwU3RhdGUgKG1hcC11dGlscy5qczo0Njo2NilcbiAgICAgIHJldHVybiBbXG4gICAgICAgIHZhbGlkYXRlTG9uZ2l0dWRlKG1pbkxvbmdpdHVkZSksXG4gICAgICAgIHZhbGlkYXRlTGF0aXR1ZGUobWluTGF0aXR1ZGUpLFxuICAgICAgICB2YWxpZGF0ZUxvbmdpdHVkZShtYXhMb25naXR1ZGUpLFxuICAgICAgICB2YWxpZGF0ZUxhdGl0dWRlKG1heExhdGl0dWRlKVxuICAgICAgXTtcbiAgICB9LFxuICAgIFtNQVhfTE9OR0lUVURFLCBNQVhfTEFUSVRVREUsIE1JTl9MT05HSVRVREUsIE1JTl9MQVRJVFVERV1cbiAgKTtcbn1cblxuLyoqXG4gKiByZXR1cm4gY2VudGVyIG9mIG1hcCBmcm9tIGdpdmVuIHBvaW50c1xuICogQHBhcmFtIGxheWVyc1xuICogQHJldHVybnMgY29vcmRpbmF0ZXMgb2YgbWFwIGNlbnRlciwgZW1wdHkgaWYgbm90IGZvdW5kXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kTWFwQm91bmRzKGxheWVyczogTGF5ZXJbXSk6IEJvdW5kcyB8IG51bGwge1xuICAvLyBmaW5kIGJvdW5kcyBpbiBmb3JtYXR0ZWQgbGF5ZXJEYXRhXG4gIC8vIHRha2UgQUxMIGxheWVycyBpbnRvIGFjY291bnQgd2hlbiBmaW5kaW5nIG1hcCBib3VuZHNcbiAgY29uc3QgYXZhaWxhYmxlTGF5ZXJCb3VuZHMgPSBsYXllcnMucmVkdWNlKChyZXMsIGwpID0+IHtcbiAgICBpZiAobC5tZXRhICYmIGwubWV0YS5ib3VuZHMpIHtcbiAgICAgIHJlcy5wdXNoKGwubWV0YS5ib3VuZHMpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzO1xuICB9LCBbXSBhcyBCb3VuZHNbXSk7XG4gIC8vIHJldHVybiBudWxsIGlmIG5vIGxheWVyIGlzIGF2YWlsYWJsZVxuICBpZiAoYXZhaWxhYmxlTGF5ZXJCb3VuZHMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgLy8gbWVyZ2UgYm91bmRzIGluIGVhY2ggbGF5ZXJcbiAgcmV0dXJuIHByb2Nlc3NMYXllckJvdW5kcyhhdmFpbGFibGVMYXllckJvdW5kcyk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFLQSxJQUFBQSxJQUFBLEdBQUFDLE9BQUE7QUFMQTtBQUNBOztBQWFBO0FBQ0E7QUFDQTtBQUNPLFNBQVNDLGtCQUFrQkEsQ0FBQ0MsV0FBcUIsRUFBVTtFQUNoRSxPQUFPQSxXQUFXLENBQUNDLE1BQU0sQ0FDdkIsVUFBQ0MsR0FBRyxFQUFFQyxDQUFDLEVBQUs7SUFDVixJQUFNQyxZQUFZLEdBQUdDLElBQUksQ0FBQ0MsR0FBRyxDQUFDSixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUVDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzQyxJQUFNSSxXQUFXLEdBQUdGLElBQUksQ0FBQ0MsR0FBRyxDQUFDSixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUVDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxQyxJQUFNSyxZQUFZLEdBQUdILElBQUksQ0FBQ0ksR0FBRyxDQUFDUCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUVDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzQyxJQUFNTyxXQUFXLEdBQUdMLElBQUksQ0FBQ0ksR0FBRyxDQUFDUCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUVDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzs7SUFFMUM7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0EsT0FBTyxDQUNMLElBQUFRLHNCQUFpQixFQUFDUCxZQUFZLENBQUMsRUFDL0IsSUFBQVEscUJBQWdCLEVBQUNMLFdBQVcsQ0FBQyxFQUM3QixJQUFBSSxzQkFBaUIsRUFBQ0gsWUFBWSxDQUFDLEVBQy9CLElBQUFJLHFCQUFnQixFQUFDRixXQUFXLENBQUMsQ0FDOUI7RUFDSCxDQUFDLEVBQ0QsQ0FBQ0csa0JBQWEsRUFBRUMsaUJBQVksRUFBRUMsa0JBQWEsRUFBRUMsaUJBQVksQ0FDM0QsQ0FBQztBQUNIOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyxTQUFTQyxhQUFhQSxDQUFDQyxNQUFlLEVBQWlCO0VBQzVEO0VBQ0E7RUFDQSxJQUFNQyxvQkFBb0IsR0FBR0QsTUFBTSxDQUFDakIsTUFBTSxDQUFDLFVBQUNDLEdBQUcsRUFBRWtCLENBQUMsRUFBSztJQUNyRCxJQUFJQSxDQUFDLENBQUNDLElBQUksSUFBSUQsQ0FBQyxDQUFDQyxJQUFJLENBQUNDLE1BQU0sRUFBRTtNQUMzQnBCLEdBQUcsQ0FBQ3FCLElBQUksQ0FBQ0gsQ0FBQyxDQUFDQyxJQUFJLENBQUNDLE1BQU0sQ0FBQztJQUN6QjtJQUNBLE9BQU9wQixHQUFHO0VBQ1osQ0FBQyxFQUFFLEVBQWMsQ0FBQztFQUNsQjtFQUNBLElBQUlpQixvQkFBb0IsQ0FBQ0ssTUFBTSxLQUFLLENBQUMsRUFBRTtJQUNyQyxPQUFPLElBQUk7RUFDYjtFQUNBO0VBQ0EsT0FBT3pCLGtCQUFrQixDQUFDb0Isb0JBQW9CLENBQUM7QUFDakQiLCJpZ25vcmVMaXN0IjpbXX0=