UNPKG

kepler.gl

Version:

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

64 lines (51 loc) 7.08 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.hexagonToPolygonGeo = hexagonToPolygonGeo; var _deck = require('deck.gl'); function hexagonToPolygonGeo(_ref, properties, radius, mapState) { var object = _ref.object; var viewport = new _deck.WebMercatorViewport(mapState); var screenCenter = viewport.projectFlat(object.centroid); var _viewport$getDistance = viewport.getDistanceScales(), pixelsPerMeter = _viewport$getDistance.pixelsPerMeter; var pixRadius = radius * pixelsPerMeter[0]; var coordinates = []; for (var i = 0; i < 6; i++) { var vertex = hex_corner(screenCenter, pixRadius, i); coordinates.push(viewport.unprojectFlat(vertex)); } coordinates.push(coordinates[0]); return { geometry: { coordinates: coordinates, type: 'LineString' }, properties: properties }; } // Copyright (c) 2018 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. function hex_corner(center, radius, i) { var angle_deg = 60 * i + 30; var angle_rad = Math.PI / 180 * angle_deg; return [center[0] + radius * Math.cos(angle_rad), center[1] + radius * Math.sin(angle_rad)]; } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYXllcnMvaGV4YWdvbi1sYXllci9oZXhhZ29uLXV0aWxzLmpzIl0sIm5hbWVzIjpbImhleGFnb25Ub1BvbHlnb25HZW8iLCJwcm9wZXJ0aWVzIiwicmFkaXVzIiwibWFwU3RhdGUiLCJvYmplY3QiLCJ2aWV3cG9ydCIsIldlYk1lcmNhdG9yVmlld3BvcnQiLCJzY3JlZW5DZW50ZXIiLCJwcm9qZWN0RmxhdCIsImNlbnRyb2lkIiwiZ2V0RGlzdGFuY2VTY2FsZXMiLCJwaXhlbHNQZXJNZXRlciIsInBpeFJhZGl1cyIsImNvb3JkaW5hdGVzIiwiaSIsInZlcnRleCIsImhleF9jb3JuZXIiLCJwdXNoIiwidW5wcm9qZWN0RmxhdCIsImdlb21ldHJ5IiwidHlwZSIsImNlbnRlciIsImFuZ2xlX2RlZyIsImFuZ2xlX3JhZCIsIk1hdGgiLCJQSSIsImNvcyIsInNpbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7UUFzQmdCQSxtQixHQUFBQSxtQjs7QUFGaEI7O0FBRU8sU0FBU0EsbUJBQVQsT0FBdUNDLFVBQXZDLEVBQW1EQyxNQUFuRCxFQUEyREMsUUFBM0QsRUFBcUU7QUFBQSxNQUF2Q0MsTUFBdUMsUUFBdkNBLE1BQXVDOztBQUMxRSxNQUFNQyxXQUFXLElBQUlDLHlCQUFKLENBQXdCSCxRQUF4QixDQUFqQjs7QUFFQSxNQUFNSSxlQUFlRixTQUFTRyxXQUFULENBQXFCSixPQUFPSyxRQUE1QixDQUFyQjs7QUFIMEUsOEJBSWpESixTQUFTSyxpQkFBVCxFQUppRDtBQUFBLE1BSW5FQyxjQUptRSx5QkFJbkVBLGNBSm1FOztBQUsxRSxNQUFNQyxZQUFZVixTQUFTUyxlQUFlLENBQWYsQ0FBM0I7O0FBRUEsTUFBTUUsY0FBYyxFQUFwQjs7QUFFQSxPQUFLLElBQUlDLElBQUksQ0FBYixFQUFnQkEsSUFBSSxDQUFwQixFQUF1QkEsR0FBdkIsRUFBNEI7QUFDMUIsUUFBTUMsU0FBU0MsV0FBV1QsWUFBWCxFQUF5QkssU0FBekIsRUFBb0NFLENBQXBDLENBQWY7QUFDQUQsZ0JBQVlJLElBQVosQ0FBaUJaLFNBQVNhLGFBQVQsQ0FBdUJILE1BQXZCLENBQWpCO0FBQ0Q7O0FBRURGLGNBQVlJLElBQVosQ0FBaUJKLFlBQVksQ0FBWixDQUFqQjs7QUFFQSxTQUFPO0FBQ0xNLGNBQVU7QUFDUk4sOEJBRFE7QUFFUk8sWUFBTTtBQUZFLEtBREw7QUFLTG5CO0FBTEssR0FBUDtBQU9ELEMsQ0E3Q0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBNkJBLFNBQVNlLFVBQVQsQ0FBb0JLLE1BQXBCLEVBQTRCbkIsTUFBNUIsRUFBb0NZLENBQXBDLEVBQXVDO0FBQ3JDLE1BQU1RLFlBQVksS0FBS1IsQ0FBTCxHQUFTLEVBQTNCO0FBQ0EsTUFBTVMsWUFBWUMsS0FBS0MsRUFBTCxHQUFVLEdBQVYsR0FBZ0JILFNBQWxDOztBQUVBLFNBQU8sQ0FDTEQsT0FBTyxDQUFQLElBQVluQixTQUFTc0IsS0FBS0UsR0FBTCxDQUFTSCxTQUFULENBRGhCLEVBRUxGLE9BQU8sQ0FBUCxJQUFZbkIsU0FBU3NCLEtBQUtHLEdBQUwsQ0FBU0osU0FBVCxDQUZoQixDQUFQO0FBSUQiLCJmaWxlIjoiaGV4YWdvbi11dGlscy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAxOCBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCB7V2ViTWVyY2F0b3JWaWV3cG9ydH0gZnJvbSAnZGVjay5nbCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBoZXhhZ29uVG9Qb2x5Z29uR2VvKHtvYmplY3R9LCBwcm9wZXJ0aWVzLCByYWRpdXMsIG1hcFN0YXRlKSB7XG4gIGNvbnN0IHZpZXdwb3J0ID0gbmV3IFdlYk1lcmNhdG9yVmlld3BvcnQobWFwU3RhdGUpO1xuXG4gIGNvbnN0IHNjcmVlbkNlbnRlciA9IHZpZXdwb3J0LnByb2plY3RGbGF0KG9iamVjdC5jZW50cm9pZCk7XG4gIGNvbnN0IHtwaXhlbHNQZXJNZXRlcn0gPSB2aWV3cG9ydC5nZXREaXN0YW5jZVNjYWxlcygpO1xuICBjb25zdCBwaXhSYWRpdXMgPSByYWRpdXMgKiBwaXhlbHNQZXJNZXRlclswXTtcblxuICBjb25zdCBjb29yZGluYXRlcyA9IFtdO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgNjsgaSsrKSB7XG4gICAgY29uc3QgdmVydGV4ID0gaGV4X2Nvcm5lcihzY3JlZW5DZW50ZXIsIHBpeFJhZGl1cywgaSk7XG4gICAgY29vcmRpbmF0ZXMucHVzaCh2aWV3cG9ydC51bnByb2plY3RGbGF0KHZlcnRleCkpO1xuICB9XG5cbiAgY29vcmRpbmF0ZXMucHVzaChjb29yZGluYXRlc1swXSk7XG5cbiAgcmV0dXJuIHtcbiAgICBnZW9tZXRyeToge1xuICAgICAgY29vcmRpbmF0ZXMsXG4gICAgICB0eXBlOiAnTGluZVN0cmluZydcbiAgICB9LFxuICAgIHByb3BlcnRpZXNcbiAgfTtcbn1cblxuZnVuY3Rpb24gaGV4X2Nvcm5lcihjZW50ZXIsIHJhZGl1cywgaSkge1xuICBjb25zdCBhbmdsZV9kZWcgPSA2MCAqIGkgKyAzMDtcbiAgY29uc3QgYW5nbGVfcmFkID0gTWF0aC5QSSAvIDE4MCAqIGFuZ2xlX2RlZztcblxuICByZXR1cm4gW1xuICAgIGNlbnRlclswXSArIHJhZGl1cyAqIE1hdGguY29zKGFuZ2xlX3JhZCksXG4gICAgY2VudGVyWzFdICsgcmFkaXVzICogTWF0aC5zaW4oYW5nbGVfcmFkKVxuICBdO1xufVxuIl19