kepler.gl.geoiq
Version:
kepler.gl is a webgl based application to visualize large scale location data in the browser
59 lines (53 loc) • 6.81 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.geoHashToPolygon = geoHashToPolygon;
var _ngeohash = _interopRequireDefault(require("ngeohash"));
// Copyright (c) 2023 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 geoHashToPolygon(geoHashList, colorField, colorAggregation) {
var polygons = [];
geoHashList.map(function (hash) {
// geoHashList.geohases.map(hash => {
var properties = colorField ? {
totalCount: hash.doc_count,
aggregatedData: hash.aggregatedData
} : {
totalCount: hash.doc_count
};
var bounds = _ngeohash["default"].decode_bbox(hash.key);
var cUL = [bounds[1], bounds[0]];
var cBR = [bounds[3], bounds[2]];
var cUR = [bounds[1], bounds[2]];
var cBL = [bounds[3], bounds[0]];
return polygons.push({
type: 'Feature',
geometry: {
type: 'Polygon',
coordinates: [[cUL, cUR, cBR, cBL, cUL]]
},
properties: properties
});
});
return polygons;
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYXllcnMvZ2VvLWhhc2gtbGF5ZXIvZ2VvLWhhc2gtbGF5ZXItdXRpbHMuanMiXSwibmFtZXMiOlsiZ2VvSGFzaFRvUG9seWdvbiIsImdlb0hhc2hMaXN0IiwiY29sb3JGaWVsZCIsImNvbG9yQWdncmVnYXRpb24iLCJwb2x5Z29ucyIsIm1hcCIsImhhc2giLCJwcm9wZXJ0aWVzIiwidG90YWxDb3VudCIsImRvY19jb3VudCIsImFnZ3JlZ2F0ZWREYXRhIiwiYm91bmRzIiwiZ2VvaGFzaCIsImRlY29kZV9iYm94Iiwia2V5IiwiY1VMIiwiY0JSIiwiY1VSIiwiY0JMIiwicHVzaCIsInR5cGUiLCJnZW9tZXRyeSIsImNvb3JkaW5hdGVzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFvQkE7O0FBcEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSU8sU0FBU0EsZ0JBQVQsQ0FBMEJDLFdBQTFCLEVBQXVDQyxVQUF2QyxFQUFtREMsZ0JBQW5ELEVBQXFFO0FBQzFFLE1BQUlDLFFBQVEsR0FBRyxFQUFmO0FBQ0FILEVBQUFBLFdBQVcsQ0FBQ0ksR0FBWixDQUFnQixVQUFBQyxJQUFJLEVBQUk7QUFDdEI7QUFFQSxRQUFNQyxVQUFVLEdBQUdMLFVBQVUsR0FDekI7QUFDRU0sTUFBQUEsVUFBVSxFQUFFRixJQUFJLENBQUNHLFNBRG5CO0FBRUVDLE1BQUFBLGNBQWMsRUFBRUosSUFBSSxDQUFDSTtBQUZ2QixLQUR5QixHQUt6QjtBQUFDRixNQUFBQSxVQUFVLEVBQUVGLElBQUksQ0FBQ0c7QUFBbEIsS0FMSjs7QUFNQSxRQUFNRSxNQUFNLEdBQUdDLHFCQUFRQyxXQUFSLENBQW9CUCxJQUFJLENBQUNRLEdBQXpCLENBQWY7O0FBQ0EsUUFBTUMsR0FBRyxHQUFHLENBQUNKLE1BQU0sQ0FBQyxDQUFELENBQVAsRUFBWUEsTUFBTSxDQUFDLENBQUQsQ0FBbEIsQ0FBWjtBQUNBLFFBQU1LLEdBQUcsR0FBRyxDQUFDTCxNQUFNLENBQUMsQ0FBRCxDQUFQLEVBQVlBLE1BQU0sQ0FBQyxDQUFELENBQWxCLENBQVo7QUFDQSxRQUFNTSxHQUFHLEdBQUcsQ0FBQ04sTUFBTSxDQUFDLENBQUQsQ0FBUCxFQUFZQSxNQUFNLENBQUMsQ0FBRCxDQUFsQixDQUFaO0FBQ0EsUUFBTU8sR0FBRyxHQUFHLENBQUNQLE1BQU0sQ0FBQyxDQUFELENBQVAsRUFBWUEsTUFBTSxDQUFDLENBQUQsQ0FBbEIsQ0FBWjtBQUNBLFdBQU9QLFFBQVEsQ0FBQ2UsSUFBVCxDQUFjO0FBQ25CQyxNQUFBQSxJQUFJLEVBQUUsU0FEYTtBQUVuQkMsTUFBQUEsUUFBUSxFQUFFO0FBQ1JELFFBQUFBLElBQUksRUFBRSxTQURFO0FBRVJFLFFBQUFBLFdBQVcsRUFBRSxDQUFDLENBQUNQLEdBQUQsRUFBTUUsR0FBTixFQUFXRCxHQUFYLEVBQWdCRSxHQUFoQixFQUFxQkgsR0FBckIsQ0FBRDtBQUZMLE9BRlM7QUFNbkJSLE1BQUFBLFVBQVUsRUFBVkE7QUFObUIsS0FBZCxDQUFQO0FBUUQsR0F0QkQ7QUF1QkEsU0FBT0gsUUFBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIzIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IGdlb2hhc2ggZnJvbSAnbmdlb2hhc2gnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2VvSGFzaFRvUG9seWdvbihnZW9IYXNoTGlzdCwgY29sb3JGaWVsZCwgY29sb3JBZ2dyZWdhdGlvbikge1xuICB2YXIgcG9seWdvbnMgPSBbXTtcbiAgZ2VvSGFzaExpc3QubWFwKGhhc2ggPT4ge1xuICAgIC8vIGdlb0hhc2hMaXN0Lmdlb2hhc2VzLm1hcChoYXNoID0+IHtcblxuICAgIGNvbnN0IHByb3BlcnRpZXMgPSBjb2xvckZpZWxkXG4gICAgICA/IHtcbiAgICAgICAgICB0b3RhbENvdW50OiBoYXNoLmRvY19jb3VudCxcbiAgICAgICAgICBhZ2dyZWdhdGVkRGF0YTogaGFzaC5hZ2dyZWdhdGVkRGF0YVxuICAgICAgICB9XG4gICAgICA6IHt0b3RhbENvdW50OiBoYXNoLmRvY19jb3VudH07XG4gICAgY29uc3QgYm91bmRzID0gZ2VvaGFzaC5kZWNvZGVfYmJveChoYXNoLmtleSk7XG4gICAgY29uc3QgY1VMID0gW2JvdW5kc1sxXSwgYm91bmRzWzBdXTtcbiAgICBjb25zdCBjQlIgPSBbYm91bmRzWzNdLCBib3VuZHNbMl1dO1xuICAgIGNvbnN0IGNVUiA9IFtib3VuZHNbMV0sIGJvdW5kc1syXV07XG4gICAgY29uc3QgY0JMID0gW2JvdW5kc1szXSwgYm91bmRzWzBdXTtcbiAgICByZXR1cm4gcG9seWdvbnMucHVzaCh7XG4gICAgICB0eXBlOiAnRmVhdHVyZScsXG4gICAgICBnZW9tZXRyeToge1xuICAgICAgICB0eXBlOiAnUG9seWdvbicsXG4gICAgICAgIGNvb3JkaW5hdGVzOiBbW2NVTCwgY1VSLCBjQlIsIGNCTCwgY1VMXV1cbiAgICAgIH0sXG4gICAgICBwcm9wZXJ0aWVzXG4gICAgfSk7XG4gIH0pO1xuICByZXR1cm4gcG9seWdvbnM7XG59XG4iXX0=