diff --git a/package.json b/package.json index e1bd379f92..b4319bb4be 100644 --- a/package.json +++ b/package.json @@ -183,8 +183,5 @@ "tnpm": { "mode": "yarn" }, - "version": "0.0.0", - "dependencies": { - "@turf/turf": "^5.1.6" - } + "version": "0.0.0" } diff --git a/packages/core/src/services/renderer/IRendererService.ts b/packages/core/src/services/renderer/IRendererService.ts index e8627c370b..a349eacbdd 100644 --- a/packages/core/src/services/renderer/IRendererService.ts +++ b/packages/core/src/services/renderer/IRendererService.ts @@ -60,5 +60,7 @@ export interface IRendererService { getGLContext(): WebGLRenderingContext; viewport(size: { x: number; y: number; width: number; height: number }): void; readPixels(options: IReadPixelsOptions): Uint8Array; + setBaseState(): void; + setCustomLayerDefaults(): void; destroy(): void; } diff --git a/packages/core/src/services/renderer/ITexture2D.ts b/packages/core/src/services/renderer/ITexture2D.ts index a10da7566c..ff6eaca325 100644 --- a/packages/core/src/services/renderer/ITexture2D.ts +++ b/packages/core/src/services/renderer/ITexture2D.ts @@ -79,6 +79,8 @@ export interface ITexture2DInitializationOptions { } export interface ITexture2D { + get(): unknown; + update(): void; resize(options: { width: number; height: number }): void; /** diff --git a/packages/core/src/services/scene/ISceneService.ts b/packages/core/src/services/scene/ISceneService.ts index e5397232f9..a52eaa78b0 100644 --- a/packages/core/src/services/scene/ISceneService.ts +++ b/packages/core/src/services/scene/ISceneService.ts @@ -5,6 +5,7 @@ import { IRenderConfig } from '../renderer/IRendererService'; export interface ISceneService { destroyed: boolean; + loaded: boolean; on(type: string, handle: (...args: any[]) => void): void; off(type: string, handle: (...args: any[]) => void): void; removeAllListeners(event?: string): this; diff --git a/packages/core/src/services/scene/SceneService.ts b/packages/core/src/services/scene/SceneService.ts index a4515418b6..90b56733c8 100644 --- a/packages/core/src/services/scene/SceneService.ts +++ b/packages/core/src/services/scene/SceneService.ts @@ -34,6 +34,8 @@ import { ISceneService } from './ISceneService'; export default class Scene extends EventEmitter implements ISceneService { public destroyed: boolean = false; + public loaded: boolean = false; + @inject(TYPES.SceneID) private readonly id: string; /** @@ -228,6 +230,7 @@ export default class Scene extends EventEmitter implements ISceneService { this.logger.info(' render inited'); this.layerService.initLayers(); this.controlService.addControls(); + this.loaded = true; this.emit('loaded'); this.inited = true; } diff --git a/packages/draw/package.json b/packages/draw/package.json index 6d59d12a4e..cb9b7533b2 100644 --- a/packages/draw/package.json +++ b/packages/draw/package.json @@ -36,9 +36,8 @@ }, "dependencies": { "@antv/l7": "2.1.14", - "@antv/l7-component": "2.1.14", "@babel/runtime": "^7.7.7", - "@turf/circle": "^6.0.1", + "@turf/turf": "^5.1.6", "@turf/distance": "^6.0.1", "@turf/helpers": "^6.1.4", "@turf/midpoint": "^5.1.5", diff --git a/packages/layers/src/point/models/image.ts b/packages/layers/src/point/models/image.ts index d8b7c5ff22..e439c4591f 100644 --- a/packages/layers/src/point/models/image.ts +++ b/packages/layers/src/point/models/image.ts @@ -20,6 +20,7 @@ export default class ImageModel extends BaseModel { public getUninforms(): IModelUniform { const { opacity } = this.layer.getLayerConfig() as IImageLayerStyleOptions; + this.texture.update(); return { u_opacity: opacity || 1.0, u_texture: this.texture, diff --git a/packages/layers/src/three/index.ts b/packages/layers/src/three/index.ts index 03670ca5d0..d05bc2b1d1 100644 --- a/packages/layers/src/three/index.ts +++ b/packages/layers/src/three/index.ts @@ -4,17 +4,27 @@ * @see https://github.com/peterqliu/threebox/blob/master/examples/Object3D.html */ import { IMercator } from '@antv/l7-core'; -import { Camera, Matrix4, Scene, WebGLRenderer } from 'three'; +import { + AnimationMixer, + Camera, + Matrix4, + PCFSoftShadowMap, + PerspectiveCamera, + Scene, + WebGLRenderer, +} from 'three'; import BaseLayer from '../core/BaseLayer'; - +const DEG2RAD = Math.PI / 180; export default class ThreeJSLayer extends BaseLayer<{ onAddMeshes: (threeScene: Scene, layer: ThreeJSLayer) => void; }> { public name: string = 'ThreeJSLayer'; + public type: string = 'custom'; private scene: Scene; private camera: Camera; private renderer: WebGLRenderer; + private animateMixer: AnimationMixer[] = []; // 地图中点墨卡托坐标 private center: IMercator; @@ -63,12 +73,12 @@ export default class ThreeJSLayer extends BaseLayer<{ // L7 负责 clear this.renderer.autoClear = false; // 是否需要 gamma correction? - this.renderer.gammaOutput = true; this.renderer.gammaFactor = 2.2; + this.renderer.shadowMap.enabled = true; + // this.renderer.shadowMap.type = PCFSoftShadowMap; this.scene = new Scene(); - // 后续同步 L7 相机 - this.camera = new Camera(); + this.camera = new PerspectiveCamera(45, 1, 1, 2000000); const config = this.getLayerConfig(); if (config && config.onAddMeshes) { @@ -76,10 +86,14 @@ export default class ThreeJSLayer extends BaseLayer<{ } } } - public renderModels() { - const { width, height } = this.rendererService.getViewportSize(); - this.renderer.setSize(width, height, false); + return this.mapService.constructor.name === 'AMapService' + ? this.renderAMapModels() + : this.renderMapboxModels(); + } + public renderMapboxModels() { + // const { width, height } = this.rendererService.getViewportSize(); + // this.renderer.setSize(width, height, false); const gl = this.rendererService.getGLContext(); gl.frontFace(gl.CCW); @@ -97,9 +111,57 @@ export default class ThreeJSLayer extends BaseLayer<{ ); this.renderer.state.reset(); this.renderer.render(this.scene, this.camera); + this.rendererService.setBaseState(); + this.animateMixer.forEach((mixer: AnimationMixer) => { + mixer.update(this.getTime()); + }); return this; } + public renderAMapModels() { + const gl = this.rendererService.getGLContext(); + gl.frontFace(gl.CCW); + gl.enable(gl.CULL_FACE); + gl.cullFace(gl.BACK); + + // @ts-ignore + const mapCamera = this.mapService.map.getCameraState(); + const camera = this.camera; + let { pitch, rotation } = mapCamera; + const { fov, near, far, height, aspect } = mapCamera; + pitch *= DEG2RAD; + rotation *= DEG2RAD; + // @ts-ignore + camera.fov = (180 * fov) / Math.PI; + // @ts-ignore + camera.aspect = aspect; + // @ts-ignore + camera.near = near; + // @ts-ignore + camera.far = far; + // @ts-ignore + camera.updateProjectionMatrix(); + camera.position.z = height * Math.cos(pitch); + camera.position.x = height * Math.sin(pitch) * Math.sin(rotation); + camera.position.y = -height * Math.sin(pitch) * Math.cos(rotation); + camera.up.x = -Math.cos(pitch) * Math.sin(rotation); + camera.up.y = Math.cos(pitch) * Math.cos(rotation); + camera.up.z = Math.sin(pitch); + camera.lookAt(0, 0, 0); + camera.position.x += mapCamera.position.x; + camera.position.y += -mapCamera.position.y; + this.renderer.state.reset(); + this.renderer.autoClear = false; + this.renderer.render(this.scene, this.camera); + this.animateMixer.forEach((mixer: AnimationMixer) => { + mixer.update(this.getTime()); + }); + return this; + } + + public addAnimateMixer(mixer: AnimationMixer) { + this.animateMixer.push(mixer); + } protected getConfigSchema() { return { properties: { diff --git a/packages/maps/src/amap/map.ts b/packages/maps/src/amap/map.ts index 820f4337a8..97885619e1 100644 --- a/packages/maps/src/amap/map.ts +++ b/packages/maps/src/amap/map.ts @@ -258,10 +258,29 @@ export default class AMapService lnglat: [number, number], altitude: number, rotate: [number, number, number], - scale: [number, number, number], - origin: IMercator, + scale: [number, number, number] = [1, 1, 1], + origin: IMercator = { x: 0, y: 0, z: 0 }, ): number[] { - return (mat4.create() as unknown) as number[]; + const flat = this.viewport.projectFlat(lnglat); + // @ts-ignore + const modelMatrix = mat4.create(); + + mat4.translate( + modelMatrix, + modelMatrix, + vec3.fromValues(flat[0], flat[1], altitude), + ); + mat4.scale( + modelMatrix, + modelMatrix, + vec3.fromValues(scale[0], scale[1], scale[2]), + ); + + mat4.rotateX(modelMatrix, modelMatrix, rotate[0]); + mat4.rotateY(modelMatrix, modelMatrix, rotate[1]); + mat4.rotateZ(modelMatrix, modelMatrix, rotate[2]); + + return (modelMatrix as unknown) as number[]; } public async init(): Promise { const { diff --git a/packages/maps/src/mapbox/map.ts b/packages/maps/src/mapbox/map.ts index de576c040e..8800a45ea4 100644 --- a/packages/maps/src/mapbox/map.ts +++ b/packages/maps/src/mapbox/map.ts @@ -240,13 +240,12 @@ export default class MapboxService lnglat: [number, number], altitude: number, ): IMercator { - return { - x: 0, - y: 0, - z: 0, - }; + const { x = 0, y = 0, z = 0 } = mapboxgl.MercatorCoordinate.fromLngLat( + lnglat, + altitude, + ); + return { x, y, z }; } - public getModelMatrix( lnglat: [number, number], altitude: number, diff --git a/packages/renderer/src/regl/ReglTexture2D.ts b/packages/renderer/src/regl/ReglTexture2D.ts index c7db4c8c37..8797dbbc8f 100644 --- a/packages/renderer/src/regl/ReglTexture2D.ts +++ b/packages/renderer/src/regl/ReglTexture2D.ts @@ -15,6 +15,8 @@ import { */ export default class ReglTexture2D implements ITexture2D { private texture: regl.Texture2D; + private width: number; + private height: number; constructor(reGl: regl.Regl, options: ITexture2DInitializationOptions) { const { @@ -34,6 +36,8 @@ export default class ReglTexture2D implements ITexture2D { min = gl.NEAREST, colorSpace = gl.BROWSER_DEFAULT_WEBGL, } = options; + this.width = width; + this.height = height; const textureOptions: regl.Texture2DOptions = { width, @@ -69,9 +73,15 @@ export default class ReglTexture2D implements ITexture2D { public get() { return this.texture; } + public update() { + // @ts-ignore + this.texture._texture.bind(); + } public resize({ width, height }: { width: number; height: number }): void { this.texture.resize(width, height); + this.width = width; + this.height = height; } public destroy() { diff --git a/packages/renderer/src/regl/index.ts b/packages/renderer/src/regl/index.ts index 521404f13d..8ab2a06cb6 100644 --- a/packages/renderer/src/regl/index.ts +++ b/packages/renderer/src/regl/index.ts @@ -36,6 +36,8 @@ import ReglTexture2D from './ReglTexture2D'; export default class ReglRendererService implements IRendererService { private gl: regl.Regl; private $container: HTMLDivElement | null; + private width: number; + private height: number; public async init( $container: HTMLDivElement, @@ -146,6 +148,8 @@ export default class ReglRendererService implements IRendererService { renderCanvas.style.height = height / 2 + 'px'; } this.gl._gl.viewport(x, y, width, height); + this.width = width; + this.height = height; this.gl._refresh(); }; @@ -182,6 +186,31 @@ export default class ReglRendererService implements IRendererService { return this.gl._gl; }; + public setBaseState() { + this.gl({ + cull: { + enable: false, + face: 'back', + }, + viewport: { + x: 0, + y: 0, + height: this.width, + width: this.height, + }, + blend: { + enable: false, + equation: 'add', + }, + framebuffer: null, + }); + this.gl._refresh(); + } + public setCustomLayerDefaults() { + const gl = this.getGLContext(); + gl.disable(gl.CULL_FACE); + } + public destroy = () => { // @see https://github.com/regl-project/regl/blob/gh-pages/API.md#clean-up this.gl.destroy(); diff --git a/packages/scene/src/index.ts b/packages/scene/src/index.ts index e99a6cd3ea..426db19e59 100644 --- a/packages/scene/src/index.ts +++ b/packages/scene/src/index.ts @@ -103,6 +103,9 @@ class Scene this.initControl(); } + public getServiceContainer(): Container { + return this.container; + } public getSize(): [number, number] { return this.mapService.getSize(); } @@ -133,6 +136,18 @@ class Scene return this.sceneService.exportPng(type); } + public registerRenderService(render: any) { + if (this.sceneService.loaded) { + const renderSerivce = new render(this); + renderSerivce.init(); + } else { + this.on('loaded', () => { + const renderSerivce = new render(this); + renderSerivce.init(); + }); + } + } + public get map() { return this.mapService.map; } diff --git a/packages/three/README.md b/packages/three/README.md new file mode 100644 index 0000000000..618def77fa --- /dev/null +++ b/packages/three/README.md @@ -0,0 +1,11 @@ +# `three` + +> L7 ThreeJS +通过ThreeJS 扩展加载3D模型 + +## Usage + +``` +import three = require('l7-three'); + +``` diff --git a/packages/three/package.json b/packages/three/package.json new file mode 100644 index 0000000000..b6613a267e --- /dev/null +++ b/packages/three/package.json @@ -0,0 +1,48 @@ +{ + "name": "@antv/l7-three", + "version": "2.1.14", + "description": "three for L7 ", + "keywords": ["3D", "L7", "three"], + "author": "thinkinggis ", + "license": "ISC", + "main": "lib/index.js", + "module": "es/index.js", + "unpkg": "dist/l7-tree.js", + "types": "es/index.d.ts", + "directories": { + "lib": "lib", + "test": "__tests__" + }, + "files": [ + "dist", + "lib", + "es", + "README.md" + ], + "repository": { + "type": "git", + "url": "git+https://github.com/antvis/L7.git" + }, + "scripts": { + "tsc": "tsc --project tsconfig.build.json", + "clean": "rimraf dist; rimraf es; rimraf lib;", + "build": "run-p build:*", + "build:cjs": "BABEL_ENV=cjs babel src --root-mode upward --out-dir lib --source-maps --extensions .ts,.tsx --delete-dir-on-start --no-comments", + "build:esm": "BABEL_ENV=esm babel src --root-mode upward --out-dir es --source-maps --extensions .ts,.tsx --delete-dir-on-start --no-comments", + "watch": "BABEL_ENV=cjs babel src --watch --root-mode upward --out-dir lib --source-maps --extensions .ts,.tsx --delete-dir-on-start --no-comments", + "build:cdn": "node_modules/.bin/rollup -c", + "lint:ts": "run-p -c lint:ts-*", + "test": "jest" + }, + "bugs": { + "url": "https://github.com/antvis/L7/issues" + }, + "homepage": "https://github.com/antvis/L7#readme", + "dependencies": { + "three": "^0.115.0", + "@antv/l7": "2.1.14", + "@babel/runtime": "^7.7.7", + "rollup": "^2.3.3", + "rollup-plugin-less": "^1.1.2" + } +} diff --git a/packages/three/rollup.config.js b/packages/three/rollup.config.js new file mode 100644 index 0000000000..71e2de9e35 --- /dev/null +++ b/packages/three/rollup.config.js @@ -0,0 +1,51 @@ +import pkg from './package.json'; +import typescript from 'rollup-plugin-typescript'; +import resolve from 'rollup-plugin-node-resolve'; +import commonjs from '@rollup/plugin-commonjs'; +import buble from 'rollup-plugin-buble'; +import postcss from 'rollup-plugin-postcss'; +import { terser } from 'rollup-plugin-terser'; +import url from 'postcss-url'; +export default { + input: './src/index.ts', + plugins: [ + // less(), + typescript({ + exclude: 'node_modules/**', + typescript: require('typescript') + }), + resolve({ + preferBuiltins: false + }), + postcss({ + plugins: [ + url({ url: 'inline' }) + ] + }), + commonjs({ + namedExports: { + eventemitter3: [ 'EventEmitter' ], + lodash: [ 'merge' ] + } + }), + buble({ + transforms: { generator: false } + }), + terser() + ], + external: [ + '@antv/l7' + ], + output: [ + { + format: 'umd', + name: 'L7-Three', + file: pkg.unpkg, + sourcemap: true, + globals: { + '@antv/l7': 'L7' + } + } + ] +}; + diff --git a/packages/three/src/core/baseLayer.ts b/packages/three/src/core/baseLayer.ts new file mode 100644 index 0000000000..a6abfcdf6b --- /dev/null +++ b/packages/three/src/core/baseLayer.ts @@ -0,0 +1,108 @@ +import { BaseLayer, ILayer, IMercator } from '@antv/l7'; +import { + AnimationMixer, + Camera, + Matrix4, + PCFSoftShadowMap, + PerspectiveCamera, + Scene, + WebGLRenderer, +} from 'three'; +import { + IThreeRenderService, + ThreeRenderServiceType, +} from './threeRenderService'; +const DEG2RAD = Math.PI / 180; +interface IThreeJSLayer extends ILayer { + getModelMatrix( + lnglat: [number, number], + altitude: number, + rotation: [number, number, number], + scale: [number, number, number], + ): Matrix4; + addAnimateMixer(mixer: AnimationMixer): void; +} +export default class ThreeJSLayer + extends BaseLayer<{ + onAddMeshes: (threeScene: Scene, layer: ThreeJSLayer) => void; + }> + implements IThreeJSLayer { + public type: string = 'custom'; + protected threeRenderService: IThreeRenderService; + private scene: Scene = new Scene(); + private renderer: WebGLRenderer; + private animateMixer: AnimationMixer[] = []; + // 地图中点墨卡托坐标 + private center: IMercator; + + // 初始状态相机变换矩阵 + + /** + * 根据模型 + */ + public getModelMatrix( + lnglat: [number, number], + altitude: number = 0, + rotation: [number, number, number] = [0, 0, 0], + scale: [number, number, number] = [1, 1, 1], + ): Matrix4 { + return new Matrix4().fromArray( + this.mapService.getModelMatrix( + lnglat, + altitude, + rotation, + scale, + this.threeRenderService.center, + ), + ); + } + + public buildModels() { + this.threeRenderService = this.getContainer().get( + ThreeRenderServiceType, + ); + const config = this.getLayerConfig(); + if (config && config.onAddMeshes) { + config.onAddMeshes(this.scene, this); + } + } + public renderModels() { + const gl = this.rendererService.getGLContext(); + this.rendererService.setCustomLayerDefaults(); + const cullFace = + this.mapService.constructor.name === 'AMapService' ? gl.BACK : gl.FRONT; + gl.cullFace(cullFace); + const renderer = this.threeRenderService.renderer; + renderer.state.reset(); + renderer.autoClear = false; + const camera = this.threeRenderService.getRenderCamera(); + renderer.render(this.scene, camera); + this.rendererService.setBaseState(); + this.animateMixer.forEach((mixer: AnimationMixer) => { + mixer.update(this.getTime()); + }); + this.rendererService.setBaseState(); + return this; + } + + public renderAMapModels() { + const gl = this.rendererService.getGLContext(); + // gl.frontFace(gl.CCW); + // gl.enable(gl.CULL_FACE); + // gl.cullFace(gl.BACK); + this.rendererService.setCustomLayerDefaults(); + const renderer = this.threeRenderService.renderer; + renderer.state.reset(); + renderer.autoClear = false; + renderer.render(this.scene, this.threeRenderService.getRenderCamera()); + this.animateMixer.forEach((mixer: AnimationMixer) => { + mixer.update(this.getTime()); + }); + this.rendererService.setBaseState(); + return this; + } + + public addAnimateMixer(mixer: AnimationMixer) { + this.animateMixer.push(mixer); + } +} diff --git a/packages/three/src/core/threeRender.ts b/packages/three/src/core/threeRender.ts new file mode 100644 index 0000000000..20680e3944 --- /dev/null +++ b/packages/three/src/core/threeRender.ts @@ -0,0 +1,33 @@ +import { Scene } from '@antv/l7'; +import { + AnimationMixer, + Camera, + Matrix4, + PCFSoftShadowMap, + PerspectiveCamera, + Scene as ThreeScene, + WebGLRenderer, +} from 'three'; +import { + IThreeRenderService, + ThreeRenderService, + ThreeRenderServiceType, +} from './threeRenderService'; + +export default class ThreeRender { + private threeRenderService: IThreeRenderService; + constructor(scene: Scene) { + const sceneContainer = scene.getServiceContainer(); + sceneContainer + .bind(ThreeRenderServiceType) + .to(ThreeRenderService) + .inSingletonScope(); + + this.threeRenderService = sceneContainer.get( + ThreeRenderServiceType, + ); + } + public init() { + this.threeRenderService.init(); + } +} diff --git a/packages/three/src/core/threeRenderService.ts b/packages/three/src/core/threeRenderService.ts new file mode 100644 index 0000000000..b61b380cea --- /dev/null +++ b/packages/three/src/core/threeRenderService.ts @@ -0,0 +1,110 @@ +import { IMapService, IMercator, IRendererService, TYPES } from '@antv/l7'; +import { inject, injectable } from 'inversify'; +import { + AnimationMixer, + Camera, + Matrix4, + PCFSoftShadowMap, + PerspectiveCamera, + Scene as ThreeScene, + WebGLRenderer, +} from 'three'; +const DEG2RAD = Math.PI / 180; +export interface IThreeRenderService { + renderer: WebGLRenderer; + camera: Camera; + center: IMercator; + init(): void; + getRenderCamera(): Camera; +} +export const ThreeRenderServiceType = Symbol.for('ThreeJSRenderService'); +@injectable() +export class ThreeRenderService implements IThreeRenderService { + public renderer: WebGLRenderer; + public camera: Camera; + public center: IMercator; + private scene: ThreeScene; + + // 初始状态相机变换矩阵 + private cameraTransform: Matrix4; + + @inject(TYPES.IRendererService) + private readonly rendererService: IRendererService; + + @inject(TYPES.IMapService) + private readonly mapService: IMapService; + + public init() { + const canvas = this.rendererService.getCanvas() as HTMLCanvasElement; + const gl = this.rendererService.getGLContext(); + if (canvas && gl) { + const center = this.mapService.getCenter(); + this.center = this.mapService.lngLatToMercator( + [center.lng, center.lat], + 0, + ); + } + const { x, y, z } = this.center; + this.cameraTransform = new Matrix4().makeTranslation(x, y, z); + this.renderer = new WebGLRenderer({ + canvas, + context: gl, + antialias: true, + }); + + this.renderer.autoClear = false; + // 是否需要 gamma correction? + this.renderer.gammaFactor = 2.2; + this.renderer.shadowMap.enabled = true; + // this.renderer.shadowMap.type = PCFSoftShadowMap; + + this.scene = new ThreeScene(); + this.camera = new PerspectiveCamera(45, 1, 1, 2000000); + } + public getRenderCamera(): Camera { + return this.mapService.constructor.name === 'AMapService' + ? this.AMapCamera() + : this.mapboxCamera(); + } + + private mapboxCamera(): Camera { + const mercatorMatrix = new Matrix4().fromArray( + // @ts-ignore + this.mapService.map.transform.customLayerMatrix(), + ); + this.camera.projectionMatrix = mercatorMatrix.multiply( + this.cameraTransform, + ); + return this.camera; + } + + private AMapCamera(): Camera { + // @ts-ignore + const mapCamera = this.mapService.map.getCameraState(); + const camera = this.camera; + let { pitch, rotation } = mapCamera; + const { fov, near, far, height, aspect } = mapCamera; + pitch *= DEG2RAD; + rotation *= DEG2RAD; + // @ts-ignore + camera.fov = (180 * fov) / Math.PI; + // @ts-ignore + camera.aspect = aspect; + // @ts-ignore + camera.near = near; + // @ts-ignore + camera.far = far; + // @ts-ignore + camera.updateProjectionMatrix(); + camera.position.z = height * Math.cos(pitch); + camera.position.x = height * Math.sin(pitch) * Math.sin(rotation); + camera.position.y = -height * Math.sin(pitch) * Math.cos(rotation); + camera.up.x = -Math.cos(pitch) * Math.sin(rotation); + camera.up.y = Math.cos(pitch) * Math.cos(rotation); + camera.up.z = Math.sin(pitch); + camera.lookAt(0, 0, 0); + camera.position.x += mapCamera.position.x; + camera.position.y += -mapCamera.position.y; + return camera; + } +} diff --git a/packages/three/src/index.ts b/packages/three/src/index.ts new file mode 100644 index 0000000000..eeb2447453 --- /dev/null +++ b/packages/three/src/index.ts @@ -0,0 +1,3 @@ +import ThreeLayer from './core/baseLayer'; +import ThreeRender from './core/threeRender'; +export { ThreeLayer, ThreeRender }; diff --git a/packages/three/src/layer/Symbol3DLayer.ts b/packages/three/src/layer/Symbol3DLayer.ts new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/three/tsconfig.build.json b/packages/three/tsconfig.build.json new file mode 100644 index 0000000000..17f6c4525a --- /dev/null +++ b/packages/three/tsconfig.build.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.build.json", + "compilerOptions": { + "declarationDir": "./es", + "rootDir": "./src", + "baseUrl": "./" + }, + "include": ["./src"] +} \ No newline at end of file diff --git a/stories/3D_Model/Components/amap_three.tsx b/stories/3D_Model/Components/amap_three.tsx new file mode 100644 index 0000000000..efb869904b --- /dev/null +++ b/stories/3D_Model/Components/amap_three.tsx @@ -0,0 +1,125 @@ +import { Scene } from '@antv/l7'; +import { GaodeMap, Mapbox } from '@antv/l7-maps'; +import { ThreeLayer, ThreeRender } from '@antv/l7-three'; +import * as React from 'react'; +// import { DirectionalLight, Scene as ThreeScene } from 'three'; +import * as THREE from 'three'; +// tslint:disable-next-line:no-submodule-imports +import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader'; + +export default class GlTFThreeJSDemo extends React.Component { + // @ts-ignore + private scene: Scene; + + public componentWillUnmount() { + this.scene.destroy(); + } + + public async componentDidMount() { + const response = await fetch( + 'https://gw.alipayobjects.com/os/basement_prod/893d1d5f-11d9-45f3-8322-ee9140d288ae.json', + ); + const pointsData = await response.json(); + + const scene = new Scene({ + id: 'map', + map: new GaodeMap({ + center: [111.4453125, 32.84267363195431], + pitch: 45, + rotation: 30, + zoom: 13, + }), + }); + this.scene = scene; + scene.registerRenderService(ThreeRender); + scene.on('loaded', () => { + const threeJSLayer = new ThreeLayer({ + enableMultiPassRenderer: false, + onAddMeshes: (threeScene: THREE.Scene, layer: ThreeLayer) => { + threeScene.add(new THREE.AmbientLight(0xffffff)); + const sunlight = new THREE.DirectionalLight(0xffffff, 0.25); + sunlight.position.set(0, 80000000, 100000000); + sunlight.matrixWorldNeedsUpdate = true; + threeScene.add(sunlight); + // 使用 Three.js glTFLoader 加载模型 + const loader = new GLTFLoader(); + loader.load( + // 'https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/master/2.0/DamagedHelmet/glTF/DamagedHelmet.gltf', + // 'https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/master/2.0/AnimatedCube/glTF/AnimatedCube.gltf', + // 'https://gw.alipayobjects.com/os/antvdemo/assets/gltf/radar/34M_17.gltf', + // 'https://gw.alipayobjects.com/os/antvdemo/assets/gltf/duck/Duck.gltf', // duck + // 'https://gw.alipayobjects.com/os/antvdemo/assets/gltf/truck/CesiumMilkTruck.gltf', // Truck + // 'https://gw.alipayobjects.com/os/antvdemo/assets/gltf/man/CesiumMan.gltf', + 'https://gw.alipayobjects.com/os/bmw-prod/3ca0a546-92d8-4ba0-a89c-017c218d5bea.gltf', + (gltf) => { + // 根据 GeoJSON 数据放置模型 + layer.getSource().data.dataArray.forEach(({ coordinates }) => { + const gltfScene = gltf.scene; + gltfScene.applyMatrix( + // 生成模型矩阵 + layer.getModelMatrix( + [coordinates[0], coordinates[1]], // 经纬度坐标 + 0, // 高度,单位米/ + [Math.PI / 2, -Math.PI, 0], // 沿 XYZ 轴旋转角度 + [100, 100, 100], // 沿 XYZ 轴缩放比例 + ), + ); + const animations = gltf.animations; + if (animations && animations.length) { + const mixer = new THREE.AnimationMixer(gltfScene); + // @ts-ignore + // for (let i = 0; i < 1; i++) { + const animation = animations[2]; + + // There's .3333 seconds junk at the tail of the Monster animation that + // keeps it from looping cleanly. Clip it at 3 seconds + + const action = mixer.clipAction(animation); + + action.play(); + // } + layer.addAnimateMixer(mixer); + } + + // 向场景中添加模型 + threeScene.add(gltfScene); + }); + // 重绘图层 + layer.render(); + }, + ); + }, + }) + .source({ + type: 'FeatureCollection', + features: [ + { + type: 'Feature', + properties: {}, + geometry: { + type: 'Point', + coordinates: [111.4453125, 32.84267363195431], + }, + }, + ], + }) + .animate(true); + scene.addLayer(threeJSLayer); + }); + } + + public render() { + return ( +
+ ); + } +} diff --git a/stories/3D_Model/Components/mapbox_three.tsx b/stories/3D_Model/Components/mapbox_three.tsx new file mode 100644 index 0000000000..68d0a3aca7 --- /dev/null +++ b/stories/3D_Model/Components/mapbox_three.tsx @@ -0,0 +1,146 @@ +import { Scene, PolygonLayer, ThreeJSLayer } from '@antv/l7'; +import { GaodeMap, Mapbox } from '@antv/l7-maps'; +import { ThreeLayer, ThreeRender } from '@antv/l7-three'; +import * as React from 'react'; +// import { DirectionalLight, Scene as ThreeScene } from 'three'; +import * as THREE from 'three'; +// tslint:disable-next-line:no-submodule-imports +import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader'; + +export default class GlTFThreeJSDemo extends React.Component { + // @ts-ignore + private scene: Scene; + + public componentWillUnmount() { + this.scene.destroy(); + } + + public async componentDidMount() { + const scene = new Scene({ + id: 'map', + map: new GaodeMap({ + center: [112, 35.39847], + pitch: 45, + rotation: 30, + zoom: 5, + }), + }); + this.scene = scene; + scene.registerRenderService(ThreeRender); + scene.on('loaded', async () => { + const response = await fetch( + 'https://gw.alipayobjects.com/os/basement_prod/d2e0e930-fd44-4fca-8872-c1037b0fee7b.json', + ); + const data = await response.json(); + const polygonlayer = new PolygonLayer({ + name: '01', + }); + + polygonlayer + .source(data) + .color('name', [ + '#2E8AE6', + '#69D1AB', + '#DAF291', + '#FFD591', + '#FF7A45', + '#CF1D49', + ]) + .shape('fill') + .select(true) + .style({ + opacity: 1.0, + }); + scene.addLayer(polygonlayer); + const threeJSLayer = new ThreeLayer({ + enableMultiPassRenderer: false, + onAddMeshes: (threeScene: THREE.Scene, layer: ThreeLayer) => { + // 添加光 + threeScene.add(new THREE.AmbientLight(0xffffff)); + const sunlight = new THREE.DirectionalLight(0xffffff, 0.25); + sunlight.position.set(0, 80000000, 100000000); + sunlight.matrixWorldNeedsUpdate = true; + threeScene.add(sunlight); + // 使用 Three.js glTFLoader 加载模型 + const loader = new GLTFLoader(); + loader.load( + // 'https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/master/2.0/DamagedHelmet/glTF/DamagedHelmet.gltf', + // 'https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/master/2.0/AnimatedCube/glTF/AnimatedCube.gltf', + // 'https://gw.alipayobjects.com/os/antvdemo/assets/gltf/radar/34M_17.gltf', + // 'https://gw.alipayobjects.com/os/antvdemo/assets/gltf/duck/Duck.gltf', // duck + 'https://gw.alipayobjects.com/os/antvdemo/assets/gltf/truck/CesiumMilkTruck.gltf', // Truck + // 'https://gw.alipayobjects.com/os/antvdemo/assets/gltf/man/CesiumMan.gltf', + // 'https://gw.alipayobjects.com/os/bmw-prod/3ca0a546-92d8-4ba0-a89c-017c218d5bea.gltf', + (gltf) => { + // 根据 GeoJSON 数据放置模型 + layer.getSource().data.dataArray.forEach(({ coordinates }) => { + const gltfScene = gltf.scene.clone(); + gltfScene.applyMatrix( + // 生成模型矩阵 + layer.getModelMatrix( + [coordinates[0], coordinates[1]], // 经纬度坐标 + 0, // 高度,单位米 + [Math.PI / 2, 0, 0], // 沿 XYZ 轴旋转角度 + [100000, 100000, 100000], // 沿 XYZ 轴缩放比例 + ), + ); + + const animations = gltf.animations; + if (animations && animations.length) { + const mixer = new THREE.AnimationMixer(gltfScene); + // @ts-ignore + for (let i = 0; i < animations.length; i++) { + const animation = animations[i]; + + // There's .3333 seconds junk at the tail of the Monster animation that + // keeps it from looping cleanly. Clip it at 3 seconds + + const action = mixer.clipAction(animation); + + action.play(); + } + layer.addAnimateMixer(mixer); + } + + // 向场景中添加模型 + threeScene.add(gltfScene); + }); + // 重绘图层 + layer.render(); + }, + ); + }, + }) + .source({ + type: 'FeatureCollection', + features: [ + { + type: 'Feature', + properties: {}, + geometry: { + type: 'Point', + coordinates: [112, 35.39847], + }, + }, + ], + }) + .animate(true); + scene.addLayer(threeJSLayer); + }); + } + + public render() { + return ( +
+ ); + } +} diff --git a/stories/3D_Model/Components/threeRender.tsx b/stories/3D_Model/Components/threeRender.tsx new file mode 100644 index 0000000000..3a91e555f0 --- /dev/null +++ b/stories/3D_Model/Components/threeRender.tsx @@ -0,0 +1,157 @@ +import { PointLayer, Scene } from '@antv/l7'; +import { GaodeMap, Mapbox } from '@antv/l7-maps'; +import { ThreeLayer, ThreeRender } from '@antv/l7-three'; +import * as React from 'react'; +// import { DirectionalLight, Scene as ThreeScene } from 'three'; +import * as THREE from 'three'; +// tslint:disable-next-line:no-submodule-imports +import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader'; + +export default class GlTFThreeJSDemo extends React.Component { + // @ts-ignore + private scene: Scene; + + public componentWillUnmount() { + this.scene.destroy(); + } + + public async componentDidMount() { + const response = await fetch( + 'https://gw.alipayobjects.com/os/basement_prod/893d1d5f-11d9-45f3-8322-ee9140d288ae.json', + ); + const pointsData = await response.json(); + + const scene = new Scene({ + id: 'map', + map: new Mapbox({ + center: [121.4, 31.258134], + pitch: 45, + rotation: 30, + zoom: 15, + }), + }); + scene.registerRenderService(ThreeRender); + this.scene = scene; + scene.on('loaded', async () => { + // scene.registerRenderService(ThreeRender); + const response = await fetch( + 'https://gw.alipayobjects.com/os/basement_prod/893d1d5f-11d9-45f3-8322-ee9140d288ae.json', + ); + scene.addImage( + '00', + 'https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*Rq6tQ5b4_JMAAAAAAAAAAABkARQnAQ', + ); + scene.addImage( + '01', + 'https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*0D0SQ6AgkRMAAAAAAAAAAABkARQnAQ', + ); + scene.addImage( + '02', + 'https://gw.alipayobjects.com/zos/rmsportal/xZXhTxbglnuTmZEwqQrE.png', + ); + const data = await response.json(); + const imageLayer = new PointLayer() + .source(data, { + parser: { + type: 'json', + x: 'longitude', + y: 'latitude', + }, + }) + .shape('name', ['00', '01', '02']) + // .shape('triangle') + // .color('red') + .active(true) + .size(20); + scene.addLayer(imageLayer); + + const threeJSLayer = new ThreeLayer({ + enableMultiPassRenderer: false, + onAddMeshes: (threeScene: THREE.Scene, layer: ThreeLayer) => { + threeScene.add(new THREE.AmbientLight(0xffffff)); + const sunlight = new THREE.DirectionalLight(0xffffff, 0.25); + sunlight.position.set(0, 80000000, 100000000); + sunlight.matrixWorldNeedsUpdate = true; + threeScene.add(sunlight); + // 使用 Three.js glTFLoader 加载模型 + const loader = new GLTFLoader(); + loader.load( + // 'https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/master/2.0/DamagedHelmet/glTF/DamagedHelmet.gltf', + // 'https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/master/2.0/AnimatedCube/glTF/AnimatedCube.gltf', + // 'https://gw.alipayobjects.com/os/antvdemo/assets/gltf/radar/34M_17.gltf', + // 'https://gw.alipayobjects.com/os/antvdemo/assets/gltf/duck/Duck.gltf', // duck + // 'https://gw.alipayobjects.com/os/antvdemo/assets/gltf/truck/CesiumMilkTruck.gltf', // Truck + // 'https://gw.alipayobjects.com/os/antvdemo/assets/gltf/man/CesiumMan.gltf', + 'https://gw.alipayobjects.com/os/bmw-prod/3ca0a546-92d8-4ba0-a89c-017c218d5bea.gltf', + (gltf) => { + // 根据 GeoJSON 数据放置模型 + layer.getSource().data.dataArray.forEach(({ coordinates }) => { + const gltfScene = gltf.scene; + gltfScene.applyMatrix( + // 生成模型矩阵 + layer.getModelMatrix( + [coordinates[0], coordinates[1]], // 经纬度坐标 + 0, // 高度,单位米/ + [Math.PI / 2, -Math.PI, 0], // 沿 XYZ 轴旋转角度 + [10, 10, 10], // 沿 XYZ 轴缩放比例 + ), + ); + const animations = gltf.animations; + if (animations && animations.length) { + const mixer = new THREE.AnimationMixer(gltfScene); + // @ts-ignore + // for (let i = 0; i < 1; i++) { + const animation = animations[2]; + + // There's .3333 seconds junk at the tail of the Monster animation that + // keeps it from looping cleanly. Clip it at 3 seconds + + const action = mixer.clipAction(animation); + + action.play(); + // } + layer.addAnimateMixer(mixer); + } + + // 向场景中添加模型 + threeScene.add(gltfScene); + }); + // 重绘图层 + layer.render(); + }, + ); + }, + }) + .source({ + type: 'FeatureCollection', + features: [ + { + type: 'Feature', + properties: {}, + geometry: { + type: 'Point', + coordinates: [121.4, 31.258134], + }, + }, + ], + }) + .animate(true); + scene.addLayer(threeJSLayer); + }); + } + + public render() { + return ( +
+ ); + } +} diff --git a/stories/3D_Model/model.stories.tsx b/stories/3D_Model/model.stories.tsx new file mode 100644 index 0000000000..1da45ee792 --- /dev/null +++ b/stories/3D_Model/model.stories.tsx @@ -0,0 +1,10 @@ +import { storiesOf } from '@storybook/react'; +import * as React from 'react'; +import AMapModel from './Components/amap_three'; +import MapboxModel from './Components/mapbox_three'; +import ThreeRender from './Components/threeRender'; + +storiesOf('3D 模型', module) + .add('ThreeJS Render', () => , {}) + .add('高德模型', () => , {}) + .add('Mapbox模型', () => , {}); diff --git a/stories/Layers/components/CustomThreeJSLayer.tsx b/stories/Layers/components/CustomThreeJSLayer.tsx index f2e2d5b726..4dc7ac2646 100644 --- a/stories/Layers/components/CustomThreeJSLayer.tsx +++ b/stories/Layers/components/CustomThreeJSLayer.tsx @@ -7,6 +7,7 @@ import { DirectionalLight, Mesh, MeshLambertMaterial, + Matrix4, Scene as ThreeScene, } from 'three'; // @ts-ignore @@ -71,7 +72,11 @@ export default class ThreeJSLayerComponent extends React.Component { }); const cube = new Mesh(geometry, redMaterial); cube.applyMatrix( - layer.getModelMatrix([120.19382669582967, 30.258134], 10, [0, 0, 0]), + layer.getModelMatrix([120.19382669582967, 30.258134], 10, [ + 0, + 0, + 0, + ]) as Matrix4, ); cube.frustumCulled = false; threeScene.add(cube); diff --git a/stories/Layers/components/GlTFThreeJSDemo.tsx b/stories/Layers/components/GlTFThreeJSDemo.tsx index b16e91c8ac..38ed89243a 100644 --- a/stories/Layers/components/GlTFThreeJSDemo.tsx +++ b/stories/Layers/components/GlTFThreeJSDemo.tsx @@ -1,7 +1,7 @@ import { Scene, ThreeJSLayer } from '@antv/l7'; import { Mapbox } from '@antv/l7-maps'; import * as React from 'react'; -import { DirectionalLight, Scene as ThreeScene } from 'three'; +import { DirectionalLight, Matrix4, Scene as ThreeScene } from 'three'; // tslint:disable-next-line:no-submodule-imports import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader'; @@ -25,7 +25,7 @@ export default class GlTFThreeJSDemo extends React.Component { center: [121.434765, 31.256735], pitch: 45, rotation: 30, - zoom: 16, + zoom: 18, }), }); this.scene = scene; @@ -46,7 +46,8 @@ export default class GlTFThreeJSDemo extends React.Component { loader.load( // 'https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/master/2.0/DamagedHelmet/glTF/DamagedHelmet.gltf', // 'https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/master/2.0/AnimatedCube/glTF/AnimatedCube.gltf', - 'https://docs.mapbox.com/mapbox-gl-js/assets/34M_17/34M_17.gltf', + 'https://gw.alipayobjects.com/os/antvdemo/assets/gltf/radar/34M_17.gltf', + // 'https://gw.alipayobjects.com/os/bmw-prod/3ca0a546-92d8-4ba0-a89c-017c218d5bea.gltf', (gltf) => { // 根据 GeoJSON 数据放置模型 layer.getSource().data.dataArray.forEach(({ coordinates }) => { diff --git a/yarn.lock b/yarn.lock index a981ec6277..e4585136c2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3608,49 +3608,7 @@ dependencies: defer-to-connect "^2.0.0" -"@turf/along@5.1.x": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/along/-/along-5.1.5.tgz#61d6e6a6584acddab56ac5584e07bf8cbe5f8beb" - integrity sha1-YdbmplhKzdq1asVYTge/jL5fi+s= - dependencies: - "@turf/bearing" "^5.1.5" - "@turf/destination" "^5.1.5" - "@turf/distance" "^5.1.5" - "@turf/helpers" "^5.1.5" - -"@turf/area@5.1.x", "@turf/area@^5.1.5": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/area/-/area-5.1.5.tgz#efd899bfd260cdbd1541b2a3c155f8a5d2eefa1d" - integrity sha1-79iZv9Jgzb0VQbKjwVX4pdLu+h0= - dependencies: - "@turf/helpers" "^5.1.5" - "@turf/meta" "^5.1.5" - -"@turf/bbox-clip@5.1.x": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/bbox-clip/-/bbox-clip-5.1.5.tgz#3364b5328dff9f3cf41d9e02edaff374d150cc84" - integrity sha1-M2S1Mo3/nzz0HZ4C7a/zdNFQzIQ= - dependencies: - "@turf/helpers" "^5.1.5" - "@turf/invariant" "^5.1.5" - lineclip "^1.1.5" - -"@turf/bbox-polygon@5.1.x", "@turf/bbox-polygon@^5.1.5": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/bbox-polygon/-/bbox-polygon-5.1.5.tgz#6aeba4ed51d85d296e0f7c38b88c339f01eee024" - integrity sha1-auuk7VHYXSluD3w4uIwznwHu4CQ= - dependencies: - "@turf/helpers" "^5.1.5" - -"@turf/bbox@5.1.x", "@turf/bbox@^5.1.5": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/bbox/-/bbox-5.1.5.tgz#3051df514ad4c50f4a4f9b8a2d15fd8b6840eda3" - integrity sha1-MFHfUUrUxQ9KT5uKLRX9i2hA7aM= - dependencies: - "@turf/helpers" "^5.1.5" - "@turf/meta" "^5.1.5" - -"@turf/bearing@5.1.x", "@turf/bearing@^5.1.5": +"@turf/bearing@^5.1.5": version "5.1.5" resolved "https://registry.npmjs.org/@turf/bearing/-/bearing-5.1.5.tgz#7a0b790136c4ef4797f0246305d45cbe2d27b3f7" integrity sha1-egt5ATbE70eX8CRjBdRcvi0ns/c= @@ -3658,190 +3616,6 @@ "@turf/helpers" "^5.1.5" "@turf/invariant" "^5.1.5" -"@turf/bearing@6.x": - version "6.0.1" - resolved "https://registry.npmjs.org/@turf/bearing/-/bearing-6.0.1.tgz#8da5d17092e571f170cde7bfb2e5b0d74923c92d" - integrity sha512-mXY1NozqV9EFfBTbUItujwfqfQF0G/Xe2fzvnZle90ekPEUfhi4Dgf5JswJTd96J9LiT8kcd6Jonp5khnx0wIg== - dependencies: - "@turf/helpers" "6.x" - "@turf/invariant" "6.x" - -"@turf/bezier-spline@5.1.x": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/bezier-spline/-/bezier-spline-5.1.5.tgz#59a27bba5d7b97ef15ab3fd5a40fbd2387049bca" - integrity sha1-WaJ7ul17l+8Vqz/VpA+9I4cEm8o= - dependencies: - "@turf/helpers" "^5.1.5" - "@turf/invariant" "^5.1.5" - -"@turf/boolean-clockwise@5.1.x", "@turf/boolean-clockwise@^5.1.5": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/boolean-clockwise/-/boolean-clockwise-5.1.5.tgz#3302b7dac62c5e291a0789e29af7283387fa9deb" - integrity sha1-MwK32sYsXikaB4nimvcoM4f6nes= - dependencies: - "@turf/helpers" "^5.1.5" - "@turf/invariant" "^5.1.5" - -"@turf/boolean-contains@5.1.x", "@turf/boolean-contains@^5.1.5": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/boolean-contains/-/boolean-contains-5.1.5.tgz#596d63aee636f7ad53ee99f9ff24c96994a0ef14" - integrity sha1-WW1jruY2961T7pn5/yTJaZSg7xQ= - dependencies: - "@turf/bbox" "^5.1.5" - "@turf/boolean-point-in-polygon" "^5.1.5" - "@turf/boolean-point-on-line" "^5.1.5" - "@turf/helpers" "^5.1.5" - "@turf/invariant" "^5.1.5" - -"@turf/boolean-crosses@5.1.x": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/boolean-crosses/-/boolean-crosses-5.1.5.tgz#01bfaea2596f164de4a4d325094dc7c255c715d6" - integrity sha1-Ab+uollvFk3kpNMlCU3HwlXHFdY= - dependencies: - "@turf/boolean-point-in-polygon" "^5.1.5" - "@turf/helpers" "^5.1.5" - "@turf/invariant" "^5.1.5" - "@turf/line-intersect" "^5.1.5" - "@turf/polygon-to-line" "^5.1.5" - -"@turf/boolean-disjoint@5.1.x": - version "5.1.6" - resolved "https://registry.npmjs.org/@turf/boolean-disjoint/-/boolean-disjoint-5.1.6.tgz#3fbd87084b269133f5fd15725deb3c6675fb8a9d" - integrity sha512-KHvUS6SBNYHBCLIJEJrg04pF5Oy+Fqn8V5G9U+9pti5vI9tyX7Ln2g7RSB7iJ1Cxsz8QAi6OukhXjEF2/8ZpGg== - dependencies: - "@turf/boolean-point-in-polygon" "^5.1.5" - "@turf/helpers" "^5.1.5" - "@turf/line-intersect" "^5.1.5" - "@turf/meta" "^5.1.5" - "@turf/polygon-to-line" "^5.1.5" - -"@turf/boolean-equal@5.1.x": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/boolean-equal/-/boolean-equal-5.1.5.tgz#29f8f6d60bb84507dfd765b32254db8e72c938a4" - integrity sha1-Kfj21gu4RQff12WzIlTbjnLJOKQ= - dependencies: - "@turf/clean-coords" "^5.1.5" - "@turf/helpers" "^5.1.5" - "@turf/invariant" "^5.1.5" - geojson-equality "0.1.6" - -"@turf/boolean-overlap@5.1.x", "@turf/boolean-overlap@^5.1.5": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/boolean-overlap/-/boolean-overlap-5.1.5.tgz#0d4e64c52c770a28e93d9efcdf8a8b8373acce75" - integrity sha1-DU5kxSx3CijpPZ7834qLg3OsznU= - dependencies: - "@turf/helpers" "^5.1.5" - "@turf/invariant" "^5.1.5" - "@turf/line-intersect" "^5.1.5" - "@turf/line-overlap" "^5.1.5" - "@turf/meta" "^5.1.5" - geojson-equality "0.1.6" - -"@turf/boolean-parallel@5.1.x": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/boolean-parallel/-/boolean-parallel-5.1.5.tgz#739358475ea5b65c7e1827a3c3e0e8a687d3a85d" - integrity sha1-c5NYR16ltlx+GCejw+DopofTqF0= - dependencies: - "@turf/clean-coords" "^5.1.5" - "@turf/helpers" "^5.1.5" - "@turf/line-segment" "^5.1.5" - "@turf/rhumb-bearing" "^5.1.5" - -"@turf/boolean-point-in-polygon@5.1.x", "@turf/boolean-point-in-polygon@^5.1.5": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/boolean-point-in-polygon/-/boolean-point-in-polygon-5.1.5.tgz#f01cc194d1e030a548bfda981cba43cfd62941b7" - integrity sha1-8BzBlNHgMKVIv9qYHLpDz9YpQbc= - dependencies: - "@turf/helpers" "^5.1.5" - "@turf/invariant" "^5.1.5" - -"@turf/boolean-point-on-line@5.1.x", "@turf/boolean-point-on-line@^5.1.5": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/boolean-point-on-line/-/boolean-point-on-line-5.1.5.tgz#f633c5ff802ad24bb8f158dadbaf6ff4a023dd7b" - integrity sha1-9jPF/4Aq0ku48Vja269v9KAj3Xs= - dependencies: - "@turf/helpers" "^5.1.5" - "@turf/invariant" "^5.1.5" - -"@turf/boolean-within@5.1.x", "@turf/boolean-within@^5.1.5": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/boolean-within/-/boolean-within-5.1.5.tgz#47105d56d0752a9d0fbfcd43c36a5f9149dc8697" - integrity sha1-RxBdVtB1Kp0Pv81Dw2pfkUnchpc= - dependencies: - "@turf/bbox" "^5.1.5" - "@turf/boolean-point-in-polygon" "^5.1.5" - "@turf/boolean-point-on-line" "^5.1.5" - "@turf/helpers" "^5.1.5" - "@turf/invariant" "^5.1.5" - -"@turf/buffer@5.1.x": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/buffer/-/buffer-5.1.5.tgz#841c9627cfb974b122ac4e1a956f0466bc0231c4" - integrity sha1-hByWJ8+5dLEirE4alW8EZrwCMcQ= - dependencies: - "@turf/bbox" "^5.1.5" - "@turf/center" "^5.1.5" - "@turf/helpers" "^5.1.5" - "@turf/meta" "^5.1.5" - "@turf/projection" "^5.1.5" - d3-geo "1.7.1" - turf-jsts "*" - -"@turf/center-mean@5.1.x", "@turf/center-mean@^5.1.5": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/center-mean/-/center-mean-5.1.5.tgz#8c8e9875391e5f09f0e6e78f5d661b88b2108a0a" - integrity sha1-jI6YdTkeXwnw5uePXWYbiLIQigo= - dependencies: - "@turf/bbox" "^5.1.5" - "@turf/helpers" "^5.1.5" - "@turf/meta" "^5.1.5" - -"@turf/center-median@5.1.x": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/center-median/-/center-median-5.1.5.tgz#bb461bfe7a2a48601d8a4727685718723a14a872" - integrity sha1-u0Yb/noqSGAdikcnaFcYcjoUqHI= - dependencies: - "@turf/center-mean" "^5.1.5" - "@turf/centroid" "^5.1.5" - "@turf/distance" "^5.1.5" - "@turf/helpers" "^5.1.5" - "@turf/meta" "^5.1.5" - -"@turf/center-of-mass@5.1.x": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/center-of-mass/-/center-of-mass-5.1.5.tgz#4d3bd79d88498dbab8324d4f69f0322f6520b9ca" - integrity sha1-TTvXnYhJjbq4Mk1PafAyL2Uguco= - dependencies: - "@turf/centroid" "^5.1.5" - "@turf/convex" "^5.1.5" - "@turf/helpers" "^5.1.5" - "@turf/invariant" "^5.1.5" - "@turf/meta" "^5.1.5" - -"@turf/center@5.1.x", "@turf/center@^5.1.5": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/center/-/center-5.1.5.tgz#44ab2cd954f63c0d37757f7158a99c3ef5114b80" - integrity sha1-RKss2VT2PA03dX9xWKmcPvURS4A= - dependencies: - "@turf/bbox" "^5.1.5" - "@turf/helpers" "^5.1.5" - -"@turf/centroid@5.1.x", "@turf/centroid@^5.1.5": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/centroid/-/centroid-5.1.5.tgz#778ada74216335021ad8fd0e7a65a8349d53c769" - integrity sha1-d4radCFjNQIa2P0OemWoNJ1Tx2k= - dependencies: - "@turf/helpers" "^5.1.5" - "@turf/meta" "^5.1.5" - -"@turf/circle@5.1.x", "@turf/circle@^5.1.5": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/circle/-/circle-5.1.5.tgz#9b1577835508ab52fb1c10b2a5065cba2b87b6a5" - integrity sha1-mxV3g1UIq1L7HBCypQZcuiuHtqU= - dependencies: - "@turf/destination" "^5.1.5" - "@turf/helpers" "^5.1.5" - "@turf/circle@^6.0.1": version "6.0.1" resolved "https://registry.npmjs.org/@turf/circle/-/circle-6.0.1.tgz#0ab72083373ae3c76b700c17a504ab1b5c0910b9" @@ -3850,108 +3624,6 @@ "@turf/destination" "6.x" "@turf/helpers" "6.x" -"@turf/clean-coords@5.1.x", "@turf/clean-coords@^5.1.5": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/clean-coords/-/clean-coords-5.1.5.tgz#12800a98a78c9a452a72ec428493c43acf2ada1f" - integrity sha1-EoAKmKeMmkUqcuxChJPEOs8q2h8= - dependencies: - "@turf/helpers" "^5.1.5" - "@turf/invariant" "^5.1.5" - -"@turf/clone@5.1.x", "@turf/clone@^5.1.5": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/clone/-/clone-5.1.5.tgz#253e8d35477181976e33adfab50a0f02a7f0e367" - integrity sha1-JT6NNUdxgZduM636tQoPAqfw42c= - dependencies: - "@turf/helpers" "^5.1.5" - -"@turf/clone@6.x": - version "6.0.2" - resolved "https://registry.npmjs.org/@turf/clone/-/clone-6.0.2.tgz#7563cebbb3e2e19f361599bb244467e0dcc205c9" - integrity sha512-UVpYPnW3wRj3bPncR6Z2PRbowBk+nEdVWgGewPxrKKLfvswtVtG9n/OIyvbU3E3ZOadBVxTH2uAMEMOz4800FA== - dependencies: - "@turf/helpers" "6.x" - -"@turf/clusters-dbscan@5.1.x": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/clusters-dbscan/-/clusters-dbscan-5.1.5.tgz#5781fb4e656c747a0b8e9937df73181c0309e26f" - integrity sha1-V4H7TmVsdHoLjpk333MYHAMJ4m8= - dependencies: - "@turf/clone" "^5.1.5" - "@turf/distance" "^5.1.5" - "@turf/helpers" "^5.1.5" - "@turf/invariant" "^5.1.5" - "@turf/meta" "^5.1.5" - density-clustering "1.3.0" - -"@turf/clusters-kmeans@5.1.x": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/clusters-kmeans/-/clusters-kmeans-5.1.5.tgz#fd6dfea8b133ba8bdc2370ac3cacee1587a302f1" - integrity sha1-/W3+qLEzuovcI3CsPKzuFYejAvE= - dependencies: - "@turf/clone" "^5.1.5" - "@turf/helpers" "^5.1.5" - "@turf/invariant" "^5.1.5" - "@turf/meta" "^5.1.5" - skmeans "0.9.7" - -"@turf/clusters@5.1.x": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/clusters/-/clusters-5.1.5.tgz#673a5e5f1b19c9cababc57c908eeadd682224dd4" - integrity sha1-ZzpeXxsZycq6vFfJCO6t1oIiTdQ= - dependencies: - "@turf/helpers" "^5.1.5" - "@turf/meta" "^5.1.5" - -"@turf/collect@5.1.x": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/collect/-/collect-5.1.5.tgz#fe98c9a8c218ecf24ffc33d7029517b7c19b2a3e" - integrity sha1-/pjJqMIY7PJP/DPXApUXt8GbKj4= - dependencies: - "@turf/bbox" "^5.1.5" - "@turf/boolean-point-in-polygon" "^5.1.5" - "@turf/helpers" "^5.1.5" - rbush "^2.0.1" - -"@turf/combine@5.1.x": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/combine/-/combine-5.1.5.tgz#bb14bdefa55504357195fc1a124cd7d53a8c8905" - integrity sha1-uxS976VVBDVxlfwaEkzX1TqMiQU= - dependencies: - "@turf/helpers" "^5.1.5" - "@turf/meta" "^5.1.5" - -"@turf/concave@5.1.x": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/concave/-/concave-5.1.5.tgz#23bbaac387d034b96574a1bd70d059237a9d2110" - integrity sha1-I7uqw4fQNLlldKG9cNBZI3qdIRA= - dependencies: - "@turf/clone" "^5.1.5" - "@turf/distance" "^5.1.5" - "@turf/helpers" "^5.1.5" - "@turf/invariant" "^5.1.5" - "@turf/meta" "^5.1.5" - "@turf/tin" "^5.1.5" - topojson-client "3.x" - topojson-server "3.x" - -"@turf/convex@5.1.x", "@turf/convex@^5.1.5": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/convex/-/convex-5.1.5.tgz#0df9377dd002216ce9821b07f705e037dae3e01d" - integrity sha1-Dfk3fdACIWzpghsH9wXgN9rj4B0= - dependencies: - "@turf/helpers" "^5.1.5" - "@turf/meta" "^5.1.5" - concaveman "*" - -"@turf/destination@5.1.x", "@turf/destination@^5.1.5": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/destination/-/destination-5.1.5.tgz#ed35381bdce83bbddcbd07a2e2bce2bddffbcc26" - integrity sha1-7TU4G9zoO73cvQei4rzivd/7zCY= - dependencies: - "@turf/helpers" "^5.1.5" - "@turf/invariant" "^5.1.5" - "@turf/destination@6.x": version "6.0.1" resolved "https://registry.npmjs.org/@turf/destination/-/destination-6.0.1.tgz#5275887fa96ec463f44864a2c17f0b712361794a" @@ -3960,33 +3632,15 @@ "@turf/helpers" "6.x" "@turf/invariant" "6.x" -"@turf/difference@5.1.x": +"@turf/destination@^5.1.5": version "5.1.5" - resolved "https://registry.npmjs.org/@turf/difference/-/difference-5.1.5.tgz#a24d690a7bca803f1090a9ee3b9d906fc4371f42" - integrity sha1-ok1pCnvKgD8QkKnuO52Qb8Q3H0I= + resolved "https://registry.npmjs.org/@turf/destination/-/destination-5.1.5.tgz#ed35381bdce83bbddcbd07a2e2bce2bddffbcc26" + integrity sha1-7TU4G9zoO73cvQei4rzivd/7zCY= dependencies: - "@turf/area" "^5.1.5" "@turf/helpers" "^5.1.5" "@turf/invariant" "^5.1.5" - "@turf/meta" "^5.1.5" - turf-jsts "*" -"@turf/dissolve@5.1.x": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/dissolve/-/dissolve-5.1.5.tgz#2cf133a9021d2163831c3d7a958d6507f9d81938" - integrity sha1-LPEzqQIdIWODHD16lY1lB/nYGTg= - dependencies: - "@turf/boolean-overlap" "^5.1.5" - "@turf/clone" "^5.1.5" - "@turf/helpers" "^5.1.5" - "@turf/invariant" "^5.1.5" - "@turf/line-intersect" "^5.1.5" - "@turf/meta" "^5.1.5" - "@turf/union" "^5.1.5" - geojson-rbush "2.1.0" - get-closest "*" - -"@turf/distance@5.1.x", "@turf/distance@^5.1.5": +"@turf/distance@^5.1.5": version "5.1.5" resolved "https://registry.npmjs.org/@turf/distance/-/distance-5.1.5.tgz#39cf18204bbf87587d707e609a60118909156409" integrity sha1-Oc8YIEu/h1h9cH5gmmARiQkVZAk= @@ -3994,7 +3648,7 @@ "@turf/helpers" "^5.1.5" "@turf/invariant" "^5.1.5" -"@turf/distance@6.x", "@turf/distance@^6.0.1": +"@turf/distance@^6.0.1": version "6.0.1" resolved "https://registry.npmjs.org/@turf/distance/-/distance-6.0.1.tgz#0761f28784286e7865a427c4e7e3593569c2dea8" integrity sha512-q7t7rWIWfkg7MP1Vt4uLjSEhe5rPfCO2JjpKmk7JC+QZKEQkuvHEqy3ejW1iC7Kw5ZcZNR3qdMGGz+6HnVwqvg== @@ -4002,113 +3656,16 @@ "@turf/helpers" "6.x" "@turf/invariant" "6.x" -"@turf/ellipse@5.1.x", "@turf/ellipse@^5.1.5": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/ellipse/-/ellipse-5.1.5.tgz#d57cab853985920cde60228a78d80458025c54be" - integrity sha1-1XyrhTmFkgzeYCKKeNgEWAJcVL4= - dependencies: - "@turf/helpers" "^5.1.5" - "@turf/invariant" "^5.1.5" - "@turf/rhumb-destination" "^5.1.5" - "@turf/transform-rotate" "^5.1.5" - -"@turf/envelope@5.1.x", "@turf/envelope@^5.1.5": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/envelope/-/envelope-5.1.5.tgz#5013309c53fdd43dfaf4b588a65c3fed7dbc108a" - integrity sha1-UBMwnFP91D369LWIplw/7X28EIo= - dependencies: - "@turf/bbox" "^5.1.5" - "@turf/bbox-polygon" "^5.1.5" - "@turf/helpers" "^5.1.5" - -"@turf/explode@5.1.x", "@turf/explode@^5.1.5": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/explode/-/explode-5.1.5.tgz#b12b2f774004a1b48f62ba95b20a1c655a3de118" - integrity sha1-sSsvd0AEobSPYrqVsgocZVo94Rg= - dependencies: - "@turf/helpers" "^5.1.5" - "@turf/meta" "^5.1.5" - -"@turf/flatten@5.1.x": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/flatten/-/flatten-5.1.5.tgz#da2927067133ed6169b0b9d607b9215688aa1358" - integrity sha1-2iknBnEz7WFpsLnWB7khVoiqE1g= - dependencies: - "@turf/helpers" "^5.1.5" - "@turf/meta" "^5.1.5" - -"@turf/flip@5.1.x": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/flip/-/flip-5.1.5.tgz#436f643a722f0ca53b9fce638e4693db3608a68a" - integrity sha1-Q29kOnIvDKU7n85jjkaT2zYIpoo= - dependencies: - "@turf/clone" "^5.1.5" - "@turf/helpers" "^5.1.5" - "@turf/meta" "^5.1.5" - -"@turf/great-circle@5.1.x": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/great-circle/-/great-circle-5.1.5.tgz#debfb671ce475509cb637301c15fcfccfa359a93" - integrity sha1-3r+2cc5HVQnLY3MBwV/PzPo1mpM= - dependencies: - "@turf/helpers" "^5.1.5" - "@turf/invariant" "^5.1.5" - -"@turf/helpers@*", "@turf/helpers@6.x", "@turf/helpers@^6.1.4": +"@turf/helpers@6.x", "@turf/helpers@^6.1.4": version "6.1.4" resolved "https://registry.npmjs.org/@turf/helpers/-/helpers-6.1.4.tgz#d6fd7ebe6782dd9c87dca5559bda5c48ae4c3836" integrity sha512-vJvrdOZy1ngC7r3MDA7zIGSoIgyrkWcGnNIEaqn/APmw+bVLF2gAW7HIsdTxd12s5wQMqEpqIQrmrbRRZ0xC7g== -"@turf/helpers@5.1.x", "@turf/helpers@^5.1.5": +"@turf/helpers@^5.1.5": version "5.1.5" resolved "https://registry.npmjs.org/@turf/helpers/-/helpers-5.1.5.tgz#153405227ab933d004a5bb9641a9ed999fcbe0cf" integrity sha1-FTQFInq5M9AEpbuWQantmZ/L4M8= -"@turf/hex-grid@5.1.x", "@turf/hex-grid@^5.1.5": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/hex-grid/-/hex-grid-5.1.5.tgz#9b7ba5fecf5051f1e85892f713fce5c550502a6a" - integrity sha1-m3ul/s9QUfHoWJL3E/zlxVBQKmo= - dependencies: - "@turf/distance" "^5.1.5" - "@turf/helpers" "^5.1.5" - "@turf/intersect" "^5.1.5" - "@turf/invariant" "^5.1.5" - -"@turf/interpolate@5.1.x": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/interpolate/-/interpolate-5.1.5.tgz#0f12f0ab756d6dd10afb290ca6e877bdef013eaa" - integrity sha1-DxLwq3VtbdEK+ykMpuh3ve8BPqo= - dependencies: - "@turf/bbox" "^5.1.5" - "@turf/centroid" "^5.1.5" - "@turf/clone" "^5.1.5" - "@turf/distance" "^5.1.5" - "@turf/helpers" "^5.1.5" - "@turf/hex-grid" "^5.1.5" - "@turf/invariant" "^5.1.5" - "@turf/meta" "^5.1.5" - "@turf/point-grid" "^5.1.5" - "@turf/square-grid" "^5.1.5" - "@turf/triangle-grid" "^5.1.5" - -"@turf/intersect@5.1.x", "@turf/intersect@^5.1.5": - version "5.1.6" - resolved "https://registry.npmjs.org/@turf/intersect/-/intersect-5.1.6.tgz#13ffcceb7a529c2a7e5d6681ab3ba671f868e95f" - integrity sha512-KXyNv/GXdoGAOy03qZF53rgtXC2tNhF/4jLwTKiVRrBQH6kcEpipGStdJ+QkYIlarQPa8f7I9UlVAB19et4MfQ== - dependencies: - "@turf/clean-coords" "^5.1.5" - "@turf/helpers" "^5.1.5" - "@turf/invariant" "^5.1.5" - "@turf/truncate" "^5.1.5" - turf-jsts "*" - -"@turf/invariant@5.1.x": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/invariant/-/invariant-5.1.5.tgz#f59f4fefa09224b15dce1651f903c868d57a24e1" - integrity sha1-9Z9P76CSJLFdzhZR+QPIaNV6JOE= - dependencies: - "@turf/helpers" "^5.1.5" - "@turf/invariant@6.x", "@turf/invariant@^6.1.2": version "6.1.2" resolved "https://registry.npmjs.org/@turf/invariant/-/invariant-6.1.2.tgz#6013ed6219f9ac2edada9b31e1dfa5918eb0a2f7" @@ -4123,183 +3680,14 @@ dependencies: "@turf/helpers" "^5.1.5" -"@turf/isobands@5.1.x": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/isobands/-/isobands-5.1.5.tgz#6b44cef584d551a31304187af23b4a1582e3f08d" - integrity sha1-a0TO9YTVUaMTBBh68jtKFYLj8I0= - dependencies: - "@turf/area" "^5.1.5" - "@turf/bbox" "^5.1.5" - "@turf/boolean-point-in-polygon" "^5.1.5" - "@turf/explode" "^5.1.5" - "@turf/helpers" "^5.1.5" - "@turf/invariant" "^5.1.5" - "@turf/meta" "^5.1.5" - -"@turf/isolines@5.1.x": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/isolines/-/isolines-5.1.5.tgz#8ab4e7f42bb3dfc54614e5bf155967f7e55d2de1" - integrity sha1-irTn9Cuz38VGFOW/FVln9+VdLeE= - dependencies: - "@turf/bbox" "^5.1.5" - "@turf/helpers" "^5.1.5" - "@turf/invariant" "^5.1.5" - "@turf/meta" "^5.1.5" - -"@turf/kinks@5.1.x": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/kinks/-/kinks-5.1.5.tgz#8abb6961d9bb0107213baddf2c2c2640d0256980" - integrity sha1-irtpYdm7AQchO63fLCwmQNAlaYA= - dependencies: - "@turf/helpers" "^5.1.5" - -"@turf/length@5.1.x", "@turf/length@^5.1.5": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/length/-/length-5.1.5.tgz#f3a5f864c2b996a8bb471794535a1faf12eebefb" - integrity sha1-86X4ZMK5lqi7RxeUU1ofrxLuvvs= - dependencies: - "@turf/distance" "^5.1.5" - "@turf/helpers" "^5.1.5" - "@turf/meta" "^5.1.5" - -"@turf/line-arc@5.1.x", "@turf/line-arc@^5.1.5": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/line-arc/-/line-arc-5.1.5.tgz#0078a7447835a12ae414a211f9a64d1186150e15" - integrity sha1-AHinRHg1oSrkFKIR+aZNEYYVDhU= - dependencies: - "@turf/circle" "^5.1.5" - "@turf/destination" "^5.1.5" - "@turf/helpers" "^5.1.5" - -"@turf/line-chunk@5.1.x": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/line-chunk/-/line-chunk-5.1.5.tgz#910a85c05c06d9d0f9c38977a05e0818d5085c42" - integrity sha1-kQqFwFwG2dD5w4l3oF4IGNUIXEI= - dependencies: - "@turf/helpers" "^5.1.5" - "@turf/length" "^5.1.5" - "@turf/line-slice-along" "^5.1.5" - "@turf/meta" "^5.1.5" - -"@turf/line-intersect@5.1.x", "@turf/line-intersect@^5.1.5": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/line-intersect/-/line-intersect-5.1.5.tgz#0e29071ae403295e491723bc49f5cfac8d11ddf3" - integrity sha1-DikHGuQDKV5JFyO8SfXPrI0R3fM= - dependencies: - "@turf/helpers" "^5.1.5" - "@turf/invariant" "^5.1.5" - "@turf/line-segment" "^5.1.5" - "@turf/meta" "^5.1.5" - geojson-rbush "2.1.0" - -"@turf/line-offset@5.1.x": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/line-offset/-/line-offset-5.1.5.tgz#2ab5b2f089f8c913e231d994378e79dca90b5a1e" - integrity sha1-KrWy8In4yRPiMdmUN4553KkLWh4= - dependencies: - "@turf/helpers" "^5.1.5" - "@turf/invariant" "^5.1.5" - "@turf/meta" "^5.1.5" - -"@turf/line-overlap@5.1.x", "@turf/line-overlap@^5.1.5": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/line-overlap/-/line-overlap-5.1.5.tgz#943c6f87a0386dc43dfac11d2b3ff9c112cd3f60" - integrity sha1-lDxvh6A4bcQ9+sEdKz/5wRLNP2A= - dependencies: - "@turf/boolean-point-on-line" "^5.1.5" - "@turf/helpers" "^5.1.5" - "@turf/invariant" "^5.1.5" - "@turf/line-segment" "^5.1.5" - "@turf/meta" "^5.1.5" - "@turf/nearest-point-on-line" "^5.1.5" - geojson-rbush "2.1.0" - -"@turf/line-segment@5.1.x", "@turf/line-segment@^5.1.5": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/line-segment/-/line-segment-5.1.5.tgz#3207aaee546ab24c3d8dc3cc63f91c770b8013e5" - integrity sha1-Mgeq7lRqskw9jcPMY/kcdwuAE+U= - dependencies: - "@turf/helpers" "^5.1.5" - "@turf/invariant" "^5.1.5" - "@turf/meta" "^5.1.5" - -"@turf/line-slice-along@5.1.x", "@turf/line-slice-along@^5.1.5": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/line-slice-along/-/line-slice-along-5.1.5.tgz#eddad0a21ef479f2968a11bd2dd7289a2132e9a5" - integrity sha1-7drQoh70efKWihG9LdcomiEy6aU= - dependencies: - "@turf/bearing" "^5.1.5" - "@turf/destination" "^5.1.5" - "@turf/distance" "^5.1.5" - "@turf/helpers" "^5.1.5" - -"@turf/line-slice@5.1.x": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/line-slice/-/line-slice-5.1.5.tgz#1ecfce1462a378579754cedf4464cde26829f2b5" - integrity sha1-Hs/OFGKjeFeXVM7fRGTN4mgp8rU= - dependencies: - "@turf/helpers" "^5.1.5" - "@turf/invariant" "^5.1.5" - "@turf/nearest-point-on-line" "^5.1.5" - -"@turf/line-split@5.1.x": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/line-split/-/line-split-5.1.5.tgz#5b2df4c37619b72ef725b5163cf9926d5540acb7" - integrity sha1-Wy30w3YZty73JbUWPPmSbVVArLc= - dependencies: - "@turf/bbox" "^5.1.5" - "@turf/helpers" "^5.1.5" - "@turf/invariant" "^5.1.5" - "@turf/line-intersect" "^5.1.5" - "@turf/line-segment" "^5.1.5" - "@turf/meta" "^5.1.5" - "@turf/nearest-point-on-line" "^5.1.5" - "@turf/square" "^5.1.5" - "@turf/truncate" "^5.1.5" - geojson-rbush "2.1.0" - -"@turf/line-to-polygon@5.1.x": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/line-to-polygon/-/line-to-polygon-5.1.5.tgz#213cf41a68f8224778ba39d3187dec3e8b81865a" - integrity sha1-ITz0Gmj4Ikd4ujnTGH3sPouBhlo= - dependencies: - "@turf/bbox" "^5.1.5" - "@turf/helpers" "^5.1.5" - "@turf/invariant" "^5.1.5" - -"@turf/mask@5.1.x": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/mask/-/mask-5.1.5.tgz#9ab0fef1a272c98fe3ef492f9ffb618206b242d5" - integrity sha1-mrD+8aJyyY/j70kvn/thggayQtU= - dependencies: - "@turf/bbox" "^5.1.5" - "@turf/helpers" "^5.1.5" - "@turf/meta" "^5.1.5" - "@turf/union" "^5.1.5" - rbush "^2.0.1" - -"@turf/meta@*", "@turf/meta@6.x", "@turf/meta@^6.0.2": +"@turf/meta@^6.0.2": version "6.0.2" resolved "https://registry.npmjs.org/@turf/meta/-/meta-6.0.2.tgz#eb92951126d24a613ac1b7b99d733fcc20fd30cf" integrity sha512-VA7HJkx7qF1l3+GNGkDVn2oXy4+QoLP6LktXAaZKjuT1JI0YESat7quUkbCMy4zP9lAUuvS4YMslLyTtr919FA== dependencies: "@turf/helpers" "6.x" -"@turf/meta@5.1.x": - version "5.1.6" - resolved "https://registry.npmjs.org/@turf/meta/-/meta-5.1.6.tgz#c20a863eded0869fb28548dee889341bccb46a46" - integrity sha1-wgqGPt7Qhp+yhUje6Ik0G8y0akY= - dependencies: - "@turf/helpers" "^5.1.5" - -"@turf/meta@^5.1.5": - version "5.2.0" - resolved "https://registry.npmjs.org/@turf/meta/-/meta-5.2.0.tgz#3b1ad485ee0c3b0b1775132a32c384d53e4ba53d" - integrity sha1-OxrUhe4MOwsXdRMqMsOE1T5LpT0= - dependencies: - "@turf/helpers" "^5.1.5" - -"@turf/midpoint@5.1.x", "@turf/midpoint@^5.1.5": +"@turf/midpoint@^5.1.5": version "5.1.5" resolved "https://registry.npmjs.org/@turf/midpoint/-/midpoint-5.1.5.tgz#e261f6b2b0ea8124cceff552a262dd465c9d05f0" integrity sha1-4mH2srDqgSTM7/VSomLdRlydBfA= @@ -4309,488 +3697,6 @@ "@turf/distance" "^5.1.5" "@turf/helpers" "^5.1.5" -"@turf/nearest-point-on-line@5.1.x", "@turf/nearest-point-on-line@^5.1.5": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/nearest-point-on-line/-/nearest-point-on-line-5.1.5.tgz#5606ae297f15947524bea51a2a9ef51ec1bf9c36" - integrity sha1-VgauKX8VlHUkvqUaKp71HsG/nDY= - dependencies: - "@turf/bearing" "^5.1.5" - "@turf/destination" "^5.1.5" - "@turf/distance" "^5.1.5" - "@turf/helpers" "^5.1.5" - "@turf/invariant" "^5.1.5" - "@turf/line-intersect" "^5.1.5" - "@turf/meta" "^5.1.5" - -"@turf/nearest-point-to-line@5.1.x": - version "5.1.6" - resolved "https://registry.npmjs.org/@turf/nearest-point-to-line/-/nearest-point-to-line-5.1.6.tgz#d30b7606e56a3dce97f4db6d45d352470e0b3f88" - integrity sha512-ZSvDIEiHhifn/vNwLXZI/E8xmEz5yBPqfUR7BVHRZrB1cP7jLhKZvkbidjG//uW8Fr1Ulc+PFOXczLspIcx/lw== - dependencies: - "@turf/helpers" "6.x" - "@turf/invariant" "6.x" - "@turf/meta" "6.x" - "@turf/point-to-line-distance" "^5.1.5" - object-assign "*" - -"@turf/nearest-point@5.1.x", "@turf/nearest-point@^5.1.5": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/nearest-point/-/nearest-point-5.1.5.tgz#12050de41c398443224c7978de0f6213900d34fb" - integrity sha1-EgUN5Bw5hEMiTHl43g9iE5ANNPs= - dependencies: - "@turf/clone" "^5.1.5" - "@turf/distance" "^5.1.5" - "@turf/helpers" "^5.1.5" - "@turf/meta" "^5.1.5" - -"@turf/planepoint@5.1.x": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/planepoint/-/planepoint-5.1.5.tgz#18bbdf006f759def5e42c6a006c9f9de81b2b7ff" - integrity sha1-GLvfAG91ne9eQsagBsn53oGyt/8= - dependencies: - "@turf/helpers" "^5.1.5" - "@turf/invariant" "^5.1.5" - -"@turf/point-grid@5.1.x", "@turf/point-grid@^5.1.5": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/point-grid/-/point-grid-5.1.5.tgz#305141248f50bafe36ce7e66ba4b97e7ab236887" - integrity sha1-MFFBJI9Quv42zn5mukuX56sjaIc= - dependencies: - "@turf/boolean-within" "^5.1.5" - "@turf/distance" "^5.1.5" - "@turf/helpers" "^5.1.5" - "@turf/invariant" "^5.1.5" - -"@turf/point-on-feature@5.1.x": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/point-on-feature/-/point-on-feature-5.1.5.tgz#30c7f032430277c6418d96d289e45b6bfb213fe7" - integrity sha1-MMfwMkMCd8ZBjZbSieRba/shP+c= - dependencies: - "@turf/boolean-point-in-polygon" "^5.1.5" - "@turf/center" "^5.1.5" - "@turf/explode" "^5.1.5" - "@turf/helpers" "^5.1.5" - "@turf/nearest-point" "^5.1.5" - -"@turf/point-to-line-distance@5.1.x", "@turf/point-to-line-distance@^5.1.5": - version "5.1.6" - resolved "https://registry.npmjs.org/@turf/point-to-line-distance/-/point-to-line-distance-5.1.6.tgz#954f6cb68546420a030d8480392503264970d2d8" - integrity sha512-PE3hiTeeDEi4ZLPtI8XAzFYW9nHo1EVsZGm/4ZVV8jo39d3X1oLVHxY3e1PkCmWwRapXy4QLqvnTQ7nU4wspNw== - dependencies: - "@turf/bearing" "6.x" - "@turf/distance" "6.x" - "@turf/helpers" "6.x" - "@turf/invariant" "6.x" - "@turf/meta" "6.x" - "@turf/projection" "6.x" - "@turf/rhumb-bearing" "6.x" - "@turf/rhumb-distance" "6.x" - -"@turf/points-within-polygon@5.1.x", "@turf/points-within-polygon@^5.1.5": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/points-within-polygon/-/points-within-polygon-5.1.5.tgz#2b855a5df3aada57c2ee820a0754ab94928a2337" - integrity sha1-K4VaXfOq2lfC7oIKB1SrlJKKIzc= - dependencies: - "@turf/boolean-point-in-polygon" "^5.1.5" - "@turf/helpers" "^5.1.5" - "@turf/meta" "^5.1.5" - -"@turf/polygon-tangents@5.1.x": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/polygon-tangents/-/polygon-tangents-5.1.5.tgz#2bf00991473025b178e250dc7cb9ae5409bbd652" - integrity sha1-K/AJkUcwJbF44lDcfLmuVAm71lI= - dependencies: - "@turf/helpers" "^5.1.5" - "@turf/invariant" "^5.1.5" - -"@turf/polygon-to-line@5.1.x", "@turf/polygon-to-line@^5.1.5": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/polygon-to-line/-/polygon-to-line-5.1.5.tgz#23bb448d84dc4c651999ac611a36d91c5925036a" - integrity sha1-I7tEjYTcTGUZmaxhGjbZHFklA2o= - dependencies: - "@turf/helpers" "^5.1.5" - "@turf/invariant" "^5.1.5" - -"@turf/polygonize@5.1.x": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/polygonize/-/polygonize-5.1.5.tgz#0493fa11879f39d10b9ad02ce6a23e942d08aa32" - integrity sha1-BJP6EYefOdELmtAs5qI+lC0IqjI= - dependencies: - "@turf/boolean-point-in-polygon" "^5.1.5" - "@turf/envelope" "^5.1.5" - "@turf/helpers" "^5.1.5" - "@turf/invariant" "^5.1.5" - "@turf/meta" "^5.1.5" - -"@turf/projection@5.1.x", "@turf/projection@^5.1.5": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/projection/-/projection-5.1.5.tgz#24517eeeb2f36816ba9f712e7ae6d6a368edf757" - integrity sha1-JFF+7rLzaBa6n3EueubWo2jt91c= - dependencies: - "@turf/clone" "^5.1.5" - "@turf/helpers" "^5.1.5" - "@turf/meta" "^5.1.5" - -"@turf/projection@6.x": - version "6.0.1" - resolved "https://registry.npmjs.org/@turf/projection/-/projection-6.0.1.tgz#bde70ae8441b9cefddf26d71c7db74bc3d9792b1" - integrity sha512-Y3RvGT6I53MjYKLG69e9sMk45wJXcLbrEO1t6P3WQQQGqA2gYhhMJyV41vE2Z2llrJpvs2dDx/tIeQzGd0HHMQ== - dependencies: - "@turf/clone" "6.x" - "@turf/helpers" "6.x" - "@turf/meta" "6.x" - -"@turf/random@5.1.x": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/random/-/random-5.1.5.tgz#b32efc934560ae8ba57e8ebb51f241c39fba2e7b" - integrity sha1-sy78k0Vgroulfo67UfJBw5+6Lns= - dependencies: - "@turf/helpers" "^5.1.5" - -"@turf/rewind@5.1.x": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/rewind/-/rewind-5.1.5.tgz#9ea3db4a68b73c1fd1dd11f57631b143cfefa1c9" - integrity sha1-nqPbSmi3PB/R3RH1djGxQ8/vock= - dependencies: - "@turf/boolean-clockwise" "^5.1.5" - "@turf/clone" "^5.1.5" - "@turf/helpers" "^5.1.5" - "@turf/invariant" "^5.1.5" - "@turf/meta" "^5.1.5" - -"@turf/rhumb-bearing@5.1.x", "@turf/rhumb-bearing@^5.1.5": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/rhumb-bearing/-/rhumb-bearing-5.1.5.tgz#acf6a502427eb8c49e18cda6ae0effab0c5ddcd2" - integrity sha1-rPalAkJ+uMSeGM2mrg7/qwxd3NI= - dependencies: - "@turf/helpers" "^5.1.5" - "@turf/invariant" "^5.1.5" - -"@turf/rhumb-bearing@6.x": - version "6.0.1" - resolved "https://registry.npmjs.org/@turf/rhumb-bearing/-/rhumb-bearing-6.0.1.tgz#182c4c21fe951e097fb468ae128dc22ef6078f3f" - integrity sha512-MVBra8OVfjM4+/N0B3o6cBIYg9p/uRKzA9uk05RfrzasEbUL1vdD23LkTooVL74Yw4UxL8BQD9hS5Re2COJFDA== - dependencies: - "@turf/helpers" "6.x" - "@turf/invariant" "6.x" - -"@turf/rhumb-destination@5.1.x", "@turf/rhumb-destination@^5.1.5": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/rhumb-destination/-/rhumb-destination-5.1.5.tgz#b1b2aeb921547f2ac0c1a994b6a130f92463c742" - integrity sha1-sbKuuSFUfyrAwamUtqEw+SRjx0I= - dependencies: - "@turf/helpers" "^5.1.5" - "@turf/invariant" "^5.1.5" - -"@turf/rhumb-distance@5.1.x", "@turf/rhumb-distance@^5.1.5": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/rhumb-distance/-/rhumb-distance-5.1.5.tgz#1806857625f4225384dad413e69f39538ff5f765" - integrity sha1-GAaFdiX0IlOE2tQT5p85U4/192U= - dependencies: - "@turf/helpers" "^5.1.5" - "@turf/invariant" "^5.1.5" - -"@turf/rhumb-distance@6.x": - version "6.0.1" - resolved "https://registry.npmjs.org/@turf/rhumb-distance/-/rhumb-distance-6.0.1.tgz#ae1c5c823b4b04f75cd7fc240f7f93647db8bdd4" - integrity sha512-3G45DQtQByzzfHFPcCyJdUZFwsd45zfZ7sAb1ddF7mhEj4G70+T2G3GKjInymqDNrbyh2gbG6wQiZSToC8Uf9g== - dependencies: - "@turf/helpers" "6.x" - "@turf/invariant" "6.x" - -"@turf/sample@5.1.x": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/sample/-/sample-5.1.5.tgz#e9cb448a4789cc56ee3de2dd6781e2343435b411" - integrity sha1-6ctEikeJzFbuPeLdZ4HiNDQ1tBE= - dependencies: - "@turf/helpers" "^5.1.5" - -"@turf/sector@5.1.x": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/sector/-/sector-5.1.5.tgz#ac2bb94c13edd6034f6fdc2b67008135d20f5e07" - integrity sha1-rCu5TBPt1gNPb9wrZwCBNdIPXgc= - dependencies: - "@turf/circle" "^5.1.5" - "@turf/helpers" "^5.1.5" - "@turf/invariant" "^5.1.5" - "@turf/line-arc" "^5.1.5" - "@turf/meta" "^5.1.5" - -"@turf/shortest-path@5.1.x": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/shortest-path/-/shortest-path-5.1.5.tgz#854ae8096f6bc3e1300faca77f3e8f67d8f935ab" - integrity sha1-hUroCW9rw+EwD6ynfz6PZ9j5Nas= - dependencies: - "@turf/bbox" "^5.1.5" - "@turf/bbox-polygon" "^5.1.5" - "@turf/boolean-point-in-polygon" "^5.1.5" - "@turf/clean-coords" "^5.1.5" - "@turf/distance" "^5.1.5" - "@turf/helpers" "^5.1.5" - "@turf/invariant" "^5.1.5" - "@turf/meta" "^5.1.5" - "@turf/transform-scale" "^5.1.5" - -"@turf/simplify@5.1.x": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/simplify/-/simplify-5.1.5.tgz#0ac8f27a2eb4218183edd9998c3275abe408b926" - integrity sha1-Csjyei60IYGD7dmZjDJ1q+QIuSY= - dependencies: - "@turf/clean-coords" "^5.1.5" - "@turf/clone" "^5.1.5" - "@turf/helpers" "^5.1.5" - "@turf/meta" "^5.1.5" - -"@turf/square-grid@5.1.x", "@turf/square-grid@^5.1.5": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/square-grid/-/square-grid-5.1.5.tgz#1bd5f7b9eb14f0b60bc231fefe7351d1a32f1a51" - integrity sha1-G9X3uesU8LYLwjH+/nNR0aMvGlE= - dependencies: - "@turf/boolean-contains" "^5.1.5" - "@turf/boolean-overlap" "^5.1.5" - "@turf/distance" "^5.1.5" - "@turf/helpers" "^5.1.5" - "@turf/intersect" "^5.1.5" - "@turf/invariant" "^5.1.5" - -"@turf/square@5.1.x", "@turf/square@^5.1.5": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/square/-/square-5.1.5.tgz#aa7b21e6033cc9252c3a5bd6f3d88dabd6fed180" - integrity sha1-qnsh5gM8ySUsOlvW89iNq9b+0YA= - dependencies: - "@turf/distance" "^5.1.5" - "@turf/helpers" "^5.1.5" - -"@turf/standard-deviational-ellipse@5.1.x": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/standard-deviational-ellipse/-/standard-deviational-ellipse-5.1.5.tgz#85cd283b5e1aca58f21bd66412e414b56d852324" - integrity sha1-hc0oO14ayljyG9ZkEuQUtW2FIyQ= - dependencies: - "@turf/center-mean" "^5.1.5" - "@turf/ellipse" "^5.1.5" - "@turf/helpers" "^5.1.5" - "@turf/invariant" "^5.1.5" - "@turf/meta" "^5.1.5" - "@turf/points-within-polygon" "^5.1.5" - -"@turf/tag@5.1.x": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/tag/-/tag-5.1.5.tgz#d1ee1a5088ecfd4a1411019c98239ccf2a497d20" - integrity sha1-0e4aUIjs/UoUEQGcmCOczypJfSA= - dependencies: - "@turf/boolean-point-in-polygon" "^5.1.5" - "@turf/clone" "^5.1.5" - "@turf/helpers" "^5.1.5" - "@turf/meta" "^5.1.5" - -"@turf/tesselate@5.1.x": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/tesselate/-/tesselate-5.1.5.tgz#32a594e9c21a00420a9f90d2c43df3e1166061cd" - integrity sha1-MqWU6cIaAEIKn5DSxD3z4RZgYc0= - dependencies: - "@turf/helpers" "^5.1.5" - earcut "^2.0.0" - -"@turf/tin@5.1.x", "@turf/tin@^5.1.5": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/tin/-/tin-5.1.5.tgz#28223eafc5fbe9ae9acca81cdcfea5d1424c917d" - integrity sha1-KCI+r8X76a6azKgc3P6l0UJMkX0= - dependencies: - "@turf/helpers" "^5.1.5" - -"@turf/transform-rotate@5.1.x", "@turf/transform-rotate@^5.1.5": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/transform-rotate/-/transform-rotate-5.1.5.tgz#d096edd9e300fe315069d54d8e458c409221edfb" - integrity sha1-0Jbt2eMA/jFQadVNjkWMQJIh7fs= - dependencies: - "@turf/centroid" "^5.1.5" - "@turf/clone" "^5.1.5" - "@turf/helpers" "^5.1.5" - "@turf/invariant" "^5.1.5" - "@turf/meta" "^5.1.5" - "@turf/rhumb-bearing" "^5.1.5" - "@turf/rhumb-destination" "^5.1.5" - "@turf/rhumb-distance" "^5.1.5" - -"@turf/transform-scale@5.1.x", "@turf/transform-scale@^5.1.5": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/transform-scale/-/transform-scale-5.1.5.tgz#70fd3ae01856cf7bae9f15ad561cdfe8f89001b9" - integrity sha1-cP064BhWz3uunxWtVhzf6PiQAbk= - dependencies: - "@turf/bbox" "^5.1.5" - "@turf/center" "^5.1.5" - "@turf/centroid" "^5.1.5" - "@turf/clone" "^5.1.5" - "@turf/helpers" "^5.1.5" - "@turf/invariant" "^5.1.5" - "@turf/meta" "^5.1.5" - "@turf/rhumb-bearing" "^5.1.5" - "@turf/rhumb-destination" "^5.1.5" - "@turf/rhumb-distance" "^5.1.5" - -"@turf/transform-translate@5.1.x": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/transform-translate/-/transform-translate-5.1.5.tgz#530a257fb1dc7268dadcab34e67901eb2a3dec63" - integrity sha1-Uwolf7Hccmja3Ks05nkB6yo97GM= - dependencies: - "@turf/clone" "^5.1.5" - "@turf/helpers" "^5.1.5" - "@turf/invariant" "^5.1.5" - "@turf/meta" "^5.1.5" - "@turf/rhumb-destination" "^5.1.5" - -"@turf/triangle-grid@5.1.x", "@turf/triangle-grid@^5.1.5": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/triangle-grid/-/triangle-grid-5.1.5.tgz#7b36762108554c14f28caff3c48b1cfc82c8dc81" - integrity sha1-ezZ2IQhVTBTyjK/zxIsc/ILI3IE= - dependencies: - "@turf/distance" "^5.1.5" - "@turf/helpers" "^5.1.5" - "@turf/intersect" "^5.1.5" - "@turf/invariant" "^5.1.5" - -"@turf/truncate@5.1.x", "@turf/truncate@^5.1.5": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/truncate/-/truncate-5.1.5.tgz#9eedfb3b18ba81f2c98d3ead09431cca1884ad89" - integrity sha1-nu37Oxi6gfLJjT6tCUMcyhiErYk= - dependencies: - "@turf/helpers" "^5.1.5" - "@turf/meta" "^5.1.5" - -"@turf/turf@^5.1.6": - version "5.1.6" - resolved "https://registry.npmjs.org/@turf/turf/-/turf-5.1.6.tgz#c3122592887ed234b75468b8a8c45bf886fbf8f6" - integrity sha1-wxIlkoh+0jS3VGi4qMRb+Ib7+PY= - dependencies: - "@turf/along" "5.1.x" - "@turf/area" "5.1.x" - "@turf/bbox" "5.1.x" - "@turf/bbox-clip" "5.1.x" - "@turf/bbox-polygon" "5.1.x" - "@turf/bearing" "5.1.x" - "@turf/bezier-spline" "5.1.x" - "@turf/boolean-clockwise" "5.1.x" - "@turf/boolean-contains" "5.1.x" - "@turf/boolean-crosses" "5.1.x" - "@turf/boolean-disjoint" "5.1.x" - "@turf/boolean-equal" "5.1.x" - "@turf/boolean-overlap" "5.1.x" - "@turf/boolean-parallel" "5.1.x" - "@turf/boolean-point-in-polygon" "5.1.x" - "@turf/boolean-point-on-line" "5.1.x" - "@turf/boolean-within" "5.1.x" - "@turf/buffer" "5.1.x" - "@turf/center" "5.1.x" - "@turf/center-mean" "5.1.x" - "@turf/center-median" "5.1.x" - "@turf/center-of-mass" "5.1.x" - "@turf/centroid" "5.1.x" - "@turf/circle" "5.1.x" - "@turf/clean-coords" "5.1.x" - "@turf/clone" "5.1.x" - "@turf/clusters" "5.1.x" - "@turf/clusters-dbscan" "5.1.x" - "@turf/clusters-kmeans" "5.1.x" - "@turf/collect" "5.1.x" - "@turf/combine" "5.1.x" - "@turf/concave" "5.1.x" - "@turf/convex" "5.1.x" - "@turf/destination" "5.1.x" - "@turf/difference" "5.1.x" - "@turf/dissolve" "5.1.x" - "@turf/distance" "5.1.x" - "@turf/ellipse" "5.1.x" - "@turf/envelope" "5.1.x" - "@turf/explode" "5.1.x" - "@turf/flatten" "5.1.x" - "@turf/flip" "5.1.x" - "@turf/great-circle" "5.1.x" - "@turf/helpers" "5.1.x" - "@turf/hex-grid" "5.1.x" - "@turf/interpolate" "5.1.x" - "@turf/intersect" "5.1.x" - "@turf/invariant" "5.1.x" - "@turf/isobands" "5.1.x" - "@turf/isolines" "5.1.x" - "@turf/kinks" "5.1.x" - "@turf/length" "5.1.x" - "@turf/line-arc" "5.1.x" - "@turf/line-chunk" "5.1.x" - "@turf/line-intersect" "5.1.x" - "@turf/line-offset" "5.1.x" - "@turf/line-overlap" "5.1.x" - "@turf/line-segment" "5.1.x" - "@turf/line-slice" "5.1.x" - "@turf/line-slice-along" "5.1.x" - "@turf/line-split" "5.1.x" - "@turf/line-to-polygon" "5.1.x" - "@turf/mask" "5.1.x" - "@turf/meta" "5.1.x" - "@turf/midpoint" "5.1.x" - "@turf/nearest-point" "5.1.x" - "@turf/nearest-point-on-line" "5.1.x" - "@turf/nearest-point-to-line" "5.1.x" - "@turf/planepoint" "5.1.x" - "@turf/point-grid" "5.1.x" - "@turf/point-on-feature" "5.1.x" - "@turf/point-to-line-distance" "5.1.x" - "@turf/points-within-polygon" "5.1.x" - "@turf/polygon-tangents" "5.1.x" - "@turf/polygon-to-line" "5.1.x" - "@turf/polygonize" "5.1.x" - "@turf/projection" "5.1.x" - "@turf/random" "5.1.x" - "@turf/rewind" "5.1.x" - "@turf/rhumb-bearing" "5.1.x" - "@turf/rhumb-destination" "5.1.x" - "@turf/rhumb-distance" "5.1.x" - "@turf/sample" "5.1.x" - "@turf/sector" "5.1.x" - "@turf/shortest-path" "5.1.x" - "@turf/simplify" "5.1.x" - "@turf/square" "5.1.x" - "@turf/square-grid" "5.1.x" - "@turf/standard-deviational-ellipse" "5.1.x" - "@turf/tag" "5.1.x" - "@turf/tesselate" "5.1.x" - "@turf/tin" "5.1.x" - "@turf/transform-rotate" "5.1.x" - "@turf/transform-scale" "5.1.x" - "@turf/transform-translate" "5.1.x" - "@turf/triangle-grid" "5.1.x" - "@turf/truncate" "5.1.x" - "@turf/union" "5.1.x" - "@turf/unkink-polygon" "5.1.x" - "@turf/voronoi" "5.1.x" - -"@turf/union@5.1.x", "@turf/union@^5.1.5": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/union/-/union-5.1.5.tgz#53285b6094047fc58d96aac0ea90865ec34d454b" - integrity sha1-UyhbYJQEf8WNlqrA6pCGXsNNRUs= - dependencies: - "@turf/helpers" "^5.1.5" - turf-jsts "*" - -"@turf/unkink-polygon@5.1.x": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/unkink-polygon/-/unkink-polygon-5.1.5.tgz#7b01847c50fb574ae2579e19e44cba8526d213c3" - integrity sha1-ewGEfFD7V0riV54Z5Ey6hSbSE8M= - dependencies: - "@turf/area" "^5.1.5" - "@turf/boolean-point-in-polygon" "^5.1.5" - "@turf/helpers" "^5.1.5" - "@turf/meta" "^5.1.5" - rbush "^2.0.1" - -"@turf/voronoi@5.1.x": - version "5.1.5" - resolved "https://registry.npmjs.org/@turf/voronoi/-/voronoi-5.1.5.tgz#e856e9406dcc2f25d66ddc898584e27c2ebfca66" - integrity sha1-6FbpQG3MLyXWbdyJhYTifC6/ymY= - dependencies: - "@turf/helpers" "^5.1.5" - "@turf/invariant" "^5.1.5" - d3-voronoi "1.1.2" - "@types/amap-js-api@^1.4.6": version "1.4.7" resolved "https://registry.npmjs.org/@types/amap-js-api/-/amap-js-api-1.4.7.tgz#565342799c14c0b112cfea237aaa4b700360f406" @@ -8549,17 +7455,6 @@ concat-with-sourcemaps@^1.0.5: dependencies: source-map "^0.6.1" -concaveman@*: - version "1.1.1" - resolved "https://registry.npmjs.org/concaveman/-/concaveman-1.1.1.tgz#6c2482580b2523cef82fc2bec00a0415e6e68162" - integrity sha1-bCSCWAslI874L8K+wAoEFebmgWI= - dependencies: - monotone-convex-hull-2d "^1.0.1" - point-in-polygon "^1.0.1" - rbush "^2.0.1" - robust-orientation "^1.1.3" - tinyqueue "^1.1.0" - config-chain@^1.1.11: version "1.1.12" resolved "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" @@ -9477,13 +8372,6 @@ d3-format@1: resolved "https://registry.npmjs.org/d3-format/-/d3-format-1.4.4.tgz#356925f28d0fd7c7983bfad593726fce46844030" integrity sha512-TWks25e7t8/cqctxCmxpUuzZN11QxIA7YrMbram94zMQ0PXjE4LVIMe/f6a4+xxL8HQ3OsAFULOINQi1pE62Aw== -d3-geo@1.7.1: - version "1.7.1" - resolved "https://registry.npmjs.org/d3-geo/-/d3-geo-1.7.1.tgz#44bbc7a218b1fd859f3d8fd7c443ca836569ce99" - integrity sha512-O4AempWAr+P5qbk2bC2FuN/sDW4z+dN2wDf9QV3bxQt4M5HfOEeXLgJ/UKQW0+o1Dj8BE+L5kiDbdWUMjsmQpw== - dependencies: - d3-array "1" - d3-hexbin@^0.2.2: version "0.2.2" resolved "https://registry.npmjs.org/d3-hexbin/-/d3-hexbin-0.2.2.tgz#9c5837dacfd471ab05337a9e91ef10bfc4f98831" @@ -9549,11 +8437,6 @@ d3-transition@^1.0.1: d3-selection "^1.1.0" d3-timer "1" -d3-voronoi@1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/d3-voronoi/-/d3-voronoi-1.1.2.tgz#1687667e8f13a2d158c80c1480c5a29cb0d8973c" - integrity sha1-Fodmfo8TotFYyAwUgMWinLDYlzw= - d@1, d@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" @@ -9749,7 +8632,7 @@ dedent@0.7.0, dedent@^0.7.0: resolved "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= -deep-equal@^1.0.0, deep-equal@^1.0.1, deep-equal@^1.1.0, deep-equal@^1.1.1, deep-equal@~1.1.1: +deep-equal@^1.0.1, deep-equal@^1.1.0, deep-equal@^1.1.1, deep-equal@~1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== @@ -9882,11 +8765,6 @@ delegates@^1.0.0: resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= -density-clustering@1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/density-clustering/-/density-clustering-1.3.0.tgz#dc9f59c8f0ab97e1624ac64930fd3194817dcac5" - integrity sha1-3J9ZyPCrl+FiSsZJMP0xlIF9ysU= - depd@~1.1.2: version "1.1.2" resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" @@ -9940,7 +8818,7 @@ detect-indent@^5.0.0: resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" integrity sha1-OHHMCmoALow+Wzz38zYmRnXwa50= -detect-libc@^1.0.2, detect-libc@^1.0.3: +detect-libc@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= @@ -10348,7 +9226,7 @@ duplexify@^3.4.2, duplexify@^3.6.0: readable-stream "^2.0.0" stream-shift "^1.0.0" -earcut@^2.0.0, earcut@^2.2.1, earcut@^2.2.2: +earcut@^2.2.1, earcut@^2.2.2: version "2.2.2" resolved "https://registry.npmjs.org/earcut/-/earcut-2.2.2.tgz#41b0bc35f63e0fe80da7cddff28511e7e2e80d11" integrity sha512-eZoZPPJcUHnfRZ0PjLvx2qBordSiO8ofC3vt+qACLM95u+4DovnbYNpQtJh0DNsWj8RnxrQytD4WA8gj5cRIaQ== @@ -12858,22 +11736,6 @@ gensync@^1.0.0-beta.1: resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg== -geojson-equality@0.1.6: - version "0.1.6" - resolved "https://registry.npmjs.org/geojson-equality/-/geojson-equality-0.1.6.tgz#a171374ef043e5d4797995840bae4648e0752d72" - integrity sha1-oXE3TvBD5dR5eZWEC65GSOB1LXI= - dependencies: - deep-equal "^1.0.0" - -geojson-rbush@2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/geojson-rbush/-/geojson-rbush-2.1.0.tgz#3bd73be391fc10b0ae693d9b8acea2aae0b83a8d" - integrity sha1-O9c745H8ELCuaT2bis6iquC4Oo0= - dependencies: - "@turf/helpers" "*" - "@turf/meta" "*" - rbush "*" - geojson-vt@^3.2.1: version "3.2.1" resolved "https://registry.npmjs.org/geojson-vt/-/geojson-vt-3.2.1.tgz#f8adb614d2c1d3f6ee7c4265cad4bbf3ad60c8b7" @@ -12898,11 +11760,6 @@ get-caller-file@^2.0.1: resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-closest@*: - version "0.0.4" - resolved "https://registry.npmjs.org/get-closest/-/get-closest-0.0.4.tgz#269ac776d1e6022aa0fd586dd708e8a7d32269af" - integrity sha1-JprHdtHmAiqg/Vht1wjop9Miaa8= - get-own-enumerable-property-symbols@^3.0.0: version "3.0.2" resolved "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" @@ -14297,7 +13154,7 @@ i18next@^19.0.0: dependencies: "@babel/runtime" "^7.3.1" -iconv-lite@0.4, iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.24, iconv-lite@^0.4.4, iconv-lite@~0.4.13: +iconv-lite@0.4, iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.24, iconv-lite@~0.4.13: version "0.4.24" resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -16378,11 +15235,6 @@ levn@^0.3.0, levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" -lineclip@^1.1.5: - version "1.1.5" - resolved "https://registry.npmjs.org/lineclip/-/lineclip-1.1.5.tgz#2bf26067d94354feabf91e42768236db5616fd13" - integrity sha1-K/JgZ9lDVP6r+R5CdoI221YW/RM= - lines-and-columns@^1.1.6: version "1.1.6" resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" @@ -17706,13 +16558,6 @@ moment@^2.24.0: resolved "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b" integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg== -monotone-convex-hull-2d@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/monotone-convex-hull-2d/-/monotone-convex-hull-2d-1.0.1.tgz#47f5daeadf3c4afd37764baa1aa8787a40eee08c" - integrity sha1-R/Xa6t88Sv03dkuqGqh4ekDu4Iw= - dependencies: - robust-orientation "^1.1.3" - moo@^0.5.0: version "0.5.1" resolved "https://registry.npmjs.org/moo/-/moo-0.5.1.tgz#7aae7f384b9b09f620b6abf6f74ebbcd1b65dbc4" @@ -17884,15 +16729,6 @@ nearley@^2.7.10: randexp "0.4.6" semver "^5.4.1" -needle@^2.2.1: - version "2.4.1" - resolved "https://registry.npmjs.org/needle/-/needle-2.4.1.tgz#14af48732463d7475696f937626b1b993247a56a" - integrity sha512-x/gi6ijr4B7fwl6WYL9FwlCvRQKGlUNvnceho8wxkwXqN8jvVmmmATTmZPRRG7b/yC1eode26C2HO9jl78Du9g== - dependencies: - debug "^3.2.6" - iconv-lite "^0.4.4" - sax "^1.2.4" - negotiator@0.6.2: version "0.6.2" resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" @@ -18113,22 +16949,6 @@ node-object-hash@^2.0.0: resolved "https://registry.npmjs.org/node-object-hash/-/node-object-hash-2.0.0.tgz#9971fcdb7d254f05016bd9ccf508352bee11116b" integrity sha512-VZR0zroAusy1ETZMZiGeLkdu50LGjG5U1KHZqTruqtTyQ2wfWhHG2Ow4nsUbfTFGlaREgNHcCWoM/OzEm6p+NQ== -node-pre-gyp@*: - version "0.14.0" - resolved "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz#9a0596533b877289bcad4e143982ca3d904ddc83" - integrity sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA== - dependencies: - detect-libc "^1.0.2" - mkdirp "^0.5.1" - needle "^2.2.1" - nopt "^4.0.1" - npm-packlist "^1.1.6" - npmlog "^4.0.2" - rc "^1.2.7" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^4.4.2" - node-releases@^1.1.29, node-releases@^1.1.53: version "1.1.53" resolved "https://registry.npmjs.org/node-releases/-/node-releases-1.1.53.tgz#2d821bfa499ed7c5dffc5e2f28c88e78a08ee3f4" @@ -18312,7 +17132,7 @@ npm-package-arg@^5.1.2: semver "^5.1.0" validate-npm-package-name "^3.0.0" -npm-packlist@^1.1.6, npm-packlist@^1.4.4: +npm-packlist@^1.4.4: version "1.4.8" resolved "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e" integrity sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A== @@ -18374,7 +17194,7 @@ npm-run-path@^4.0.0: dependencies: path-key "^3.0.0" -"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.1, npmlog@^4.0.2, npmlog@^4.1.2: +"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.1, npmlog@^4.1.2: version "4.1.2" resolved "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== @@ -18437,7 +17257,7 @@ oauth-sign@~0.9.0: resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== -object-assign@*, object-assign@4.x, object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@4.x, object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= @@ -19496,11 +18316,6 @@ pnp-webpack-plugin@^1.6.4: dependencies: ts-pnp "^1.1.6" -point-in-polygon@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/point-in-polygon/-/point-in-polygon-1.0.1.tgz#d59b64e8fee41c49458aac82b56718c5957b2af7" - integrity sha1-1Ztk6P7kHElFiqyCtWcYxZV7Kvc= - polished@^3.3.1: version "3.5.1" resolved "https://registry.npmjs.org/polished/-/polished-3.5.1.tgz#657b6faf4c2308f3e0b1951196803a5e5d67b122" @@ -20540,11 +19355,6 @@ quick-lru@^1.0.0: resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8" integrity sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g= -quickselect@^1.0.1: - version "1.1.1" - resolved "https://registry.npmjs.org/quickselect/-/quickselect-1.1.1.tgz#852e412ce418f237ad5b660d70cffac647ae94c2" - integrity sha512-qN0Gqdw4c4KGPsBOQafj6yj/PA6c/L63f6CaZ/DCF/xF4Esu3jVmKLUDYxghFx8Kb/O7y9tI7x2RjTSXwdK1iQ== - quickselect@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz#f19680a486a5eefb581303e023e98faaf25dd018" @@ -20641,20 +19451,6 @@ raw-loader@^3.1.0: loader-utils "^1.1.0" schema-utils "^2.0.1" -rbush@*: - version "3.0.1" - resolved "https://registry.npmjs.org/rbush/-/rbush-3.0.1.tgz#5fafa8a79b3b9afdfe5008403a720cc1de882ecf" - integrity sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w== - dependencies: - quickselect "^2.0.0" - -rbush@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/rbush/-/rbush-2.0.2.tgz#bb6005c2731b7ba1d5a9a035772927d16a614605" - integrity sha512-XBOuALcTm+O/H8G90b6pzu6nX6v2zCKiFG4BJho8a+bY6AER6t8uQUZdi5bomQc0AprCWhEGa7ncAbbRap0bRA== - dependencies: - quickselect "^1.0.1" - rc-align@^3.0.0-rc.0: version "3.0.0-rc.1" resolved "https://registry.npmjs.org/rc-align/-/rc-align-3.0.0-rc.1.tgz#32d1fac860d12bb85e9b8cafbbdef79f3f537674" @@ -22221,34 +21017,6 @@ rmc-feedback@^2.0.0: babel-runtime "6.x" classnames "^2.2.5" -robust-orientation@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/robust-orientation/-/robust-orientation-1.1.3.tgz#daff5b00d3be4e60722f0e9c0156ef967f1c2049" - integrity sha1-2v9bANO+TmByLw6cAVbvln8cIEk= - dependencies: - robust-scale "^1.0.2" - robust-subtract "^1.0.0" - robust-sum "^1.0.0" - two-product "^1.0.2" - -robust-scale@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/robust-scale/-/robust-scale-1.0.2.tgz#775132ed09542d028e58b2cc79c06290bcf78c32" - integrity sha1-d1Ey7QlULQKOWLLMecBikLz3jDI= - dependencies: - two-product "^1.0.2" - two-sum "^1.0.0" - -robust-subtract@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/robust-subtract/-/robust-subtract-1.0.0.tgz#e0b164e1ed8ba4e3a5dda45a12038348dbed3e9a" - integrity sha1-4LFk4e2LpOOl3aRaEgODSNvtPpo= - -robust-sum@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/robust-sum/-/robust-sum-1.0.0.tgz#16646e525292b4d25d82757a286955e0bbfa53d9" - integrity sha1-FmRuUlKStNJdgnV6KGlV4Lv6U9k= - rollup-plugin-analyzer@^3.2.2: version "3.2.2" resolved "https://registry.npmjs.org/rollup-plugin-analyzer/-/rollup-plugin-analyzer-3.2.2.tgz#1ea109d164ac8cdbfeaacf1cf271bb66ca643d94" @@ -23029,11 +21797,6 @@ sitemap@^1.13.0: underscore "^1.7.0" url-join "^1.1.0" -skmeans@0.9.7: - version "0.9.7" - resolved "https://registry.npmjs.org/skmeans/-/skmeans-0.9.7.tgz#72670cebb728508f56e29c0e10d11e623529ce5d" - integrity sha512-hNj1/oZ7ygsfmPZ7ZfN5MUBRoGg1gtpnImuJBgLO0ljQ67DtJuiQaiYdS4lUA6s0KCwnPhGivtC/WRwIZLkHyg== - slash@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" @@ -24343,7 +23106,7 @@ tar@^2.0.0: fstream "^1.0.12" inherits "2" -tar@^4.4.10, tar@^4.4.12, tar@^4.4.2, tar@^4.4.8: +tar@^4.4.10, tar@^4.4.12, tar@^4.4.8: version "4.4.13" resolved "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== @@ -24514,6 +23277,11 @@ three@^0.111.0: resolved "https://registry.npmjs.org/three/-/three-0.111.0.tgz#9cedb73e79b7f6bf2440cb67a273f883faa923b6" integrity sha512-AcTqyGJ3H75AIusOuADy0LsP958QKQwm/YhABHFMzd6RFXPNVay1rlSbbG6WYv7KM72G2THMMwqbjQd4dVHMkQ== +three@^0.115.0: + version "0.115.0" + resolved "https://registry.npmjs.org/three/-/three-0.115.0.tgz#540d800c381b9da2334c024f0fbe4d23f84eb05e" + integrity sha512-mAV2Ky3RdcbdSbR9capI+tKLvRldWYxd4151PZTT/o7+U2jh9Is3a4KmnYwzyUAhB2ZA3pXSgCd2DOY4Tj5kow== + throat@^4.0.0: version "4.1.0" resolved "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" @@ -24624,11 +23392,6 @@ tinycolor2@^1.4.1: resolved "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.1.tgz#f4fad333447bc0b07d4dc8e9209d8f39a8ac77e8" integrity sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g= -tinyqueue@^1.1.0: - version "1.2.3" - resolved "https://registry.npmjs.org/tinyqueue/-/tinyqueue-1.2.3.tgz#b6a61de23060584da29f82362e45df1ec7353f3d" - integrity sha512-Qz9RgWuO9l8lT+Y9xvbzhPT2efIUIFd69N7eF7tJ9lnQl0iLj1M7peK7IoUGZL9DJHw9XftqLreccfxcQgYLxA== - tinyqueue@^2.0.0: version "2.0.3" resolved "https://registry.npmjs.org/tinyqueue/-/tinyqueue-2.0.3.tgz#64d8492ebf39e7801d7bd34062e29b45b2035f08" @@ -24728,20 +23491,6 @@ toidentifier@1.0.0: resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== -topojson-client@3.x: - version "3.1.0" - resolved "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz#22e8b1ed08a2b922feeb4af6f53b6ef09a467b99" - integrity sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw== - dependencies: - commander "2" - -topojson-server@3.x: - version "3.0.1" - resolved "https://registry.npmjs.org/topojson-server/-/topojson-server-3.0.1.tgz#d2b3ec095b6732299be76a48406111b3201a34f5" - integrity sha512-/VS9j/ffKr2XAOjlZ9CgyyeLmgJ9dMwq6Y0YEON8O7p/tGGk+dCWnrE03zEdu7i4L7YsFZLEPZPzCvcB7lEEXw== - dependencies: - commander "2" - toposort@^0.2.10: version "0.2.12" resolved "https://registry.npmjs.org/toposort/-/toposort-0.2.12.tgz#c7d2984f3d48c217315cc32d770888b779491e81" @@ -24932,26 +23681,11 @@ tunnel-agent@^0.6.0: dependencies: safe-buffer "^5.0.1" -turf-jsts@*: - version "1.2.3" - resolved "https://registry.npmjs.org/turf-jsts/-/turf-jsts-1.2.3.tgz#59757f542afbff9a577bbf411f183b8f48d38aa4" - integrity sha512-Ja03QIJlPuHt4IQ2FfGex4F4JAr8m3jpaHbFbQrgwr7s7L6U8ocrHiF3J1+wf9jzhGKxvDeaCAnGDot8OjGFyA== - tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= -two-product@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/two-product/-/two-product-1.0.2.tgz#67d95d4b257a921e2cb4bd7af9511f9088522eaa" - integrity sha1-Z9ldSyV6kh4stL16+VEfkIhSLqo= - -two-sum@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/two-sum/-/two-sum-1.0.0.tgz#31d3f32239e4f731eca9df9155e2b297f008ab64" - integrity sha1-MdPzIjnk9zHsqd+RVeKyl/AIq2Q= - txml@^3.1.2: version "3.1.2" resolved "https://registry.npmjs.org/txml/-/txml-3.1.2.tgz#b4e3aa8519167d33f1542665b1e3537a15643c0c"