UNPKG

kepler.gl.geoiq

Version:

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

62 lines (56 loc) 8.16 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.pointToPolygonGeo = pointToPolygonGeo; var _deck = require("deck.gl"); // 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. /** * top left of the grid to a square polygon for the hover layer * and current latitude * @param {object} object * @param {number} cellSize * @param {number} coverage * @param {object} properties * @param {object} mapState * @returns {object} - geojson feature */ // TODO: TEST function pointToPolygonGeo(_ref) { var object = _ref.object, cellSize = _ref.cellSize, coverage = _ref.coverage, properties = _ref.properties, mapState = _ref.mapState; var position = object.position; var viewport = new _deck.WebMercatorViewport(mapState); if (!position) { return null; } return { geometry: { coordinates: [viewport.addMetersToLngLat(position, [cellSize * (0.5 - coverage / 2), cellSize * (0.5 - coverage / 2)]), viewport.addMetersToLngLat(position, [cellSize * (0.5 + coverage / 2), cellSize * (0.5 - coverage / 2)]), viewport.addMetersToLngLat(position, [cellSize * (0.5 + coverage / 2), cellSize * (0.5 + coverage / 2)]), viewport.addMetersToLngLat(position, [cellSize * (0.5 - coverage / 2), cellSize * (0.5 + coverage / 2)]), viewport.addMetersToLngLat(position, [cellSize * (0.5 - coverage / 2), cellSize * (0.5 - coverage / 2)])], type: 'LineString' }, properties: properties }; } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYXllcnMvZ3JpZC1sYXllci9ncmlkLXV0aWxzLmpzIl0sIm5hbWVzIjpbInBvaW50VG9Qb2x5Z29uR2VvIiwib2JqZWN0IiwiY2VsbFNpemUiLCJjb3ZlcmFnZSIsInByb3BlcnRpZXMiLCJtYXBTdGF0ZSIsInBvc2l0aW9uIiwidmlld3BvcnQiLCJXZWJNZXJjYXRvclZpZXdwb3J0IiwiZ2VvbWV0cnkiLCJjb29yZGluYXRlcyIsImFkZE1ldGVyc1RvTG5nTGF0IiwidHlwZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQW9CQTs7QUFwQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBSUE7Ozs7Ozs7Ozs7QUFXQTtBQUNPLFNBQVNBLGlCQUFULE9BTUo7QUFBQSxNQUxEQyxNQUtDLFFBTERBLE1BS0M7QUFBQSxNQUpEQyxRQUlDLFFBSkRBLFFBSUM7QUFBQSxNQUhEQyxRQUdDLFFBSERBLFFBR0M7QUFBQSxNQUZEQyxVQUVDLFFBRkRBLFVBRUM7QUFBQSxNQUREQyxRQUNDLFFBRERBLFFBQ0M7QUFBQSxNQUNNQyxRQUROLEdBQ2tCTCxNQURsQixDQUNNSyxRQUROO0FBRUQsTUFBTUMsUUFBUSxHQUFHLElBQUlDLHlCQUFKLENBQXdCSCxRQUF4QixDQUFqQjs7QUFFQSxNQUFJLENBQUNDLFFBQUwsRUFBZTtBQUNiLFdBQU8sSUFBUDtBQUNEOztBQUVELFNBQU87QUFDTEcsSUFBQUEsUUFBUSxFQUFFO0FBQ1JDLE1BQUFBLFdBQVcsRUFBRSxDQUNYSCxRQUFRLENBQUNJLGlCQUFULENBQTJCTCxRQUEzQixFQUFxQyxDQUNuQ0osUUFBUSxJQUFJLE1BQU1DLFFBQVEsR0FBRyxDQUFyQixDQUQyQixFQUVuQ0QsUUFBUSxJQUFJLE1BQU1DLFFBQVEsR0FBRyxDQUFyQixDQUYyQixDQUFyQyxDQURXLEVBS1hJLFFBQVEsQ0FBQ0ksaUJBQVQsQ0FBMkJMLFFBQTNCLEVBQXFDLENBQ25DSixRQUFRLElBQUksTUFBTUMsUUFBUSxHQUFHLENBQXJCLENBRDJCLEVBRW5DRCxRQUFRLElBQUksTUFBTUMsUUFBUSxHQUFHLENBQXJCLENBRjJCLENBQXJDLENBTFcsRUFTWEksUUFBUSxDQUFDSSxpQkFBVCxDQUEyQkwsUUFBM0IsRUFBcUMsQ0FDbkNKLFFBQVEsSUFBSSxNQUFNQyxRQUFRLEdBQUcsQ0FBckIsQ0FEMkIsRUFFbkNELFFBQVEsSUFBSSxNQUFNQyxRQUFRLEdBQUcsQ0FBckIsQ0FGMkIsQ0FBckMsQ0FUVyxFQWFYSSxRQUFRLENBQUNJLGlCQUFULENBQTJCTCxRQUEzQixFQUFxQyxDQUNuQ0osUUFBUSxJQUFJLE1BQU1DLFFBQVEsR0FBRyxDQUFyQixDQUQyQixFQUVuQ0QsUUFBUSxJQUFJLE1BQU1DLFFBQVEsR0FBRyxDQUFyQixDQUYyQixDQUFyQyxDQWJXLEVBaUJYSSxRQUFRLENBQUNJLGlCQUFULENBQTJCTCxRQUEzQixFQUFxQyxDQUNuQ0osUUFBUSxJQUFJLE1BQU1DLFFBQVEsR0FBRyxDQUFyQixDQUQyQixFQUVuQ0QsUUFBUSxJQUFJLE1BQU1DLFFBQVEsR0FBRyxDQUFyQixDQUYyQixDQUFyQyxDQWpCVyxDQURMO0FBdUJSUyxNQUFBQSxJQUFJLEVBQUU7QUF2QkUsS0FETDtBQTBCTFIsSUFBQUEsVUFBVSxFQUFWQTtBQTFCSyxHQUFQO0FBNEJEIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDE5IFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IHtXZWJNZXJjYXRvclZpZXdwb3J0fSBmcm9tICdkZWNrLmdsJztcblxuLyoqXG4gKiB0b3AgbGVmdCBvZiB0aGUgZ3JpZCB0byBhIHNxdWFyZSBwb2x5Z29uIGZvciB0aGUgaG92ZXIgbGF5ZXJcbiAqIGFuZCBjdXJyZW50IGxhdGl0dWRlXG4gKiBAcGFyYW0ge29iamVjdH0gb2JqZWN0XG4gKiBAcGFyYW0ge251bWJlcn0gY2VsbFNpemVcbiAqIEBwYXJhbSB7bnVtYmVyfSBjb3ZlcmFnZVxuICogQHBhcmFtIHtvYmplY3R9IHByb3BlcnRpZXNcbiAqIEBwYXJhbSB7b2JqZWN0fSBtYXBTdGF0ZVxuICogQHJldHVybnMge29iamVjdH0gLSBnZW9qc29uIGZlYXR1cmVcbiAqL1xuXG4vLyBUT0RPOiBURVNUXG5leHBvcnQgZnVuY3Rpb24gcG9pbnRUb1BvbHlnb25HZW8oe1xuICBvYmplY3QsXG4gIGNlbGxTaXplLFxuICBjb3ZlcmFnZSxcbiAgcHJvcGVydGllcyxcbiAgbWFwU3RhdGVcbn0pIHtcbiAgY29uc3Qge3Bvc2l0aW9ufSA9IG9iamVjdDtcbiAgY29uc3Qgdmlld3BvcnQgPSBuZXcgV2ViTWVyY2F0b3JWaWV3cG9ydChtYXBTdGF0ZSk7XG5cbiAgaWYgKCFwb3NpdGlvbikge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBnZW9tZXRyeToge1xuICAgICAgY29vcmRpbmF0ZXM6IFtcbiAgICAgICAgdmlld3BvcnQuYWRkTWV0ZXJzVG9MbmdMYXQocG9zaXRpb24sIFtcbiAgICAgICAgICBjZWxsU2l6ZSAqICgwLjUgLSBjb3ZlcmFnZSAvIDIpLFxuICAgICAgICAgIGNlbGxTaXplICogKDAuNSAtIGNvdmVyYWdlIC8gMilcbiAgICAgICAgXSksXG4gICAgICAgIHZpZXdwb3J0LmFkZE1ldGVyc1RvTG5nTGF0KHBvc2l0aW9uLCBbXG4gICAgICAgICAgY2VsbFNpemUgKiAoMC41ICsgY292ZXJhZ2UgLyAyKSxcbiAgICAgICAgICBjZWxsU2l6ZSAqICgwLjUgLSBjb3ZlcmFnZSAvIDIpXG4gICAgICAgIF0pLFxuICAgICAgICB2aWV3cG9ydC5hZGRNZXRlcnNUb0xuZ0xhdChwb3NpdGlvbiwgW1xuICAgICAgICAgIGNlbGxTaXplICogKDAuNSArIGNvdmVyYWdlIC8gMiksXG4gICAgICAgICAgY2VsbFNpemUgKiAoMC41ICsgY292ZXJhZ2UgLyAyKVxuICAgICAgICBdKSxcbiAgICAgICAgdmlld3BvcnQuYWRkTWV0ZXJzVG9MbmdMYXQocG9zaXRpb24sIFtcbiAgICAgICAgICBjZWxsU2l6ZSAqICgwLjUgLSBjb3ZlcmFnZSAvIDIpLFxuICAgICAgICAgIGNlbGxTaXplICogKDAuNSArIGNvdmVyYWdlIC8gMilcbiAgICAgICAgXSksXG4gICAgICAgIHZpZXdwb3J0LmFkZE1ldGVyc1RvTG5nTGF0KHBvc2l0aW9uLCBbXG4gICAgICAgICAgY2VsbFNpemUgKiAoMC41IC0gY292ZXJhZ2UgLyAyKSxcbiAgICAgICAgICBjZWxsU2l6ZSAqICgwLjUgLSBjb3ZlcmFnZSAvIDIpXG4gICAgICAgIF0pXG4gICAgICBdLFxuICAgICAgdHlwZTogJ0xpbmVTdHJpbmcnXG4gICAgfSxcbiAgICBwcm9wZXJ0aWVzXG4gIH07XG59XG4iXX0=