UNPKG

kepler.gl

Version:

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

62 lines (56 loc) 8.18 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.pointToPolygonGeo = pointToPolygonGeo; var _core = require("@deck.gl/core"); // Copyright (c) 2020 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 _core.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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYXllcnMvZ3JpZC1sYXllci9ncmlkLXV0aWxzLmpzIl0sIm5hbWVzIjpbInBvaW50VG9Qb2x5Z29uR2VvIiwib2JqZWN0IiwiY2VsbFNpemUiLCJjb3ZlcmFnZSIsInByb3BlcnRpZXMiLCJtYXBTdGF0ZSIsInBvc2l0aW9uIiwidmlld3BvcnQiLCJXZWJNZXJjYXRvclZpZXdwb3J0IiwiZ2VvbWV0cnkiLCJjb29yZGluYXRlcyIsImFkZE1ldGVyc1RvTG5nTGF0IiwidHlwZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQW9CQTs7QUFwQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBSUE7Ozs7Ozs7Ozs7QUFXQTtBQUNPLFNBQVNBLGlCQUFULE9BQStFO0FBQUEsTUFBbkRDLE1BQW1ELFFBQW5EQSxNQUFtRDtBQUFBLE1BQTNDQyxRQUEyQyxRQUEzQ0EsUUFBMkM7QUFBQSxNQUFqQ0MsUUFBaUMsUUFBakNBLFFBQWlDO0FBQUEsTUFBdkJDLFVBQXVCLFFBQXZCQSxVQUF1QjtBQUFBLE1BQVhDLFFBQVcsUUFBWEEsUUFBVztBQUFBLE1BQzdFQyxRQUQ2RSxHQUNqRUwsTUFEaUUsQ0FDN0VLLFFBRDZFO0FBRXBGLE1BQU1DLFFBQVEsR0FBRyxJQUFJQyx5QkFBSixDQUF3QkgsUUFBeEIsQ0FBakI7O0FBRUEsTUFBSSxDQUFDQyxRQUFMLEVBQWU7QUFDYixXQUFPLElBQVA7QUFDRDs7QUFFRCxTQUFPO0FBQ0xHLElBQUFBLFFBQVEsRUFBRTtBQUNSQyxNQUFBQSxXQUFXLEVBQUUsQ0FDWEgsUUFBUSxDQUFDSSxpQkFBVCxDQUEyQkwsUUFBM0IsRUFBcUMsQ0FDbkNKLFFBQVEsSUFBSSxNQUFNQyxRQUFRLEdBQUcsQ0FBckIsQ0FEMkIsRUFFbkNELFFBQVEsSUFBSSxNQUFNQyxRQUFRLEdBQUcsQ0FBckIsQ0FGMkIsQ0FBckMsQ0FEVyxFQUtYSSxRQUFRLENBQUNJLGlCQUFULENBQTJCTCxRQUEzQixFQUFxQyxDQUNuQ0osUUFBUSxJQUFJLE1BQU1DLFFBQVEsR0FBRyxDQUFyQixDQUQyQixFQUVuQ0QsUUFBUSxJQUFJLE1BQU1DLFFBQVEsR0FBRyxDQUFyQixDQUYyQixDQUFyQyxDQUxXLEVBU1hJLFFBQVEsQ0FBQ0ksaUJBQVQsQ0FBMkJMLFFBQTNCLEVBQXFDLENBQ25DSixRQUFRLElBQUksTUFBTUMsUUFBUSxHQUFHLENBQXJCLENBRDJCLEVBRW5DRCxRQUFRLElBQUksTUFBTUMsUUFBUSxHQUFHLENBQXJCLENBRjJCLENBQXJDLENBVFcsRUFhWEksUUFBUSxDQUFDSSxpQkFBVCxDQUEyQkwsUUFBM0IsRUFBcUMsQ0FDbkNKLFFBQVEsSUFBSSxNQUFNQyxRQUFRLEdBQUcsQ0FBckIsQ0FEMkIsRUFFbkNELFFBQVEsSUFBSSxNQUFNQyxRQUFRLEdBQUcsQ0FBckIsQ0FGMkIsQ0FBckMsQ0FiVyxFQWlCWEksUUFBUSxDQUFDSSxpQkFBVCxDQUEyQkwsUUFBM0IsRUFBcUMsQ0FDbkNKLFFBQVEsSUFBSSxNQUFNQyxRQUFRLEdBQUcsQ0FBckIsQ0FEMkIsRUFFbkNELFFBQVEsSUFBSSxNQUFNQyxRQUFRLEdBQUcsQ0FBckIsQ0FGMkIsQ0FBckMsQ0FqQlcsQ0FETDtBQXVCUlMsTUFBQUEsSUFBSSxFQUFFO0FBdkJFLEtBREw7QUEwQkxSLElBQUFBLFVBQVUsRUFBVkE7QUExQkssR0FBUDtBQTRCRCIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMCBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCB7V2ViTWVyY2F0b3JWaWV3cG9ydH0gZnJvbSAnQGRlY2suZ2wvY29yZSc7XG5cbi8qKlxuICogdG9wIGxlZnQgb2YgdGhlIGdyaWQgdG8gYSBzcXVhcmUgcG9seWdvbiBmb3IgdGhlIGhvdmVyIGxheWVyXG4gKiBhbmQgY3VycmVudCBsYXRpdHVkZVxuICogQHBhcmFtIHtvYmplY3R9IG9iamVjdFxuICogQHBhcmFtIHtudW1iZXJ9IGNlbGxTaXplXG4gKiBAcGFyYW0ge251bWJlcn0gY292ZXJhZ2VcbiAqIEBwYXJhbSB7b2JqZWN0fSBwcm9wZXJ0aWVzXG4gKiBAcGFyYW0ge29iamVjdH0gbWFwU3RhdGVcbiAqIEByZXR1cm5zIHtvYmplY3R9IC0gZ2VvanNvbiBmZWF0dXJlXG4gKi9cblxuLy8gVE9ETzogVEVTVFxuZXhwb3J0IGZ1bmN0aW9uIHBvaW50VG9Qb2x5Z29uR2VvKHtvYmplY3QsIGNlbGxTaXplLCBjb3ZlcmFnZSwgcHJvcGVydGllcywgbWFwU3RhdGV9KSB7XG4gIGNvbnN0IHtwb3NpdGlvbn0gPSBvYmplY3Q7XG4gIGNvbnN0IHZpZXdwb3J0ID0gbmV3IFdlYk1lcmNhdG9yVmlld3BvcnQobWFwU3RhdGUpO1xuXG4gIGlmICghcG9zaXRpb24pIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZ2VvbWV0cnk6IHtcbiAgICAgIGNvb3JkaW5hdGVzOiBbXG4gICAgICAgIHZpZXdwb3J0LmFkZE1ldGVyc1RvTG5nTGF0KHBvc2l0aW9uLCBbXG4gICAgICAgICAgY2VsbFNpemUgKiAoMC41IC0gY292ZXJhZ2UgLyAyKSxcbiAgICAgICAgICBjZWxsU2l6ZSAqICgwLjUgLSBjb3ZlcmFnZSAvIDIpXG4gICAgICAgIF0pLFxuICAgICAgICB2aWV3cG9ydC5hZGRNZXRlcnNUb0xuZ0xhdChwb3NpdGlvbiwgW1xuICAgICAgICAgIGNlbGxTaXplICogKDAuNSArIGNvdmVyYWdlIC8gMiksXG4gICAgICAgICAgY2VsbFNpemUgKiAoMC41IC0gY292ZXJhZ2UgLyAyKVxuICAgICAgICBdKSxcbiAgICAgICAgdmlld3BvcnQuYWRkTWV0ZXJzVG9MbmdMYXQocG9zaXRpb24sIFtcbiAgICAgICAgICBjZWxsU2l6ZSAqICgwLjUgKyBjb3ZlcmFnZSAvIDIpLFxuICAgICAgICAgIGNlbGxTaXplICogKDAuNSArIGNvdmVyYWdlIC8gMilcbiAgICAgICAgXSksXG4gICAgICAgIHZpZXdwb3J0LmFkZE1ldGVyc1RvTG5nTGF0KHBvc2l0aW9uLCBbXG4gICAgICAgICAgY2VsbFNpemUgKiAoMC41IC0gY292ZXJhZ2UgLyAyKSxcbiAgICAgICAgICBjZWxsU2l6ZSAqICgwLjUgKyBjb3ZlcmFnZSAvIDIpXG4gICAgICAgIF0pLFxuICAgICAgICB2aWV3cG9ydC5hZGRNZXRlcnNUb0xuZ0xhdChwb3NpdGlvbiwgW1xuICAgICAgICAgIGNlbGxTaXplICogKDAuNSAtIGNvdmVyYWdlIC8gMiksXG4gICAgICAgICAgY2VsbFNpemUgKiAoMC41IC0gY292ZXJhZ2UgLyAyKVxuICAgICAgICBdKVxuICAgICAgXSxcbiAgICAgIHR5cGU6ICdMaW5lU3RyaW5nJ1xuICAgIH0sXG4gICAgcHJvcGVydGllc1xuICB9O1xufVxuIl19