kepler.gl
Version:
kepler.gl is a webgl based application to visualize large scale location data in the browser
62 lines (55 loc) • 7.98 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.pointToPolygonGeo = pointToPolygonGeo;
var _deck = require('deck.gl');
/**
* 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
};
} // 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.
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYXllcnMvZ3JpZC1sYXllci9ncmlkLXV0aWxzLmpzIl0sIm5hbWVzIjpbInBvaW50VG9Qb2x5Z29uR2VvIiwib2JqZWN0IiwiY2VsbFNpemUiLCJjb3ZlcmFnZSIsInByb3BlcnRpZXMiLCJtYXBTdGF0ZSIsInBvc2l0aW9uIiwidmlld3BvcnQiLCJXZWJNZXJjYXRvclZpZXdwb3J0IiwiZ2VvbWV0cnkiLCJjb29yZGluYXRlcyIsImFkZE1ldGVyc1RvTG5nTGF0IiwidHlwZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7UUFrQ2dCQSxpQixHQUFBQSxpQjs7QUFkaEI7O0FBRUE7Ozs7Ozs7Ozs7O0FBV0E7QUFDTyxTQUFTQSxpQkFBVCxPQU1KO0FBQUEsTUFMREMsTUFLQyxRQUxEQSxNQUtDO0FBQUEsTUFKREMsUUFJQyxRQUpEQSxRQUlDO0FBQUEsTUFIREMsUUFHQyxRQUhEQSxRQUdDO0FBQUEsTUFGREMsVUFFQyxRQUZEQSxVQUVDO0FBQUEsTUFEREMsUUFDQyxRQUREQSxRQUNDO0FBQUEsTUFDTUMsUUFETixHQUNrQkwsTUFEbEIsQ0FDTUssUUFETjs7QUFFRCxNQUFNQyxXQUFXLElBQUlDLHlCQUFKLENBQXdCSCxRQUF4QixDQUFqQjs7QUFFQSxNQUFJLENBQUNDLFFBQUwsRUFBZTtBQUNiLFdBQU8sSUFBUDtBQUNEOztBQUVELFNBQU87QUFDTEcsY0FBVTtBQUNSQyxtQkFBYSxDQUNYSCxTQUFTSSxpQkFBVCxDQUEyQkwsUUFBM0IsRUFBcUMsQ0FDbkNKLFlBQVksTUFBTUMsV0FBVyxDQUE3QixDQURtQyxFQUVuQ0QsWUFBWSxNQUFNQyxXQUFXLENBQTdCLENBRm1DLENBQXJDLENBRFcsRUFLWEksU0FBU0ksaUJBQVQsQ0FBMkJMLFFBQTNCLEVBQXFDLENBQ25DSixZQUFZLE1BQU1DLFdBQVcsQ0FBN0IsQ0FEbUMsRUFFbkNELFlBQVksTUFBTUMsV0FBVyxDQUE3QixDQUZtQyxDQUFyQyxDQUxXLEVBU1hJLFNBQVNJLGlCQUFULENBQTJCTCxRQUEzQixFQUFxQyxDQUNuQ0osWUFBWSxNQUFNQyxXQUFXLENBQTdCLENBRG1DLEVBRW5DRCxZQUFZLE1BQU1DLFdBQVcsQ0FBN0IsQ0FGbUMsQ0FBckMsQ0FUVyxFQWFYSSxTQUFTSSxpQkFBVCxDQUEyQkwsUUFBM0IsRUFBcUMsQ0FDbkNKLFlBQVksTUFBTUMsV0FBVyxDQUE3QixDQURtQyxFQUVuQ0QsWUFBWSxNQUFNQyxXQUFXLENBQTdCLENBRm1DLENBQXJDLENBYlcsRUFpQlhJLFNBQVNJLGlCQUFULENBQTJCTCxRQUEzQixFQUFxQyxDQUNuQ0osWUFBWSxNQUFNQyxXQUFXLENBQTdCLENBRG1DLEVBRW5DRCxZQUFZLE1BQU1DLFdBQVcsQ0FBN0IsQ0FGbUMsQ0FBckMsQ0FqQlcsQ0FETDtBQXVCUlMsWUFBTTtBQXZCRSxLQURMO0FBMEJMUjtBQTFCSyxHQUFQO0FBNEJELEMsQ0E1RUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiZ3JpZC11dGlscy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAxOCBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCB7V2ViTWVyY2F0b3JWaWV3cG9ydH0gZnJvbSAnZGVjay5nbCc7XG5cbi8qKlxuICogdG9wIGxlZnQgb2YgdGhlIGdyaWQgdG8gYSBzcXVhcmUgcG9seWdvbiBmb3IgdGhlIGhvdmVyIGxheWVyXG4gKiBhbmQgY3VycmVudCBsYXRpdHVkZVxuICogQHBhcmFtIHtvYmplY3R9IG9iamVjdFxuICogQHBhcmFtIHtudW1iZXJ9IGNlbGxTaXplXG4gKiBAcGFyYW0ge251bWJlcn0gY292ZXJhZ2VcbiAqIEBwYXJhbSB7b2JqZWN0fSBwcm9wZXJ0aWVzXG4gKiBAcGFyYW0ge29iamVjdH0gbWFwU3RhdGVcbiAqIEByZXR1cm5zIHtvYmplY3R9IC0gZ2VvanNvbiBmZWF0dXJlXG4gKi9cblxuLy8gVE9ETzogVEVTVFxuZXhwb3J0IGZ1bmN0aW9uIHBvaW50VG9Qb2x5Z29uR2VvKHtcbiAgb2JqZWN0LFxuICBjZWxsU2l6ZSxcbiAgY292ZXJhZ2UsXG4gIHByb3BlcnRpZXMsXG4gIG1hcFN0YXRlXG59KSB7XG4gIGNvbnN0IHtwb3NpdGlvbn0gPSBvYmplY3Q7XG4gIGNvbnN0IHZpZXdwb3J0ID0gbmV3IFdlYk1lcmNhdG9yVmlld3BvcnQobWFwU3RhdGUpO1xuXG4gIGlmICghcG9zaXRpb24pIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZ2VvbWV0cnk6IHtcbiAgICAgIGNvb3JkaW5hdGVzOiBbXG4gICAgICAgIHZpZXdwb3J0LmFkZE1ldGVyc1RvTG5nTGF0KHBvc2l0aW9uLCBbXG4gICAgICAgICAgY2VsbFNpemUgKiAoMC41IC0gY292ZXJhZ2UgLyAyKSxcbiAgICAgICAgICBjZWxsU2l6ZSAqICgwLjUgLSBjb3ZlcmFnZSAvIDIpXG4gICAgICAgIF0pLFxuICAgICAgICB2aWV3cG9ydC5hZGRNZXRlcnNUb0xuZ0xhdChwb3NpdGlvbiwgW1xuICAgICAgICAgIGNlbGxTaXplICogKDAuNSArIGNvdmVyYWdlIC8gMiksXG4gICAgICAgICAgY2VsbFNpemUgKiAoMC41IC0gY292ZXJhZ2UgLyAyKVxuICAgICAgICBdKSxcbiAgICAgICAgdmlld3BvcnQuYWRkTWV0ZXJzVG9MbmdMYXQocG9zaXRpb24sIFtcbiAgICAgICAgICBjZWxsU2l6ZSAqICgwLjUgKyBjb3ZlcmFnZSAvIDIpLFxuICAgICAgICAgIGNlbGxTaXplICogKDAuNSArIGNvdmVyYWdlIC8gMilcbiAgICAgICAgXSksXG4gICAgICAgIHZpZXdwb3J0LmFkZE1ldGVyc1RvTG5nTGF0KHBvc2l0aW9uLCBbXG4gICAgICAgICAgY2VsbFNpemUgKiAoMC41IC0gY292ZXJhZ2UgLyAyKSxcbiAgICAgICAgICBjZWxsU2l6ZSAqICgwLjUgKyBjb3ZlcmFnZSAvIDIpXG4gICAgICAgIF0pLFxuICAgICAgICB2aWV3cG9ydC5hZGRNZXRlcnNUb0xuZ0xhdChwb3NpdGlvbiwgW1xuICAgICAgICAgIGNlbGxTaXplICogKDAuNSAtIGNvdmVyYWdlIC8gMiksXG4gICAgICAgICAgY2VsbFNpemUgKiAoMC41IC0gY292ZXJhZ2UgLyAyKVxuICAgICAgICBdKVxuICAgICAgXSxcbiAgICAgIHR5cGU6ICdMaW5lU3RyaW5nJ1xuICAgIH0sXG4gICAgcHJvcGVydGllc1xuICB9O1xufVxuIl19
;