@arcgis/core 5.2.0-next.81 → 5.2.0-next.83
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/components/assets/icon/deleteAndReplaceFeatures16.json +1 -0
- package/assets/components/assets/icon/deleteAndReplaceFeatures24.json +1 -0
- package/assets/components/assets/icon/deleteAndReplaceFeatures32.json +1 -0
- package/assets/components/assets/icon/moveAndRotate16.json +1 -0
- package/assets/components/assets/icon/moveAndRotate24.json +1 -0
- package/assets/components/assets/icon/moveAndRotate32.json +1 -0
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/{88d6a7ebded4d359deb0.js → 027af54888befb209aaa.js} +1 -1
- package/assets/esri/core/workers/chunks/028bee58f7bc19e5e39e.js +1 -0
- package/assets/esri/core/workers/chunks/{9bd4cda90daf90189bfc.js → 03895d49fbd34ccb3ead.js} +1 -1
- package/assets/esri/core/workers/chunks/{694216224d5fd3a8956d.js → 04f5ff688785a4bd3b03.js} +1 -1
- package/assets/esri/core/workers/chunks/0775d1e3034d5e7ef7bc.js +1 -0
- package/assets/esri/core/workers/chunks/{3adba34224cba869a39c.js → 10ac92dcd3738ec23dfb.js} +1 -1
- package/assets/esri/core/workers/chunks/{4a537054c99cbc492715.js → 11d911f70bf0ca252c19.js} +1 -1
- package/assets/esri/core/workers/chunks/1354b8442c2c501238f1.js +1 -0
- package/assets/esri/core/workers/chunks/{95ff342e5c29bf91a765.js → 13a43c87d7952facbed4.js} +1 -1
- package/assets/esri/core/workers/chunks/{8cfe817299eb16cb2664.js → 1438f571f738e83b4d1c.js} +1 -1
- package/assets/esri/core/workers/chunks/{bfd532e33800755b1f48.js → 14511c92cbbc26d80c86.js} +1 -1
- package/assets/esri/core/workers/chunks/{e59101f1d060d0a30a65.js → 14def8f47ae7265dd71b.js} +1 -1
- package/assets/esri/core/workers/chunks/{fbb0b2f4ec0ba458ddeb.js → 19dac19122eeeb5e36b2.js} +1 -1
- package/assets/esri/core/workers/chunks/1b00789511c9b27da4a7.js +1 -0
- package/assets/esri/core/workers/chunks/1b277311a4beb4243bf8.js +2 -0
- package/assets/esri/core/workers/chunks/1d03db4df18524cf391c.js +1 -0
- package/assets/esri/core/workers/chunks/{f71a3fe5f30aa782193a.js → 20db27d9828397d0b37a.js} +1 -1
- package/assets/esri/core/workers/chunks/24bfe759c8848143361e.js +1 -0
- package/assets/esri/core/workers/chunks/{b3081c0b037abc49d09b.js → 26c12804a0d801df29bf.js} +1 -1
- package/assets/esri/core/workers/chunks/{8006ffa263fb8016afdb.js → 26c8ed0aef59ed6d5267.js} +1 -1
- package/assets/esri/core/workers/chunks/2d1c0d80a9843567df8d.js +1 -0
- package/assets/esri/core/workers/chunks/{2b79b376b0d60d2f0d5c.js → 2d6e1bf7c1981bed4357.js} +1 -1
- package/assets/esri/core/workers/chunks/30dade7bf6032be32599.js +2 -0
- package/assets/esri/core/workers/chunks/{7028671ffdaafe2725bc.js → 33aaa5a49e396a0aca47.js} +1 -1
- package/assets/esri/core/workers/chunks/{dcec7fc66385c12ecdf0.js → 33dc93d82407052fafe1.js} +1 -1
- package/assets/esri/core/workers/chunks/{578904043e873424904c.js → 3a6990058f1003bd2812.js} +1 -1
- package/assets/esri/core/workers/chunks/{0fd7590e545864f5fff4.js → 3ca0d503ce733088a6c2.js} +1 -1
- package/assets/esri/core/workers/chunks/{bfac0f47e81055585002.js → 3f0625c31dd46b563160.js} +1 -1
- package/assets/esri/core/workers/chunks/{9a5894e8ebdf0e97b98f.js → 43122c435497228a7583.js} +1 -1
- package/assets/esri/core/workers/chunks/{8fff4a41a54d39db470a.js → 44d13f65465646e5f6e9.js} +1 -1
- package/assets/esri/core/workers/chunks/{9c17bfbfc347ac289b6e.js → 463b7952a4825541eb13.js} +1 -1
- package/assets/esri/core/workers/chunks/46b3d6814ba4c0a71111.js +1 -0
- package/assets/esri/core/workers/chunks/49784f8e8e5fac0cc5a9.js +1 -0
- package/assets/esri/core/workers/chunks/{1ed6a8bb415999c4e8a6.js → 4cf2c33494cb75942511.js} +1 -1
- package/assets/esri/core/workers/chunks/{d8b38c196b06e801c4e6.js → 5156d94f01b4fbbf8cde.js} +1 -1
- package/assets/esri/core/workers/chunks/{6c372d85b5783dd2a793.js → 52042fd36f4a572938f0.js} +1 -1
- package/assets/esri/core/workers/chunks/{e8a9a686a3c23afc9d1f.js → 5568448e7f51508ffdf5.js} +1 -1
- package/assets/esri/core/workers/chunks/58e4aecabca047f1d229.js +1 -0
- package/assets/esri/core/workers/chunks/598221c7054415b84904.js +1 -0
- package/assets/esri/core/workers/chunks/{89df303abcbc0167e4d2.js → 5a006ff759fad9fc25cb.js} +1 -1
- package/assets/esri/core/workers/chunks/{218ddad849745d652a28.js → 5a3c1fe24814a345ab39.js} +1 -1
- package/assets/esri/core/workers/chunks/5b292831127bf981c1c5.js +1 -0
- package/assets/esri/core/workers/chunks/{40ebe69b08ea54e0e780.js → 5b60fc95757b2a53558a.js} +1 -1
- package/assets/esri/core/workers/chunks/{c336f300fe6100e36592.js → 5c634b3e6dc76299b1df.js} +1 -1
- package/assets/esri/core/workers/chunks/{5a67bd724aa7fcdebe16.js → 5d30accf1dcda0c70f95.js} +1 -1
- package/assets/esri/core/workers/chunks/{dbca32f0e0c2c2e2ccf3.js → 5f13ade03500b39c1720.js} +1 -1
- package/assets/esri/core/workers/chunks/{8d16d53643dd8d489c25.js → 605da92d28e067f4a4c6.js} +1 -1
- package/assets/esri/core/workers/chunks/6154f4d39f9e53fe56cc.js +1 -0
- package/assets/esri/core/workers/chunks/62b116307483d5f0e37d.js +2 -0
- package/assets/esri/core/workers/chunks/6433a623af765b7e53ab.js +1 -0
- package/assets/esri/core/workers/chunks/{5c9a398e659ecd427fb5.js → 657528eb6a3d3b3cb631.js} +1 -1
- package/assets/esri/core/workers/chunks/65eff0ae773505495f21.js +1 -0
- package/assets/esri/core/workers/chunks/{d845f2115848b56c0369.js → 66292e98b4111ea3658d.js} +1 -1
- package/assets/esri/core/workers/chunks/{f57e5e7d0748d9a370f7.js → 680496660b2aaa710099.js} +1 -1
- package/assets/esri/core/workers/chunks/6d11b922898a8039dbe7.js +1 -0
- package/assets/esri/core/workers/chunks/{fbcc346fa603d6edac98.js → 6db4a4f9a9ce7cc738d0.js} +1 -1
- package/assets/esri/core/workers/chunks/{a9e944f28bd573c8230d.js → 6eb28086dc28f6d144ec.js} +1 -1
- package/assets/esri/core/workers/chunks/7188559a685e0ba30c4f.js +1 -0
- package/assets/esri/core/workers/chunks/{a3cbd3e983e21f40b253.js → 724b2631c9ced80a1661.js} +1 -1
- package/assets/esri/core/workers/chunks/7493ce5d02224c07a6d5.js +1 -0
- package/assets/esri/core/workers/chunks/7ad70c8a56f2481adc82.js +1 -0
- package/assets/esri/core/workers/chunks/7bd8ebb321ecf1f06496.js +1 -0
- package/assets/esri/core/workers/chunks/7ca188f824956a5cac35.js +2 -0
- package/assets/esri/core/workers/chunks/{d0aaa4ad7f76f577f117.js → 7d5877eede2f552dea9f.js} +1 -1
- package/assets/esri/core/workers/chunks/{bf5831a7c12b1e42c669.js → 83a77d3f45c8c21cec45.js} +1 -1
- package/assets/esri/core/workers/chunks/852649460d664b0a1a1d.js +1 -0
- package/assets/esri/core/workers/chunks/{d62a5a33a24418a3e283.js → 88771a75adcbd54c4fac.js} +1 -1
- package/assets/esri/core/workers/chunks/{37fb38db03cb39e3c342.js → 8c6a60d96c73982febd2.js} +1 -1
- package/assets/esri/core/workers/chunks/{e63f94c8097555b266ad.js → 8e1b913067b8e88ff365.js} +2 -2
- package/assets/esri/core/workers/chunks/{6065caa7981cef255277.js → 911f3a1b8dd4bc5c9782.js} +1 -1
- package/assets/esri/core/workers/chunks/{70c371c9f133ab9f7925.js → 918577ea025f67ebe372.js} +1 -1
- package/assets/esri/core/workers/chunks/{e3eab61815ef1c521a6c.js → 9568932bafe689c38f63.js} +1 -1
- package/assets/esri/core/workers/chunks/{e72fa08b0bd324514a0e.js → 996ac351e2322298a17d.js} +1 -1
- package/assets/esri/core/workers/chunks/99966339b061eb9945b8.js +1 -0
- package/assets/esri/core/workers/chunks/{d1baf17f3219f70106f7.js → 9be05d32528b395a7d34.js} +1 -1
- package/assets/esri/core/workers/chunks/{552d6aecc7d88d16227b.js → 9d41c02601d0bb75b525.js} +1 -1
- package/assets/esri/core/workers/chunks/{64a1ffc221e5b63b43fb.js → a4bb0951e1389e7b803c.js} +1 -1
- package/assets/esri/core/workers/chunks/{74cd17aca5f7e0caac90.js → a9a1061cdf82b372835f.js} +1 -1
- package/assets/esri/core/workers/chunks/{d2448e26e19005ef9ab2.js → aabffe53508730e504ec.js} +1 -1
- package/assets/esri/core/workers/chunks/{82da6d98bd4980a3d454.js → af88f8dd1a53e4740aa6.js} +1 -1
- package/assets/esri/core/workers/chunks/b61c30cdf698b4d1573a.js +1 -0
- package/assets/esri/core/workers/chunks/{61190c833791f0833a39.js → b7bcc2d0b0fa8e703c83.js} +1 -1
- package/assets/esri/core/workers/chunks/{37a121316d114999ac70.js → ba67aaa08e4f11e1140a.js} +1 -1
- package/assets/esri/core/workers/chunks/bbb97c38d8670329d07e.js +2 -0
- package/assets/esri/core/workers/chunks/{5d50a030bf9f4e94f69d.js → bbeb61d9302323bae9fb.js} +1 -1
- package/assets/esri/core/workers/chunks/bd8b483e70acf0fc601e.js +1 -0
- package/assets/esri/core/workers/chunks/bef32acf368b4d5aba37.js +1 -0
- package/assets/esri/core/workers/chunks/c1f125594e684c1b4ffc.js +1 -0
- package/assets/esri/core/workers/chunks/c90dfdf2302b7db1f6f7.js +1 -0
- package/assets/esri/core/workers/chunks/{09f0805b32e6cab980e6.js → cc1a00694cc9f7c606d6.js} +1 -1
- package/assets/esri/core/workers/chunks/{8a36b999cbd65dd2f16c.js → d8c3bdc3c6be8ba7c5e6.js} +1 -1
- package/assets/esri/core/workers/chunks/{bc30c0de6dcb106b24a1.js → da233362b06b6db375f1.js} +1 -1
- package/assets/esri/core/workers/chunks/{ce81f29134ab3971bd54.js → dd91824692bec809909c.js} +1 -1
- package/assets/esri/core/workers/chunks/{f9e9e79f78be32e5d475.js → e706c37b44e98fbcb5f7.js} +1 -1
- package/assets/esri/core/workers/chunks/ef269dd559c1c79957e5.js +1 -0
- package/assets/esri/core/workers/chunks/{4a6158994a8cc8b8664f.js → f0692e10af5983f6ad93.js} +1 -1
- package/assets/esri/core/workers/chunks/{40b842d055b87e442156.js → f20b88f5a6d3b988a055.js} +1 -1
- package/assets/esri/core/workers/chunks/{fae32c9ce811934b6a64.js → f6ae0c483579e227a2f2.js} +1 -1
- package/assets/esri/core/workers/chunks/{4c15551e33a3c6cda61d.js → f762f0f6c83748d8e328.js} +1 -1
- package/assets/esri/core/workers/chunks/{4eaa93859ceec1b38530.js → fa29b5064d6626cfc019.js} +1 -1
- package/assets/esri/core/workers/chunks/fcf7299e2ee904ab9882.js +1 -0
- package/assets/esri/core/workers/chunks/{388b71211a0ad5cbd6b9.js → fe06cc2f90b2d551e4c1.js} +1 -1
- package/assets/esri/core/workers/chunks/{86035e46777ed896c658.js → ffad5fd9c5e98f4fe2c3.js} +1 -1
- package/assets/esri/geometry/support/pe-wasm.wasm +0 -0
- package/chunks/Bufferer-CclWhXVb.js +1 -1
- package/chunks/Distance2DCalculator-DjIp2uQi.js +1 -1
- package/chunks/EmissionComposite.glsl.js +7 -1
- package/chunks/GeodeticDistanceCalculator-zRp89-dW.js +1 -1
- package/chunks/GeodeticUtils.js +1 -1
- package/chunks/GeographicTransformation.js +2 -0
- package/chunks/Geometry.js +1 -1
- package/chunks/MultiPathImpl.js +1 -1
- package/chunks/OperatorCrosses.js +1 -1
- package/chunks/OperatorCut.js +1 -1
- package/chunks/OperatorGeodesicBuffer.js +1 -1
- package/chunks/OperatorGeodeticArea.js +1 -1
- package/chunks/OperatorGeodeticDensifyByLength.js +1 -1
- package/chunks/OperatorGeodeticLength.js +1 -1
- package/chunks/OperatorGraphicBuffer.js +1 -1
- package/chunks/OperatorIntegrate.js +1 -1
- package/chunks/OperatorIntersects.js +1 -1
- package/chunks/OperatorMultiPartToSinglePart.js +1 -1
- package/chunks/OperatorOverlaps.js +1 -1
- package/chunks/OperatorProximity.js +1 -1
- package/chunks/OperatorProximityGeodesic.js +1 -1
- package/chunks/OperatorShapePreservingLength.js +1 -1
- package/chunks/OperatorShapePreservingProject.js +1 -1
- package/chunks/OperatorSimplifyOGC.js +1 -1
- package/chunks/OperatorTouches.js +1 -1
- package/chunks/OperatorWithin.js +1 -1
- package/chunks/Point2D.js +1 -1
- package/chunks/ProjectionTransformation.js +1 -1
- package/chunks/SideCalculator2D-DX0718xq.js +1 -1
- package/chunks/UnitFactory.js +1 -1
- package/chunks/containsOperator.js +1 -1
- package/chunks/disjointOperator.js +1 -1
- package/chunks/equalsOperator.js +1 -1
- package/chunks/pe-wasm.js +1 -1
- package/chunks/relateOperator.js +1 -1
- package/config.js +1 -1
- package/geometry/operators/gx/operatorAutoComplete.js +1 -1
- package/geometry/operators/gx/operatorBuffer.js +1 -1
- package/geometry/operators/gx/operatorDifference.js +1 -1
- package/geometry/operators/gx/operatorIntersection.js +1 -1
- package/geometry/operators/gx/operatorLabelPoint.js +1 -1
- package/geometry/operators/gx/operatorLinesToPolygons.js +1 -1
- package/geometry/operators/gx/operatorPolygonOverlay.js +1 -1
- package/geometry/operators/gx/operatorSimplify.js +1 -1
- package/geometry/operators/gx/operatorSymmetricDifference.js +1 -1
- package/geometry/operators/gx/operatorUnion.js +1 -1
- package/geometry/operators/json/containsOperator.js +1 -1
- package/geometry/operators/json/disjointOperator.js +1 -1
- package/geometry/operators/reshapeOperator.js +1 -1
- package/geometry/operators/support/GeographicTransformation.d.ts +7 -0
- package/geometry/operators/support/GeographicTransformation.js +1 -1
- package/geometry/operators/support/GeographicTransformationStep.d.ts +7 -1
- package/geometry/operators/support/GeographicTransformationStep.js +1 -1
- package/geometry/operators/support/geographicTransformationUtils.d.ts +13 -2
- package/geometry/operators/support/geographicTransformationUtils.js +1 -1
- package/geometry/operators/support/jsonConverter.js +1 -1
- package/geometry/operators/support/projectionTransformation.js +1 -1
- package/geometry/support/spatialReferenceUtils.js +1 -1
- package/kernel.js +1 -1
- package/layers/raster/types.d.ts +1 -1
- package/layers/support/AggregateField.d.ts +9 -3
- package/layers/support/FeatureReductionCluster.d.ts +16 -6
- package/layers/support/I3SExtractChanges.js +2 -0
- package/package.json +4 -4
- package/renderers/UniqueValueRenderer.js +1 -1
- package/renderers/support/AuthoringInfo.d.ts +8 -3
- package/support/revision.js +1 -1
- package/views/2d/engine/vectorTiles/buckets/SymbolBucket.js +1 -1
- package/views/2d/engine/vectorTiles/style/GeoJSONLabelUtils.js +2 -0
- package/views/2d/engine/vectorTiles/style/StyleLayer.js +1 -1
- package/views/2d/engine/vectorTiles/style/StyleRepository.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/animated/AAnimatedShader.js +1 -1
- package/views/2d/layers/MediaLayerView2D.js +1 -1
- package/views/3d/GroundView3D.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightAuthoringUtils.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightDrawToolRenderer.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightEditTool.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightInteractionVisuals.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightItemTool.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightObserverPlugin.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightPlacementLeafPlugin.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightRootPlugin.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightTargetPlugin.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightTool.js +1 -1
- package/views/3d/analysis/LineOfSight/lineOfSightPlacementUtils.js +1 -1
- package/views/3d/input/SceneInputManager.js +1 -1
- package/views/3d/input/handlers/PinchAndPanNavigation.js +1 -1
- package/views/3d/layers/BuildingComponentSublayerView3D.js +1 -1
- package/views/3d/layers/BuildingSceneLayerView3D.js +1 -1
- package/views/3d/layers/I3SMeshView3D.js +1 -1
- package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
- package/views/3d/layers/IntegratedMeshLayerView3D.js +1 -1
- package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
- package/views/3d/layers/SceneLayerView3D.js +1 -1
- package/views/3d/layers/i3s/I3SOverrides.js +1 -1
- package/views/3d/state/controllers/PinchAndPanControllerGlobal.js +1 -1
- package/views/3d/state/controllers/PinchAndPanControllerLocal.js +1 -1
- package/views/3d/state/controllers/ZoomControllerGlobal.js +1 -1
- package/views/3d/state/utils/navigationUtils.js +1 -1
- package/views/3d/support/GroundAndIMSurface.js +2 -0
- package/views/3d/support/PBFDecoder.js +1 -1
- package/views/3d/support/pointsOfInterest/CameraOnSurface.js +1 -1
- package/views/3d/support/pointsOfInterest/CenterOnSurface.js +1 -1
- package/views/3d/support/pointsOfInterest/PointOfInterest.js +1 -1
- package/views/3d/support/pointsOfInterest/PointsOfInterest.js +1 -1
- package/views/3d/terrain/OverlayManager.js +1 -1
- package/views/3d/webgl-engine/Stage.js +1 -1
- package/views/3d/webgl-engine/lib/EmissionComposite.glsl.js +1 -1
- package/views/3d/webgl-engine/materials/renderers/MergedRenderer.js +1 -1
- package/views/3d/webgl-engine/materials/renderers/PerBufferData.js +1 -1
- package/views/MapView.d.ts +0 -60
- package/views/SceneView.js +1 -1
- package/views/View2D.d.ts +59 -1
- package/views/draw/support/PluginContext.js +1 -1
- package/views/draw/support/managers/InteractiveHandleManager.js +1 -1
- package/views/draw/support/types.d.ts +6 -0
- package/views/interactive/interactiveToolUtils.js +1 -1
- package/widgets/Legend/support/sizeRampUtils.js +1 -1
- package/widgets/Legend/support/utils.js +1 -1
- package/widgets/Widget.js +1 -1
- package/widgets/support/jsxWidgetSupport.js +1 -1
- package/assets/esri/core/workers/chunks/0dcfd82a2669df6eb5a0.js +0 -1
- package/assets/esri/core/workers/chunks/177c3b23c1cbd4737049.js +0 -1
- package/assets/esri/core/workers/chunks/21f763694a41968ac21a.js +0 -1
- package/assets/esri/core/workers/chunks/230925079cee040a8d77.js +0 -1
- package/assets/esri/core/workers/chunks/25696c194457e42b3bdc.js +0 -1
- package/assets/esri/core/workers/chunks/2f3525df00fb265661fc.js +0 -1
- package/assets/esri/core/workers/chunks/453c69879f4b82ba13a1.js +0 -1
- package/assets/esri/core/workers/chunks/4f36596280142be1c666.js +0 -1
- package/assets/esri/core/workers/chunks/53d80202b5f43542d45b.js +0 -1
- package/assets/esri/core/workers/chunks/540a3685e614bb006744.js +0 -1
- package/assets/esri/core/workers/chunks/61312d3b5477ed9d87d9.js +0 -2
- package/assets/esri/core/workers/chunks/6f08c8a1e8e3ffd0a96a.js +0 -1
- package/assets/esri/core/workers/chunks/71ee7c51d2c60a180f1e.js +0 -1
- package/assets/esri/core/workers/chunks/856dba96332509fb1d7a.js +0 -2
- package/assets/esri/core/workers/chunks/9234a293d61e134f121f.js +0 -1
- package/assets/esri/core/workers/chunks/927582ec15bff2acbb49.js +0 -1
- package/assets/esri/core/workers/chunks/95b9eaf7a49eeb17e62f.js +0 -1
- package/assets/esri/core/workers/chunks/973440553c9e058b0132.js +0 -1
- package/assets/esri/core/workers/chunks/98739b6e7904045edbab.js +0 -1
- package/assets/esri/core/workers/chunks/a69c10bfd632a5546b34.js +0 -1
- package/assets/esri/core/workers/chunks/c5853fbb975e169c44c5.js +0 -1
- package/assets/esri/core/workers/chunks/c899457f19b749516275.js +0 -1
- package/assets/esri/core/workers/chunks/d4b78d11a5ce4320a29a.js +0 -1
- package/assets/esri/core/workers/chunks/da0ef984509057ec8507.js +0 -1
- package/assets/esri/core/workers/chunks/e2473de49189d93714d3.js +0 -1
- package/assets/esri/core/workers/chunks/eca0736953a20cfc64ad.js +0 -2
- package/assets/esri/core/workers/chunks/efd176c5ac35f313e7a2.js +0 -1
- package/assets/esri/core/workers/chunks/f2d99f693a590f384315.js +0 -1
- package/assets/esri/core/workers/chunks/fc2234e0d202631f3abf.js +0 -2
- package/assets/esri/core/workers/chunks/fcb943c3b31b1bf62e65.js +0 -2
- package/assets/esri/core/workers/chunks/ffe2cbfea38b92a231d6.js +0 -1
- /package/assets/esri/core/workers/chunks/{eca0736953a20cfc64ad.js.LICENSE.txt → 1b277311a4beb4243bf8.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{856dba96332509fb1d7a.js.LICENSE.txt → 30dade7bf6032be32599.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{fc2234e0d202631f3abf.js.LICENSE.txt → 62b116307483d5f0e37d.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{61312d3b5477ed9d87d9.js.LICENSE.txt → 7ca188f824956a5cac35.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{e63f94c8097555b266ad.js.LICENSE.txt → 8e1b913067b8e88ff365.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{fcb943c3b31b1bf62e65.js.LICENSE.txt → bbb97c38d8670329d07e.js.LICENSE.txt} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[2186],{2272(e,t,n){n.d(t,{Dl:()=>f,gf:()=>l,jV:()=>a,lF:()=>c});var i=n(92602),r=n(70333),s=n(4718),o=n(84952),u=n(926);function a(e,t){return t?{...t,query:{...e,...t.query}}:{query:e}}function f(e){return"string"==typeof e?(0,o.An)(e):(0,s.o8)(e)}function c(e,t,n){const i={};for(const r in e){if("declaredClass"===r)continue;const s=e[r];if(null!=s&&"function"!=typeof s)if(Array.isArray(s))i[r]=s.map(e=>c(e));else if("object"==typeof s)if(s.toJSON){const e=s.toJSON(n?.[r]);i[r]=t?e:JSON.stringify(e)}else i[r]=t?s:JSON.stringify(s);else i[r]=s}return i}async function l(e,t,s){const o=function(e,t){return e?t&&(0,u.Qc)(e)?t:(0,u.getApiKey)(e)??r.id?.findCredential(e)?.token:null}(e,t);if(o)return o;!r.id&&i.A.request.useIdentity&&await Promise.all([n.e(7632),n.e(
|
|
1
|
+
"use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[2186],{2272(e,t,n){n.d(t,{Dl:()=>f,gf:()=>l,jV:()=>a,lF:()=>c});var i=n(92602),r=n(70333),s=n(4718),o=n(84952),u=n(926);function a(e,t){return t?{...t,query:{...e,...t.query}}:{query:e}}function f(e){return"string"==typeof e?(0,o.An)(e):(0,s.o8)(e)}function c(e,t,n){const i={};for(const r in e){if("declaredClass"===r)continue;const s=e[r];if(null!=s&&"function"!=typeof s)if(Array.isArray(s))i[r]=s.map(e=>c(e));else if("object"==typeof s)if(s.toJSON){const e=s.toJSON(n?.[r]);i[r]=t?e:JSON.stringify(e)}else i[r]=t?s:JSON.stringify(s);else i[r]=s}return i}async function l(e,t,s){const o=function(e,t){return e?t&&(0,u.Qc)(e)?t:(0,u.getApiKey)(e)??r.id?.findCredential(e)?.token:null}(e,t);if(o)return o;!r.id&&i.A.request.useIdentity&&await Promise.all([n.e(7632),n.e(7510),n.e(148)]).then(n.bind(n,50148));const a=await r.id.getCredential(e,s);return a?.token}},32186(e,t,n){n.r(t),n.d(t,{deleteForwardEdits:()=>o});var i=n(11254),r=n(49186),s=n(2272);async function o(e,t,n,o){if(!t)throw new r.A("post:missing-guid","guid for version is missing");const u=(0,s.Dl)(e),a=n.toJSON(),f=(0,s.jV)(u.query,{query:(0,s.lF)({...a,f:"json"}),...o,method:"post"});t.startsWith("{")&&(t=t.slice(1,-1));const c=`${u.path}/versions/${t}/deleteForwardEdits`,{data:l}=await(0,i.A)(c,f);return l}}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[353],{61691(e,t,s){s.d(t,{G:()=>m});class m{*[Symbol.iterator](){let e=this.next();for(;e;)yield e,e=this.next()}}},12189(e,t,s){s.d(t,{queryTransformationList:()=>m.
|
|
1
|
+
"use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[353],{61691(e,t,s){s.d(t,{G:()=>m});class m{*[Symbol.iterator](){let e=this.next();for(;e;)yield e,e=this.next()}}},12189(e,t,s){s.d(t,{queryTransformationList:()=>m.z}),s(55537),s(83661);var m=s(39117)},76061(e,t,s){s.d(t,{S:()=>i});var m=s(61691);class i extends m.G{m_aGeoms;m_iGeom=-1;constructor(e){super(),this.m_aGeoms=e?e.slice():[]}next(){if(this.m_iGeom<this.m_aGeoms.length-1){const e=this.m_aGeoms[++this.m_iGeom];return this.m_aGeoms[this.m_iGeom]=null,e}return null}tock(){return!1}getGeometryID(){return this.m_iGeom}getRank(){return 1}}}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[5605],{68375(t,s,e){e.d(s,{O:()=>h});var i=e(61691),n=e(55537),o=e(39117),r=e(79187),m=e(86870);class h{getOperatorType(){return 10111}supportsCurves(){return!0}accelerateGeometry(t,s,e){return!1}canAccelerateGeometry(t){return!1}executeMany(t,s,e,i,n,r,m,h,_,c,f){if(_){const _=new a(t,s,e,i,n,r,m,h,f);return(new o.W).executeMany(_,s,f,2)}return new a(t,s,e,i,n,r,m,h,f)}}class a extends i.G{m_inputGeoms;m_spatialReference;m_progressTracker;m_bufferer;m_distances;m_maxDeviation;m_miterLimit;m_maxVerticesInFullCircle;m_joins;m_caps;m_currentUnionEnvelope2D=new r.Envelope2D;m_index=-1;m_dindex=-1;constructor(t,s,e,i,n,o,r,h,a){super(),this.m_progressTracker=a,this.m_bufferer=new m.B(a),this.m_inputGeoms=t,this.m_spatialReference=s,this.m_distances=e,this.m_maxDeviation=r,this.m_maxVerticesInFullCircle=h,this.m_joins=i,this.m_caps=n,this.m_miterLimit=o}tock(){return!0}getRank(){return 1}next(){{let t;for(;t=this.m_inputGeoms.next();)return(0,n.c)(t),this.m_index=this.m_inputGeoms.getGeometryID(),this.m_dindex+1<this.m_distances.length&&this.m_dindex++,this.buffer(t,this.m_distances[this.m_dindex]);return null}}getGeometryID(){return this.m_index}buffer(t,s){return this.m_bufferer.buffer(t,s,this.m_spatialReference,this.m_joins,this.m_caps,this.m_miterLimit,this.m_maxDeviation,this.m_maxVerticesInFullCircle)}}},66070(t,s,e){e.d(s,{fz:()=>g,g7:()=>x,zo:()=>b});var i=e(76061),n=e(61691),o=e(95213),r=e(55537),m=e(88885),h=e(83661),a=e(86870),_=e(68375);const c=1.4142135623730951,f=.017453292519943295,u=256,l=1024;class d{x;y;m_next;m_prev;z;m;type;static construct(t,s,e){const i=new d;return i.x=t.x,i.y=t.y,i.m_next=-1,i.m_prev=-1,i.z=s,i.m=e,i.type=0,i}clone(){const t=new d;return t.x=this.x,t.y=this.y,t.m_next=this.m_next,t.m_prev=this.m_prev,t.z=this.z,t.m=this.m,t.type=this.type,t}asPoint2D(){return new h.P(this.x,this.y)}}class P{m_progressTracker;m_inputGeometry;m_distance=-1;m_tolerance=-1;m_miterLimit=10;m_joins=0;m_progressCounter=0;m_options=0;m_bUseZ=!1;m_bUseM=!1;m_srcPts=[];m_srcPtCount=0;m_offsetPts=[];m_offsetPtCount=0;m_resultPath;m_a1=0;m_a2=0;constructor(t){this.m_progressTracker=t}constructOffset(){const t=this.m_inputGeometry.getGeometryType();if(t===r.G.enumLine)return this.offsetLine();if(t===r.G.enumEnvelope)return this.offsetEnvelope();if((0,r.h)(t)){const t=new m.a;return t.addSegment(this.m_inputGeometry,!0),this.m_inputGeometry=t,this.constructOffset()}if(t===r.G.enumPolyline){const t=new m.a;return this.offsetMultiPath(t),t}if(t===r.G.enumPolygon){if(1===this.m_options){let t;switch(this.m_joins){case 1:case 3:t=2;break;case 2:t=1;break;case 0:t=0;break;default:(0,r.g)(!1,"Invalid join type")}const s=1,e=[-1];return(new _.O).executeMany(new i.S([this.m_inputGeometry]),null,e,t,s,this.m_miterLimit,this.m_tolerance,360,!1,0,null).next()}const t=new m.P;return this.offsetMultiPath(t),t}(0,r.t)("")}offsetLine(){const t=this.m_inputGeometry,s=t.getStartXY(),e=t.getEndXY(),i=new h.P;i.setSub(e,s),i.normalize(),i.leftPerpendicularThis(),i.scale(this.m_distance),s.addThis(i),e.addThis(i);const n=t.clone();return n.setStartXY(s),n.setEndXY(e),n}offsetEnvelope(){const t=this.m_inputGeometry;if(this.m_distance>0&&2!==this.m_joins){const s=new m.P;return s.addEnvelope(t,!1),this.m_inputGeometry=s,this.constructOffset()}const s=t.clone();return s.inflateCoords(this.m_distance,this.m_distance),s}progress(){}static buildPoint(t,s,e,i){i.x=t.x+s*Math.cos(e),i.y=t.y+s*Math.sin(e),i.type=t.type,i.z=t.z,i.m=t.m,i.m_next=-1,i.m_prev=-1}addPoint(t){this.m_offsetPts.push(t.clone()),this.m_offsetPtCount++}addPointEx(t,s){if(0===this.m_offsetPtCount)return void this.addPoint(t);const e=this.m_srcPtCount,i=this.m_srcPts[0===s?e-1:s-1],n=this.m_srcPts[s],o=P.dotSign(i,n,this.m_offsetPts[this.m_offsetPtCount-1],t);if(o>0)this.addPoint(t);else if(o<0)if(P.dotSign(i,n,n,this.m_offsetPts[this.m_offsetPtCount-1])>0){const n=new d;let o;o=0===s?e-2:1===s?e-1:s-2;const r=this.m_srcPts[o],m=Math.atan2(i.y-r.y,i.x-r.x);if(P.buildPoint(i,this.m_distance,m-h.l,n),this.m_offsetPts[this.m_offsetPtCount-1]=n.clone(),1===this.m_joins||2===this.m_joins){n.x=.5*(n.x+i.x),n.y=.5*(n.y+i.y),this.addPoint(n),P.buildPoint(i,this.m_distance,this.m_a1+h.l,n);const t=n.clone();t.x=.5*(t.x+i.x),t.y=.5*(t.y+i.y),t.type|=u,this.addPoint(t),this.addPoint(n)}else P.buildPoint(i,this.m_distance,this.m_a1+h.l,n),n.type|=u,this.addPoint(n);this.addPointEx(t,s)}else{const t=new d;if(P.buildPoint(n,this.m_distance,this.m_a1+h.l,t),this.addPoint(t),1===this.m_joins||2===this.m_joins){t.x=.5*(t.x+n.x),t.y=.5*(t.y+n.y),this.addPoint(t),P.buildPoint(n,this.m_distance,this.m_a2-h.l,t);const s=t.clone();s.x=.5*(s.x+n.x),s.y=.5*(s.y+n.y),s.type|=u,this.addPoint(s),this.addPoint(t)}else P.buildPoint(n,this.m_distance,this.m_a2-h.l,t),t.type|=u,this.addPoint(t)}}buildOffset(){const t=new d,s=this.m_srcPtCount;this.m_offsetPtCount=0;const e=.5*this.m_tolerance;let i=0,n=0;for(let o=0;o<s;o++){const r=this.m_srcPts[o],m=0===o?this.m_srcPts[s-1]:this.m_srcPts[o-1],a=o===s-1?this.m_srcPts[0]:this.m_srcPts[o+1];let _,d,y=0;{const t=m.x-r.x,s=m.y-r.y,e=a.x-r.x,c=a.y-r.y;_=Math.atan2(s,t),d=Math.atan2(c,e),this.m_a1=_,this.m_a2=d,0===o&&(i=_,n=d),y=h.P.orientationRobust(r.asPoint2D(),m.asPoint2D(),a.asPoint2D())}const p=d;d<_&&(d+=h.n);const x=Math.abs(Math.abs(_-d)-Math.PI)<1e-8;if(x||y*this.m_distance>0)if(x||1!==this.m_joins&&2!==this.m_joins){const s=.5*(d-_),e=0===s?this.m_distance:this.m_distance/Math.abs(Math.sin(s));P.buildPoint(r,e,.5*(_+d),t),this.addPointEx(t,o)}else{P.buildPoint(r,this.m_distance,_+h.l,t),this.addPoint(t);const s=.001;t.x=r.x+(t.x-r.x)*s,t.y=r.y+(t.y-r.y)*s,this.addPoint(t),P.buildPoint(r,this.m_distance,d-h.l,t);const e=t.clone();e.x=r.x+(e.x-r.x)*s,e.y=r.y+(e.y-r.y)*s,e.type|=u,this.addPoint(e),this.addPoint(t)}else{if(512&r.type){const s=1-e/Math.abs(this.m_distance);let i=1,n=this.m_distance<0?-Math.PI:Math.PI;if(s>-1&&s<1){let t=2*Math.acos(s);t<f&&(t=f),i=Math.trunc(Math.PI/t+1.5),i>1&&(n/=i)}i<=1&&(i=2,n/=2);let m=_+h.l;P.buildPoint(r,this.m_distance,m,t),0===o&&(t.type|=l),this.addPointEx(t,o);const a=this.m_distance/Math.cos(n/2);for(m+=n/2,P.buildPoint(r,a,m,t),t.type|=l,this.addPoint(t);--i>0;)m+=n,P.buildPoint(r,a,m,t),t.type|=l,this.addPoint(t);P.buildPoint(r,this.m_distance,d-h.l,t),t.type|=l,this.addPoint(t);continue}if(1!==this.m_joins){if(0===this.m_joins){const s=1-e/Math.abs(this.m_distance);let i=1,n=d-h.l-(_+h.l);if(s>-1&&s<1){let t=2*Math.acos(s);t<f&&(t=f),i=Math.trunc(Math.abs(n)/t+1.5),i>1&&(n/=i)}const m=this.m_distance/Math.cos(.5*n);let a=_+h.l+.5*n;for(P.buildPoint(r,m,a,t),this.addPointEx(t,o);--i>0;)a+=n,P.buildPoint(r,m,a,t),this.addPoint(t);continue}if(2===this.m_joins){const s=m.x-r.x,e=m.y-r.y,i=a.x-r.x,n=a.y-r.y;let f=(s*i+e*n)/Math.sqrt(s*s+e*e)/Math.sqrt(i*i+n*n);if(f=Math.max(f,-1),f>1-1e-8){P.buildPoint(r,c*this.m_distance,d-.25*Math.PI,t),this.addPointEx(t,o),P.buildPoint(r,c*this.m_distance,d+.25*Math.PI,t),this.addPoint(t);continue}const u=Math.abs(this.m_distance/Math.sin(.5*Math.acos(f))),l=Math.abs(this.m_miterLimit*this.m_distance);if(u>l){const s=.5*(d-_),e=this.m_distance/Math.abs(Math.sin(s));P.buildPoint(r,e,.5*(_+d),t);const i=h.P.construct(t.x,t.y),n=h.P.construct(r.x,r.y),m=new h.P;m.setSub(i,n);const a=new h.P;a.setScaleAdd(l/m.length(),m,n);const c=Math.sqrt(u*u-this.m_distance*this.m_distance),f=(u-l)*Math.abs(this.m_distance)/c;this.m_distance>0?m.rightPerpendicularThis():m.leftPerpendicularThis(),m.scale(f/m.length());const y=new h.P;y.setAdd(a,m);const p=new h.P;p.setSub(a,m),t.x=y.x,t.y=y.y,this.addPointEx(t,o),t.x=p.x,t.y=p.y,this.addPoint(t);continue}const y=.5*(d-_),p=this.m_distance/Math.abs(Math.sin(y));P.buildPoint(r,p,.5*(_+d),t),this.addPointEx(t,o);continue}{let s;if(d=p,this.m_distance>0?(d>_&&(d-=h.n),s=_-d<h.l):(d<_&&(d+=h.n),s=d-_<h.l),s){const s=this.m_distance*c;let e;e=s<0?_+.25*Math.PI:_+3*Math.PI*.25,P.buildPoint(r,s,e,t),this.addPointEx(t,o),e=s<0?d-.25*Math.PI:d-3*Math.PI*.25,P.buildPoint(r,s,e,t),this.addPoint(t)}else{const s=.5*(d-_),e=this.m_distance/Math.abs(Math.sin(s));d<_&&(d+=h.n),P.buildPoint(r,e,(_+d)/2,t),this.addPointEx(t,o)}}}else P.buildPoint(r,this.m_distance,_+h.l,t),this.addPointEx(t,o),P.buildPoint(r,this.m_distance,d-h.l,t),this.addPoint(t)}}return this.m_a1=i,this.m_a2=n,this.addPointEx(this.m_offsetPts[0],0),this.m_offsetPts[0]=this.m_offsetPts[this.m_offsetPtCount-1].clone(),this.removeBadSegsFast()}removeBadSegsFast(){for(let t=0;t<this.m_offsetPtCount;t++){const s=this.m_offsetPts[t];s.m_next=t+1,s.m_prev=t-1}this.m_offsetPts[0].m_prev=this.m_offsetPtCount-2,this.m_offsetPts[this.m_offsetPtCount-2].m_next=0;let t=this.m_offsetPtCount,s=0;for(let e=0;e<t;e++)if(this.m_offsetPts[s].type&u){const e=this.m_offsetPts[s].m_next,i=this.deleteClosedSeg(s);if(-1===i){(0,r.g)(this.m_offsetPts[s].m_next===e);break}if(s>i){s=i,t=0;do{t++,s=this.m_offsetPts[s].m_next}while(s!==i)}s=i}else s=this.m_offsetPts[s].m_next;return this.compressOffsetArray(s),!0}deleteClosedSeg(t){const s=this.m_offsetPtCount-1;let e=t;for(let i=1;i<=s-2&&(e=this.m_offsetPts[e].m_next,t!==e);i++){let s=e,n=t;for(let o=1;o<=i&&(n=this.m_offsetPts[n].m_prev,n!==t);o++){if(0===(this.m_offsetPts[n].type&u)&&0===(this.m_offsetPts[s].type&u)){const t=this.handleClosedIntersection(n,s);if(-1!==t)return t}if(s=this.m_offsetPts[s].m_prev,s===e)break}}return-1}handleClosedIntersection(t,s){const e=this.m_offsetPts[this.m_offsetPts[t].m_prev],i=this.m_offsetPts[t],n=this.m_offsetPts[this.m_offsetPts[s].m_prev],o=this.m_offsetPts[s];if(!this.sectGraphicRect(e,i,n,o))return-1;if(h.P.orientationRobustEx(e.asPoint2D(),i.asPoint2D(),n.asPoint2D(),o.asPoint2D())*this.m_distance<0){const r=this.findIntersection(e,i,n,o);let m=!1;if(r[0]>=0){const a={pt:new d,bAtExistingPt:!1};if(r[0]>=0&&r[0]<=1&&(a.pt.x=(0,h.r)(e.x,i.x,r[0]),a.pt.y=(0,h.r)(e.y,i.y,r[0]),this.m_bUseZ&&(a.pt.z=(0,h.r)(n.z,o.z,r[1])),this.m_bUseM&&(a.pt.m=(0,h.r)(n.m,o.m,r[1])),0!==r[1]&&1!==r[1]||0!==r[0]&&1!==r[0]||(a.bAtExistingPt=!0),m=!((0===r[1]||1===r[1])&&r[0]>0&&r[0]<1||(0===r[0]||1===r[0])&&r[1]>0&&r[1]<1)),m&&!a.bAtExistingPt){let e=!1;const o=a.pt.asPoint2D(),r=n.asPoint2D(),m=a.pt.asPoint2D();let _=this.m_offsetPts[t].m_prev;for(;;){if(h.P.getClosestCoordinate(r,m,o,!1)<1e-8){e=!1;break}if((m.y>o.y&&r.y<=o.y||m.y<o.y&&m.y<=o.y)&&h.P.orientationRobustEx(m,o,m,r)<0&&(e=!e),r.x=m.x,r.y=m.y,_=this.m_offsetPts[_].m_next,_===s)break;m.x=this.m_offsetPts[_].x,m.y=this.m_offsetPts[_].y}if(e)return-1;const c=this.m_offsetPts[t].m_prev;return a.pt.type=i.type,a.pt.m_next=s,a.pt.m_prev=c,this.m_offsetPts[t]=a.pt,this.m_offsetPts[s].m_prev=t,s}}}return-1}sectGraphicRect(t,s,e,i){return Math.max(t.x,s.x)>=Math.min(e.x,i.x)&&Math.max(e.x,i.x)>=Math.min(t.x,s.x)&&Math.max(t.y,s.y)>=Math.min(e.y,i.y)&&Math.max(e.y,i.y)>=Math.min(t.y,s.y)}findIntersection(t,s,e,i){const[n,o,r,h]=[t,s,e,i].map(t=>t.asPoint2D());if(n.equals(r))return[0,0];if(n.equals(h))return[0,1];if(o.equals(r))return[1,0];if(o.equals(h))return[1,1];const a=[];return 1===m.L.segmentIntersectRobust(n,o,r,h,1e-15,a)?a:[-1,-1]}compressOffsetArray(t){for(;this.m_offsetPts[t].m_prev<t;)t=this.m_offsetPts[t].m_prev;let s=0,e=t;do{const t=this.m_offsetPts[e].clone();this.m_offsetPts[s]=t,e=t.m_next,s++}while(e!==t);this.m_offsetPts[s]=this.m_offsetPts[0].clone(),this.m_offsetPtCount=s+1}addPart(t,s,e){if(!(s<2)){for(let e=0;e<s;e++){const s=this.m_offsetPts[t+e];if(e?this.m_bUseZ?this.m_resultPath.lineTo3DCoords(s.x,s.y,s.z):this.m_resultPath.lineToCoords(s.x,s.y):this.m_bUseZ?this.m_resultPath.startPath3DCoords(s.x,s.y,s.z):this.m_resultPath.startPathCoords(s.x,s.y),this.m_bUseM){const t=this.m_resultPath.getPointCount()-1;this.m_resultPath.setAttribute(2,t,0,s.m)}}e&&this.m_resultPath.closePathWithLine()}}offsetMultiPath(t){const s=(0,m.d)(this.m_inputGeometry,0,this.m_tolerance,0,this.m_progressTracker,12e3),e=s.querySegmentIterator();e.resetToFirstPath();let i=-1;for(;e.nextPath();)i++,this.offsetPath(s,i,t)}offsetPath(t,s,e){let i=t.getPathStart(s),n=t.getPathEnd(s);if(this.m_resultPath=e,t.isClosedPath(s)){const s=t.getXY(i);for(;n>i&&t.getXY(n-1).equals(s);)n--;if(n-i>=2){this.m_srcPtCount=n-i,this.m_srcPts.length=this.m_srcPtCount;for(let s=i;s<n;s++)this.progress(),this.m_srcPts[s-i]=d.construct(t.getXY(s),this.m_bUseZ?t.getAttributeAsDbl(1,s,0):0,this.m_bUseM?t.getAttributeAsDbl(2,s,0):0);this.buildOffset()&&this.addPart(0,this.m_offsetPtCount-1,!0)}}else{const s=t.getXY(i);for(;i<n-1&&t.getXY(i+1).equals(s);)i++;const e=t.getXY(n-1);for(;i<n-1&&t.getXY(n-2).equals(e);)n--;if(n-i>=2){this.m_srcPtCount=2*(n-i)-2,this.m_srcPts.length=this.m_srcPtCount;let e=d.construct(s,this.m_bUseZ?t.getAttributeAsDbl(1,i,0):0,this.m_bUseM?t.getAttributeAsDbl(2,i,0):0);e.type|=1536,this.m_srcPts[0]=e;let o=1,r=this.m_srcPtCount-1;for(let s=i+1;s<n-1;s++,o++,r--)this.progress(),e=d.construct(t.getXY(s),this.m_bUseZ?t.getAttributeAsDbl(1,s,0):0,this.m_bUseM?t.getAttributeAsDbl(2,s,0):0),this.m_srcPts[o]=e.clone(),e.type|=l,this.m_srcPts[r]=e.clone();if(e=d.construct(t.getXY(n-1),this.m_bUseZ?t.getAttributeAsDbl(1,n-1,0):0,this.m_bUseM?t.getAttributeAsDbl(2,n-1,0):0),e.type|=512,this.m_srcPts[o]=e.clone(),this.buildOffset())if(this.m_offsetPts.length>=2){let t=-1,s=-1,e=0!==(this.m_offsetPts[this.m_offsetPtCount-1].type&l);e||(t=0);for(let i=1;i<this.m_offsetPtCount;i++){this.progress();const n=0!==(this.m_offsetPts[i].type&l);n?e||(s=i-1,s-t+1>1&&this.addPart(t,s-t+1,!1)):e&&(t=i-1),e=n}e||(s=this.m_offsetPtCount-1,s-t+1>1&&this.addPart(t,s-t+1,!1))}else{const t=0,s=this.m_offsetPtCount-1;s-t>=1&&this.addPart(t,s-t+1,!1)}}}this.m_srcPts.length=0,this.m_srcPtCount=0,this.m_offsetPts.length=0,this.m_offsetPtCount=0}static dotSign(t,s,e,i){const n=s.x-t.x,o=s.y-t.y,r=i.x-e.x,m=i.y-e.y,a=(0,h.u)(n,o,r,m);return(0,h.e)(a)}}class y extends n.G{m_inputGeoms;m_spatialReference;m_progressTracker;m_distance;m_miterLimit;m_joins;m_flattenError;m_index;m_options;constructor(t,s,e,i,n,o,r,m){super(),this.m_progressTracker=r,this.m_index=-1,this.m_inputGeoms=t,this.m_spatialReference=s,this.m_distance=e,this.m_joins=i,this.m_miterLimit=n,this.m_flattenError=o,this.m_options=m}tock(){return!0}getRank(){return 1}next(){if(!this.m_inputGeoms)return null;let t;for(;t=this.m_inputGeoms.next();)return this.m_index=this.m_inputGeoms.getGeometryID(),this.offset(t);return null}getGeometryID(){return this.m_index}offset(t){let s;return(0,r.c)(t),s=this.m_flattenError<=0?(0,o.e)(this.m_spatialReference,t,!0).total():this.m_flattenError,function(t,s,e,i,n,o,m){if(null===t&&(0,r.a)(""),t.getDimension()<1&&(0,r.a)(""),n>0||(0,r.a)(""),(0,r.c)(t),0===s||t.isEmpty())return t;const h=new P(m);return h.m_bUseZ=t.hasAttribute(1),h.m_bUseM=t.hasAttribute(2),h.m_inputGeometry=t,h.m_distance=s,h.m_tolerance=n,h.m_joins=e,h.m_miterLimit=i>1?i:1,h.m_miterLimit=(0,a.s)(h.m_miterLimit),h.m_progressCounter=0,h.m_options=o,h.constructOffset()}(t,this.m_distance,this.m_joins,this.m_miterLimit,s,this.m_options,this.m_progressTracker)}}const p=new class{getOperatorType(){return 10108}accelerateGeometry(t,s,e){return!1}canAccelerateGeometry(t){return!1}supportsCurves(){return!0}executeMany(t,s,e,i,n,o,r,m=0){return new y(t,s,e,i,n,o,r,m)}execute(t,s,e,i,n,o,r,m=0){return new y(null,s,e,i,n,o,r,m).offset(t)}};function x(t,s,e,i,n,o){return p.execute(t,s,e,i,n,o,null)}function b(t,s,e,n,o,r){const m=p.executeMany(new i.S(t),s,e,n,o,r,null);return Array.from(m)}function g(){return p.supportsCurves()}},15605(t,s,e){e.r(s),e.d(s,{execute:()=>h,executeMany:()=>a});var i=e(4576),n=e(86211),o=e(66070),r=e(83299);const m={round:0,bevel:1,miter:2,square:3};function h(t,s,e={}){const{miterLimit:i=10,flattenError:h=0,joins:a="round",unit:_}=e,c=(0,r.getSpatialReference)(t);_&&c&&(s=(0,n.UW)(s,_,c));const f=(0,r.fromGeometry)(t),u=f.getSpatialReference();return(0,r.toGeometry)((0,o.g7)(f.getGeometry(),u,s,m[a],i,h),u)}function a(t,s,e={}){const{miterLimit:h=10,flattenError:a=0,joins:_="round",unit:c}=e,f=(0,r.getSpatialReference)(t);c&&f&&(s=(0,n.UW)(s,c,f));const[u,l]=(0,r.fromGeometries)(t);return(0,o.zo)(u,l,s,m[_],h,a).map(t=>(0,r.toGeometry)(t,l)).filter(i.Ru)}}}]);
|
|
1
|
+
"use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[5605],{68375(t,s,e){e.d(s,{O:()=>h});var i=e(61691),n=e(55537),o=e(39117),r=e(79187),m=e(86870);class h{getOperatorType(){return 10111}supportsCurves(){return!0}accelerateGeometry(t,s,e){return!1}canAccelerateGeometry(t){return!1}executeMany(t,s,e,i,n,r,m,h,_,c,f){if(_){const _=new a(t,s,e,i,n,r,m,h,f);return(new o._).executeMany(_,s,f,2)}return new a(t,s,e,i,n,r,m,h,f)}}class a extends i.G{m_inputGeoms;m_spatialReference;m_progressTracker;m_bufferer;m_distances;m_maxDeviation;m_miterLimit;m_maxVerticesInFullCircle;m_joins;m_caps;m_currentUnionEnvelope2D=new r.Envelope2D;m_index=-1;m_dindex=-1;constructor(t,s,e,i,n,o,r,h,a){super(),this.m_progressTracker=a,this.m_bufferer=new m.B(a),this.m_inputGeoms=t,this.m_spatialReference=s,this.m_distances=e,this.m_maxDeviation=r,this.m_maxVerticesInFullCircle=h,this.m_joins=i,this.m_caps=n,this.m_miterLimit=o}tock(){return!0}getRank(){return 1}next(){{let t;for(;t=this.m_inputGeoms.next();)return(0,n.c)(t),this.m_index=this.m_inputGeoms.getGeometryID(),this.m_dindex+1<this.m_distances.length&&this.m_dindex++,this.buffer(t,this.m_distances[this.m_dindex]);return null}}getGeometryID(){return this.m_index}buffer(t,s){return this.m_bufferer.buffer(t,s,this.m_spatialReference,this.m_joins,this.m_caps,this.m_miterLimit,this.m_maxDeviation,this.m_maxVerticesInFullCircle)}}},66070(t,s,e){e.d(s,{fz:()=>g,g7:()=>x,zo:()=>b});var i=e(76061),n=e(61691),o=e(95213),r=e(55537),m=e(88885),h=e(83661),a=e(86870),_=e(68375);const c=1.4142135623730951,f=.017453292519943295,u=256,l=1024;class d{x;y;m_next;m_prev;z;m;type;static construct(t,s,e){const i=new d;return i.x=t.x,i.y=t.y,i.m_next=-1,i.m_prev=-1,i.z=s,i.m=e,i.type=0,i}clone(){const t=new d;return t.x=this.x,t.y=this.y,t.m_next=this.m_next,t.m_prev=this.m_prev,t.z=this.z,t.m=this.m,t.type=this.type,t}asPoint2D(){return new h.P(this.x,this.y)}}class P{m_progressTracker;m_inputGeometry;m_distance=-1;m_tolerance=-1;m_miterLimit=10;m_joins=0;m_progressCounter=0;m_options=0;m_bUseZ=!1;m_bUseM=!1;m_srcPts=[];m_srcPtCount=0;m_offsetPts=[];m_offsetPtCount=0;m_resultPath;m_a1=0;m_a2=0;constructor(t){this.m_progressTracker=t}constructOffset(){const t=this.m_inputGeometry.getGeometryType();if(t===r.G.enumLine)return this.offsetLine();if(t===r.G.enumEnvelope)return this.offsetEnvelope();if((0,r.h)(t)){const t=new m.a;return t.addSegment(this.m_inputGeometry,!0),this.m_inputGeometry=t,this.constructOffset()}if(t===r.G.enumPolyline){const t=new m.a;return this.offsetMultiPath(t),t}if(t===r.G.enumPolygon){if(1===this.m_options){let t;switch(this.m_joins){case 1:case 3:t=2;break;case 2:t=1;break;case 0:t=0;break;default:(0,r.g)(!1,"Invalid join type")}const s=1,e=[-1];return(new _.O).executeMany(new i.S([this.m_inputGeometry]),null,e,t,s,this.m_miterLimit,this.m_tolerance,360,!1,0,null).next()}const t=new m.P;return this.offsetMultiPath(t),t}(0,r.t)("")}offsetLine(){const t=this.m_inputGeometry,s=t.getStartXY(),e=t.getEndXY(),i=new h.P;i.setSub(e,s),i.normalize(),i.leftPerpendicularThis(),i.scale(this.m_distance),s.addThis(i),e.addThis(i);const n=t.clone();return n.setStartXY(s),n.setEndXY(e),n}offsetEnvelope(){const t=this.m_inputGeometry;if(this.m_distance>0&&2!==this.m_joins){const s=new m.P;return s.addEnvelope(t,!1),this.m_inputGeometry=s,this.constructOffset()}const s=t.clone();return s.inflateCoords(this.m_distance,this.m_distance),s}progress(){}static buildPoint(t,s,e,i){i.x=t.x+s*Math.cos(e),i.y=t.y+s*Math.sin(e),i.type=t.type,i.z=t.z,i.m=t.m,i.m_next=-1,i.m_prev=-1}addPoint(t){this.m_offsetPts.push(t.clone()),this.m_offsetPtCount++}addPointEx(t,s){if(0===this.m_offsetPtCount)return void this.addPoint(t);const e=this.m_srcPtCount,i=this.m_srcPts[0===s?e-1:s-1],n=this.m_srcPts[s],o=P.dotSign(i,n,this.m_offsetPts[this.m_offsetPtCount-1],t);if(o>0)this.addPoint(t);else if(o<0)if(P.dotSign(i,n,n,this.m_offsetPts[this.m_offsetPtCount-1])>0){const n=new d;let o;o=0===s?e-2:1===s?e-1:s-2;const r=this.m_srcPts[o],m=Math.atan2(i.y-r.y,i.x-r.x);if(P.buildPoint(i,this.m_distance,m-h.l,n),this.m_offsetPts[this.m_offsetPtCount-1]=n.clone(),1===this.m_joins||2===this.m_joins){n.x=.5*(n.x+i.x),n.y=.5*(n.y+i.y),this.addPoint(n),P.buildPoint(i,this.m_distance,this.m_a1+h.l,n);const t=n.clone();t.x=.5*(t.x+i.x),t.y=.5*(t.y+i.y),t.type|=u,this.addPoint(t),this.addPoint(n)}else P.buildPoint(i,this.m_distance,this.m_a1+h.l,n),n.type|=u,this.addPoint(n);this.addPointEx(t,s)}else{const t=new d;if(P.buildPoint(n,this.m_distance,this.m_a1+h.l,t),this.addPoint(t),1===this.m_joins||2===this.m_joins){t.x=.5*(t.x+n.x),t.y=.5*(t.y+n.y),this.addPoint(t),P.buildPoint(n,this.m_distance,this.m_a2-h.l,t);const s=t.clone();s.x=.5*(s.x+n.x),s.y=.5*(s.y+n.y),s.type|=u,this.addPoint(s),this.addPoint(t)}else P.buildPoint(n,this.m_distance,this.m_a2-h.l,t),t.type|=u,this.addPoint(t)}}buildOffset(){const t=new d,s=this.m_srcPtCount;this.m_offsetPtCount=0;const e=.5*this.m_tolerance;let i=0,n=0;for(let o=0;o<s;o++){const r=this.m_srcPts[o],m=0===o?this.m_srcPts[s-1]:this.m_srcPts[o-1],a=o===s-1?this.m_srcPts[0]:this.m_srcPts[o+1];let _,d,y=0;{const t=m.x-r.x,s=m.y-r.y,e=a.x-r.x,c=a.y-r.y;_=Math.atan2(s,t),d=Math.atan2(c,e),this.m_a1=_,this.m_a2=d,0===o&&(i=_,n=d),y=h.P.orientationRobust(r.asPoint2D(),m.asPoint2D(),a.asPoint2D())}const p=d;d<_&&(d+=h.n);const x=Math.abs(Math.abs(_-d)-Math.PI)<1e-8;if(x||y*this.m_distance>0)if(x||1!==this.m_joins&&2!==this.m_joins){const s=.5*(d-_),e=0===s?this.m_distance:this.m_distance/Math.abs(Math.sin(s));P.buildPoint(r,e,.5*(_+d),t),this.addPointEx(t,o)}else{P.buildPoint(r,this.m_distance,_+h.l,t),this.addPoint(t);const s=.001;t.x=r.x+(t.x-r.x)*s,t.y=r.y+(t.y-r.y)*s,this.addPoint(t),P.buildPoint(r,this.m_distance,d-h.l,t);const e=t.clone();e.x=r.x+(e.x-r.x)*s,e.y=r.y+(e.y-r.y)*s,e.type|=u,this.addPoint(e),this.addPoint(t)}else{if(512&r.type){const s=1-e/Math.abs(this.m_distance);let i=1,n=this.m_distance<0?-Math.PI:Math.PI;if(s>-1&&s<1){let t=2*Math.acos(s);t<f&&(t=f),i=Math.trunc(Math.PI/t+1.5),i>1&&(n/=i)}i<=1&&(i=2,n/=2);let m=_+h.l;P.buildPoint(r,this.m_distance,m,t),0===o&&(t.type|=l),this.addPointEx(t,o);const a=this.m_distance/Math.cos(n/2);for(m+=n/2,P.buildPoint(r,a,m,t),t.type|=l,this.addPoint(t);--i>0;)m+=n,P.buildPoint(r,a,m,t),t.type|=l,this.addPoint(t);P.buildPoint(r,this.m_distance,d-h.l,t),t.type|=l,this.addPoint(t);continue}if(1!==this.m_joins){if(0===this.m_joins){const s=1-e/Math.abs(this.m_distance);let i=1,n=d-h.l-(_+h.l);if(s>-1&&s<1){let t=2*Math.acos(s);t<f&&(t=f),i=Math.trunc(Math.abs(n)/t+1.5),i>1&&(n/=i)}const m=this.m_distance/Math.cos(.5*n);let a=_+h.l+.5*n;for(P.buildPoint(r,m,a,t),this.addPointEx(t,o);--i>0;)a+=n,P.buildPoint(r,m,a,t),this.addPoint(t);continue}if(2===this.m_joins){const s=m.x-r.x,e=m.y-r.y,i=a.x-r.x,n=a.y-r.y;let f=(s*i+e*n)/Math.sqrt(s*s+e*e)/Math.sqrt(i*i+n*n);if(f=Math.max(f,-1),f>1-1e-8){P.buildPoint(r,c*this.m_distance,d-.25*Math.PI,t),this.addPointEx(t,o),P.buildPoint(r,c*this.m_distance,d+.25*Math.PI,t),this.addPoint(t);continue}const u=Math.abs(this.m_distance/Math.sin(.5*Math.acos(f))),l=Math.abs(this.m_miterLimit*this.m_distance);if(u>l){const s=.5*(d-_),e=this.m_distance/Math.abs(Math.sin(s));P.buildPoint(r,e,.5*(_+d),t);const i=h.P.construct(t.x,t.y),n=h.P.construct(r.x,r.y),m=new h.P;m.setSub(i,n);const a=new h.P;a.setScaleAdd(l/m.length(),m,n);const c=Math.sqrt(u*u-this.m_distance*this.m_distance),f=(u-l)*Math.abs(this.m_distance)/c;this.m_distance>0?m.rightPerpendicularThis():m.leftPerpendicularThis(),m.scale(f/m.length());const y=new h.P;y.setAdd(a,m);const p=new h.P;p.setSub(a,m),t.x=y.x,t.y=y.y,this.addPointEx(t,o),t.x=p.x,t.y=p.y,this.addPoint(t);continue}const y=.5*(d-_),p=this.m_distance/Math.abs(Math.sin(y));P.buildPoint(r,p,.5*(_+d),t),this.addPointEx(t,o);continue}{let s;if(d=p,this.m_distance>0?(d>_&&(d-=h.n),s=_-d<h.l):(d<_&&(d+=h.n),s=d-_<h.l),s){const s=this.m_distance*c;let e;e=s<0?_+.25*Math.PI:_+3*Math.PI*.25,P.buildPoint(r,s,e,t),this.addPointEx(t,o),e=s<0?d-.25*Math.PI:d-3*Math.PI*.25,P.buildPoint(r,s,e,t),this.addPoint(t)}else{const s=.5*(d-_),e=this.m_distance/Math.abs(Math.sin(s));d<_&&(d+=h.n),P.buildPoint(r,e,(_+d)/2,t),this.addPointEx(t,o)}}}else P.buildPoint(r,this.m_distance,_+h.l,t),this.addPointEx(t,o),P.buildPoint(r,this.m_distance,d-h.l,t),this.addPoint(t)}}return this.m_a1=i,this.m_a2=n,this.addPointEx(this.m_offsetPts[0],0),this.m_offsetPts[0]=this.m_offsetPts[this.m_offsetPtCount-1].clone(),this.removeBadSegsFast()}removeBadSegsFast(){for(let t=0;t<this.m_offsetPtCount;t++){const s=this.m_offsetPts[t];s.m_next=t+1,s.m_prev=t-1}this.m_offsetPts[0].m_prev=this.m_offsetPtCount-2,this.m_offsetPts[this.m_offsetPtCount-2].m_next=0;let t=this.m_offsetPtCount,s=0;for(let e=0;e<t;e++)if(this.m_offsetPts[s].type&u){const e=this.m_offsetPts[s].m_next,i=this.deleteClosedSeg(s);if(-1===i){(0,r.g)(this.m_offsetPts[s].m_next===e);break}if(s>i){s=i,t=0;do{t++,s=this.m_offsetPts[s].m_next}while(s!==i)}s=i}else s=this.m_offsetPts[s].m_next;return this.compressOffsetArray(s),!0}deleteClosedSeg(t){const s=this.m_offsetPtCount-1;let e=t;for(let i=1;i<=s-2&&(e=this.m_offsetPts[e].m_next,t!==e);i++){let s=e,n=t;for(let o=1;o<=i&&(n=this.m_offsetPts[n].m_prev,n!==t);o++){if(0===(this.m_offsetPts[n].type&u)&&0===(this.m_offsetPts[s].type&u)){const t=this.handleClosedIntersection(n,s);if(-1!==t)return t}if(s=this.m_offsetPts[s].m_prev,s===e)break}}return-1}handleClosedIntersection(t,s){const e=this.m_offsetPts[this.m_offsetPts[t].m_prev],i=this.m_offsetPts[t],n=this.m_offsetPts[this.m_offsetPts[s].m_prev],o=this.m_offsetPts[s];if(!this.sectGraphicRect(e,i,n,o))return-1;if(h.P.orientationRobustEx(e.asPoint2D(),i.asPoint2D(),n.asPoint2D(),o.asPoint2D())*this.m_distance<0){const r=this.findIntersection(e,i,n,o);let m=!1;if(r[0]>=0){const a={pt:new d,bAtExistingPt:!1};if(r[0]>=0&&r[0]<=1&&(a.pt.x=(0,h.r)(e.x,i.x,r[0]),a.pt.y=(0,h.r)(e.y,i.y,r[0]),this.m_bUseZ&&(a.pt.z=(0,h.r)(n.z,o.z,r[1])),this.m_bUseM&&(a.pt.m=(0,h.r)(n.m,o.m,r[1])),0!==r[1]&&1!==r[1]||0!==r[0]&&1!==r[0]||(a.bAtExistingPt=!0),m=!((0===r[1]||1===r[1])&&r[0]>0&&r[0]<1||(0===r[0]||1===r[0])&&r[1]>0&&r[1]<1)),m&&!a.bAtExistingPt){let e=!1;const o=a.pt.asPoint2D(),r=n.asPoint2D(),m=a.pt.asPoint2D();let _=this.m_offsetPts[t].m_prev;for(;;){if(h.P.getClosestCoordinate(r,m,o,!1)<1e-8){e=!1;break}if((m.y>o.y&&r.y<=o.y||m.y<o.y&&m.y<=o.y)&&h.P.orientationRobustEx(m,o,m,r)<0&&(e=!e),r.x=m.x,r.y=m.y,_=this.m_offsetPts[_].m_next,_===s)break;m.x=this.m_offsetPts[_].x,m.y=this.m_offsetPts[_].y}if(e)return-1;const c=this.m_offsetPts[t].m_prev;return a.pt.type=i.type,a.pt.m_next=s,a.pt.m_prev=c,this.m_offsetPts[t]=a.pt,this.m_offsetPts[s].m_prev=t,s}}}return-1}sectGraphicRect(t,s,e,i){return Math.max(t.x,s.x)>=Math.min(e.x,i.x)&&Math.max(e.x,i.x)>=Math.min(t.x,s.x)&&Math.max(t.y,s.y)>=Math.min(e.y,i.y)&&Math.max(e.y,i.y)>=Math.min(t.y,s.y)}findIntersection(t,s,e,i){const[n,o,r,h]=[t,s,e,i].map(t=>t.asPoint2D());if(n.equals(r))return[0,0];if(n.equals(h))return[0,1];if(o.equals(r))return[1,0];if(o.equals(h))return[1,1];const a=[];return 1===m.L.segmentIntersectRobust(n,o,r,h,1e-15,a)?a:[-1,-1]}compressOffsetArray(t){for(;this.m_offsetPts[t].m_prev<t;)t=this.m_offsetPts[t].m_prev;let s=0,e=t;do{const t=this.m_offsetPts[e].clone();this.m_offsetPts[s]=t,e=t.m_next,s++}while(e!==t);this.m_offsetPts[s]=this.m_offsetPts[0].clone(),this.m_offsetPtCount=s+1}addPart(t,s,e){if(!(s<2)){for(let e=0;e<s;e++){const s=this.m_offsetPts[t+e];if(e?this.m_bUseZ?this.m_resultPath.lineTo3DCoords(s.x,s.y,s.z):this.m_resultPath.lineToCoords(s.x,s.y):this.m_bUseZ?this.m_resultPath.startPath3DCoords(s.x,s.y,s.z):this.m_resultPath.startPathCoords(s.x,s.y),this.m_bUseM){const t=this.m_resultPath.getPointCount()-1;this.m_resultPath.setAttribute(2,t,0,s.m)}}e&&this.m_resultPath.closePathWithLine()}}offsetMultiPath(t){const s=(0,m.d)(this.m_inputGeometry,0,this.m_tolerance,0,this.m_progressTracker,12e3),e=s.querySegmentIterator();e.resetToFirstPath();let i=-1;for(;e.nextPath();)i++,this.offsetPath(s,i,t)}offsetPath(t,s,e){let i=t.getPathStart(s),n=t.getPathEnd(s);if(this.m_resultPath=e,t.isClosedPath(s)){const s=t.getXY(i);for(;n>i&&t.getXY(n-1).equals(s);)n--;if(n-i>=2){this.m_srcPtCount=n-i,this.m_srcPts.length=this.m_srcPtCount;for(let s=i;s<n;s++)this.progress(),this.m_srcPts[s-i]=d.construct(t.getXY(s),this.m_bUseZ?t.getAttributeAsDbl(1,s,0):0,this.m_bUseM?t.getAttributeAsDbl(2,s,0):0);this.buildOffset()&&this.addPart(0,this.m_offsetPtCount-1,!0)}}else{const s=t.getXY(i);for(;i<n-1&&t.getXY(i+1).equals(s);)i++;const e=t.getXY(n-1);for(;i<n-1&&t.getXY(n-2).equals(e);)n--;if(n-i>=2){this.m_srcPtCount=2*(n-i)-2,this.m_srcPts.length=this.m_srcPtCount;let e=d.construct(s,this.m_bUseZ?t.getAttributeAsDbl(1,i,0):0,this.m_bUseM?t.getAttributeAsDbl(2,i,0):0);e.type|=1536,this.m_srcPts[0]=e;let o=1,r=this.m_srcPtCount-1;for(let s=i+1;s<n-1;s++,o++,r--)this.progress(),e=d.construct(t.getXY(s),this.m_bUseZ?t.getAttributeAsDbl(1,s,0):0,this.m_bUseM?t.getAttributeAsDbl(2,s,0):0),this.m_srcPts[o]=e.clone(),e.type|=l,this.m_srcPts[r]=e.clone();if(e=d.construct(t.getXY(n-1),this.m_bUseZ?t.getAttributeAsDbl(1,n-1,0):0,this.m_bUseM?t.getAttributeAsDbl(2,n-1,0):0),e.type|=512,this.m_srcPts[o]=e.clone(),this.buildOffset())if(this.m_offsetPts.length>=2){let t=-1,s=-1,e=0!==(this.m_offsetPts[this.m_offsetPtCount-1].type&l);e||(t=0);for(let i=1;i<this.m_offsetPtCount;i++){this.progress();const n=0!==(this.m_offsetPts[i].type&l);n?e||(s=i-1,s-t+1>1&&this.addPart(t,s-t+1,!1)):e&&(t=i-1),e=n}e||(s=this.m_offsetPtCount-1,s-t+1>1&&this.addPart(t,s-t+1,!1))}else{const t=0,s=this.m_offsetPtCount-1;s-t>=1&&this.addPart(t,s-t+1,!1)}}}this.m_srcPts.length=0,this.m_srcPtCount=0,this.m_offsetPts.length=0,this.m_offsetPtCount=0}static dotSign(t,s,e,i){const n=s.x-t.x,o=s.y-t.y,r=i.x-e.x,m=i.y-e.y,a=(0,h.u)(n,o,r,m);return(0,h.e)(a)}}class y extends n.G{m_inputGeoms;m_spatialReference;m_progressTracker;m_distance;m_miterLimit;m_joins;m_flattenError;m_index;m_options;constructor(t,s,e,i,n,o,r,m){super(),this.m_progressTracker=r,this.m_index=-1,this.m_inputGeoms=t,this.m_spatialReference=s,this.m_distance=e,this.m_joins=i,this.m_miterLimit=n,this.m_flattenError=o,this.m_options=m}tock(){return!0}getRank(){return 1}next(){if(!this.m_inputGeoms)return null;let t;for(;t=this.m_inputGeoms.next();)return this.m_index=this.m_inputGeoms.getGeometryID(),this.offset(t);return null}getGeometryID(){return this.m_index}offset(t){let s;return(0,r.c)(t),s=this.m_flattenError<=0?(0,o.e)(this.m_spatialReference,t,!0).total():this.m_flattenError,function(t,s,e,i,n,o,m){if(null===t&&(0,r.a)(""),t.getDimension()<1&&(0,r.a)(""),n>0||(0,r.a)(""),(0,r.c)(t),0===s||t.isEmpty())return t;const h=new P(m);return h.m_bUseZ=t.hasAttribute(1),h.m_bUseM=t.hasAttribute(2),h.m_inputGeometry=t,h.m_distance=s,h.m_tolerance=n,h.m_joins=e,h.m_miterLimit=i>1?i:1,h.m_miterLimit=(0,a.s)(h.m_miterLimit),h.m_progressCounter=0,h.m_options=o,h.constructOffset()}(t,this.m_distance,this.m_joins,this.m_miterLimit,s,this.m_options,this.m_progressTracker)}}const p=new class{getOperatorType(){return 10108}accelerateGeometry(t,s,e){return!1}canAccelerateGeometry(t){return!1}supportsCurves(){return!0}executeMany(t,s,e,i,n,o,r,m=0){return new y(t,s,e,i,n,o,r,m)}execute(t,s,e,i,n,o,r,m=0){return new y(null,s,e,i,n,o,r,m).offset(t)}};function x(t,s,e,i,n,o){return p.execute(t,s,e,i,n,o,null)}function b(t,s,e,n,o,r){const m=p.executeMany(new i.S(t),s,e,n,o,r,null);return Array.from(m)}function g(){return p.supportsCurves()}},15605(t,s,e){e.r(s),e.d(s,{execute:()=>h,executeMany:()=>a});var i=e(4576),n=e(86211),o=e(66070),r=e(83299);const m={round:0,bevel:1,miter:2,square:3};function h(t,s,e={}){const{miterLimit:i=10,flattenError:h=0,joins:a="round",unit:_}=e,c=(0,r.getSpatialReference)(t);_&&c&&(s=(0,n.UW)(s,_,c));const f=(0,r.fromGeometry)(t),u=f.getSpatialReference();return(0,r.toGeometry)((0,o.g7)(f.getGeometry(),u,s,m[a],i,h),u)}function a(t,s,e={}){const{miterLimit:h=10,flattenError:a=0,joins:_="round",unit:c}=e,f=(0,r.getSpatialReference)(t);c&&f&&(s=(0,n.UW)(s,c,f));const[u,l]=(0,r.fromGeometries)(t);return(0,o.zo)(u,l,s,m[_],h,a).map(t=>(0,r.toGeometry)(t,l)).filter(i.Ru)}}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[6129],{86129(e,t,n){n.r(t),n.d(t,{createProjectionTransformation:()=>s});var a=n(39117),r=(n(83661),n(95213),n(55537),n(79187));function s(e,t,n){let s,i;if(n?.geographicTransformation){if(n.geographicTransformation.steps?.length){const r=new a.a7;r.setInputSpatialReference(e),r.setOutputSpatialReference(t);for(const e of n.geographicTransformation.steps){let t;t=e.wkid?(0,a.v)(e.wkid,e.isInverse):(0,a.x)(e.wkt,e.isInverse),r.add(t)}s=r.create()}else s=(0,a.a8)();if(n.extendedParams){i=(0,a.E)();const{densificationStep:e}=n.extendedParams;null!=e&&(i.densificationStep=e)}}else if(n?.areaOfInterestExtent)return(0,a.C)(e,t,(o=n.areaOfInterestExtent,r.Envelope2D.construct(o.xmin,o.ymin,o.xmax,o.ymax)));var o;return s?(0,a.B)(e,t,s,i):(0,a.A)(e,t)}}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[1088],{31088(e,t,r){r.r(t),r.d(t,{OperatorGeodeticDensifyByLength:()=>a,OperatorGeodeticDensifyCursor:()=>u});var s=r(61691),n=r(55537),i=r(39117),m=r(76061);class a{getOperatorType(){return 10310}supportsCurves(){return!0}accelerateGeometry(e,t,r){return!1}canAccelerateGeometry(e){return!1}executeMany(e,t,r,s,n){return new u(e,r,s,t,-1,-1,n)}execute(e,t,r,s,i){const a=new m.S([e]),u=this.executeMany(a,t,r,s,i).next();return u||(0,n.d)("null output"),u}}class u extends s.G{m_inputGeoms;m_spatialReference;m_curveType;m_maxLengthMeters;m_maxDeviationMeters;m_maxAngle;m_progressTracker;m_index;constructor(e,t,r,s,i,m,a){super(),this.m_progressTracker=a,m>0&&(0,n.t)(""),4!==r&&i>0&&(0,n.t)(""),t||(0,n.a)(""),0===t.getCoordinateSystemType()&&(0,n.a)(""),s>0||i>0||(0,n.a)(""),this.m_index=-1,this.m_inputGeoms=e,this.m_spatialReference=t,this.m_curveType=r,this.m_maxLengthMeters=s,this.m_maxDeviationMeters=i,this.m_maxAngle=m}next(){{let e;for(;e=this.m_inputGeoms.next();)return(0,n.c)(e),this.m_index=this.m_inputGeoms.getGeometryID(),this.geodeticDensify(e);return null}}getGeometryID(){return this.m_index}tock(){return!0}getRank(){return 1}geodeticDensify(e){return(0,i.
|
|
1
|
+
"use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[1088],{31088(e,t,r){r.r(t),r.d(t,{OperatorGeodeticDensifyByLength:()=>a,OperatorGeodeticDensifyCursor:()=>u});var s=r(61691),n=r(55537),i=r(39117),m=r(76061);class a{getOperatorType(){return 10310}supportsCurves(){return!0}accelerateGeometry(e,t,r){return!1}canAccelerateGeometry(e){return!1}executeMany(e,t,r,s,n){return new u(e,r,s,t,-1,-1,n)}execute(e,t,r,s,i){const a=new m.S([e]),u=this.executeMany(a,t,r,s,i).next();return u||(0,n.d)("null output"),u}}class u extends s.G{m_inputGeoms;m_spatialReference;m_curveType;m_maxLengthMeters;m_maxDeviationMeters;m_maxAngle;m_progressTracker;m_index;constructor(e,t,r,s,i,m,a){super(),this.m_progressTracker=a,m>0&&(0,n.t)(""),4!==r&&i>0&&(0,n.t)(""),t||(0,n.a)(""),0===t.getCoordinateSystemType()&&(0,n.a)(""),s>0||i>0||(0,n.a)(""),this.m_index=-1,this.m_inputGeoms=e,this.m_spatialReference=t,this.m_curveType=r,this.m_maxLengthMeters=s,this.m_maxDeviationMeters=i,this.m_maxAngle=m}next(){{let e;for(;e=this.m_inputGeoms.next();)return(0,n.c)(e),this.m_index=this.m_inputGeoms.getGeometryID(),this.geodeticDensify(e);return null}}getGeometryID(){return this.m_index}tock(){return!0}getRank(){return 1}geodeticDensify(e){return(0,i.aa)(e,this.m_spatialReference,this.m_curveType,this.m_maxLengthMeters,this.m_maxDeviationMeters,this.m_progressTracker)}}}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[1075,1948],{61691(t,e,r){r.d(e,{G:()=>s});class s{*[Symbol.iterator](){let t=this.next();for(;t;)yield t,t=this.next()}}},76061(t,e,r){r.d(e,{S:()=>n});var s=r(61691);class n extends s.G{m_aGeoms;m_iGeom=-1;constructor(t){super(),this.m_aGeoms=t?t.slice():[]}next(){if(this.m_iGeom<this.m_aGeoms.length-1){const t=this.m_aGeoms[++this.m_iGeom];return this.m_aGeoms[this.m_iGeom]=null,t}return null}tock(){return!1}getGeometryID(){return this.m_iGeom}getRank(){return 1}}},87992(t,e,r){r.d(e,{JR:()=>S,ME:()=>M,MY:()=>O,NO:()=>C,Nh:()=>_,V2:()=>Z,_s:()=>Y,e6:()=>V,gh:()=>E,tr:()=>I,uX:()=>x});var s=r(5482),n=r(16930),i=r(19419),a=r(60408),o=r(21325),u=r(513),h=r(50954),l=r(79567),c=r(52006),g=r(49663),m=r(46068),f=r(92722);class x{constructor({type:t,spatialReference:e,vertexCount:r,vertexXY:s,vertexZ:n,vertexM:i,partCount:a,partOffsets:o,partFlags:u,segmentFlags:h,segmentIndices:l,segmentParams:c,segmentCountArc:g,segmentCountBezier:m}){this.segmentCountArc=0,this.segmentCountBezier=0,this.type=t,this.spatialReference=e,this.vertexCount=r,this.vertexXY=s,this.vertexZ=n,this.vertexM=i,this.partCount=a,this.partOffsets=o,this.partFlags=u,this.segmentFlags=h,this.segmentIndices=l,this.segmentParams=c,this.segmentCountArc=g,this.segmentCountBezier=m}get segmentParamCount(){return 10*this.segmentCountArc+4*this.segmentCountBezier}get segmentCountLine(){const{segmentCount:t,segmentCountArc:e,segmentCountBezier:r}=this;return t&&t-e-r}get segmentCount(){return"polyline"===this.type?this.vertexCount-this.partCount:"polygon"===this.type?this.vertexCount:0}get hasZ(){return null!=this.vertexZ}get hasM(){return null!=this.vertexM}hasCurves(){return this.segmentCountArc+this.segmentCountBezier>0}isMultipart(){return"polyline"===this.type||"polygon"===this.type}get usedMemory(){function t(t){return t?64+t.byteLength:0}return t(this.vertexXY)+t(this.vertexZ)+t(this.vertexM)+t(this.partOffsets)+t(this.partFlags)+t(this.segmentFlags)+t(this.segmentIndices)+t(this.segmentParams)}clone(){const{type:t,vertexCount:e,partCount:r,hasZ:s,hasM:n,segmentCountArc:i,segmentCountBezier:a}=this,o=Z(t,e,r,s,n,this.hasCurves(),i,a);o.spatialReference=this.spatialReference;const{vertexXY:u,vertexZ:h,vertexM:l}=this;if(o.vertexXY.set(u.subarray(0,2*e),0),o.vertexZ?.set(h.subarray(0,e),0),o.vertexM?.set(l.subarray(0,e),0),this.isMultipart()){const{partOffsets:t,partFlags:e}=this;o.partFlags.set(e.subarray(0,r+1)),o.partOffsets.set(t.subarray(0,r+1))}if(this.hasCurves()){const{segmentFlags:t,segmentIndices:r,segmentParams:s,segmentParamCount:n}=this;o.segmentFlags.set(t.subarray(0,e),0),o.segmentIndices.set(r.subarray(0,e),0),o.segmentParams.set(s.subarray(0,n),0)}return o}equals(t){return this.equalsWithinTolerance(t,0)}equalsWithinTolerance(t,e){if(null==t)return!1;if(this===t)return!0;if(!(0,o.aI)(this.spatialReference,t.spatialReference))return!1;if(this.vertexCount!==t.vertexCount||this.partCount!==t.partCount)return!1;if(this.hasZ!==t.hasZ||this.hasM!==t.hasM)return!1;if(this.hasCurves()!==t.hasCurves()||this.segmentCountArc!==t.segmentCountArc||this.segmentCountBezier!==t.segmentCountBezier)return!1;const r=0===e?(t,e)=>t!==e||isNaN(t)!==isNaN(e):(t,r)=>Math.abs(t-r)>e||isNaN(t)!==isNaN(r);for(let e=0;e<this.vertexCount;++e)if(r(this.vertexXY[2*e],t.vertexXY[2*e])||r(this.vertexXY[2*e+1],t.vertexXY[2*e+1]))return!1;if(this.hasZ)for(let e=0;e<this.vertexCount;++e)if(r(this.vertexZ[e],t.vertexZ[e]))return!1;if(this.hasM)for(let e=0;e<this.vertexCount;++e)if(r(this.vertexM[e],t.vertexM[e]))return!1;for(let e=0;e<this.partCount;++e)if(this.partFlags[e]!==t.partFlags[e]||this.partOffsets[e]!==t.partOffsets[e])return!1;if(this.hasCurves()){for(let e=0;e<this.vertexCount;++e)if(this.segmentFlags[e]!==t.segmentFlags[e]||this.segmentIndices[e]!==t.segmentIndices[e])return!1;for(let e=0;e<this.segmentParamCount;++e)if(r(this.segmentParams[e],t.segmentParams[e]))return!1}return!0}get parts(){return this.isMultipart()?new p(this):[][Symbol.iterator]()}}class p{constructor(t){this.geometry=t,this.value=new v(t)}get done(){return this.value.index>=this.geometry.partCount}next(){return++this.value.index,this}[Symbol.iterator](){return this}}class v{constructor(t){this.geometry=t,this.index=-1,this._readVertex=R(t),this._segments=new d(this)}get segments(){return this._segments.reset(),this._segments}get startVertex(){return this._readVertex(this.geometry.partOffsets[this.index])}get vertexCount(){const t=this.geometry.partOffsets;return t[this.index+1]-t[this.index]}}class d{constructor(t){this._part=t,this._partStart=0,this._partEnd=0,this._isPolygon="polygon"===t.geometry.type,this.value=new y(t.geometry)}get done(){return this.value.indexOfStartVertex>this._partEnd}next(){++this.value.indexOfStartVertex;const t=this.value.indexOfStartVertex>=this._partEnd;return this.value.indexOfEndVertex=t&&this._isPolygon?this._partStart:this.value.indexOfStartVertex+1,this}[Symbol.iterator](){return this}reset(){const{index:t}=this._part,e=this._part.geometry.partOffsets;this._partStart=e[t],this._partEnd=e[t+1]-(this._isPolygon?1:2),this.value.indexOfStartVertex=this._partStart-1}}class y{constructor(t){this.geometry=t,this.indexOfStartVertex=-1,this.indexOfEndVertex=-1,this._readVertex=R(t)}get xStart(){return this.geometry.vertexXY[2*this.indexOfStartVertex]}get yStart(){return this.geometry.vertexXY[2*this.indexOfStartVertex+1]}get zStart(){return this.geometry.vertexZ[this.indexOfStartVertex]}get mStart(){return this.geometry.vertexM[this.indexOfStartVertex]}get xEnd(){return this.geometry.vertexXY[2*this.indexOfEndVertex]}get yEnd(){return this.geometry.vertexXY[2*this.indexOfEndVertex+1]}get zEnd(){return this.geometry.vertexZ[this.indexOfEndVertex]}get mEnd(){return this.geometry.vertexM[this.indexOfEndVertex]}get start(){return this._readVertex(this.indexOfStartVertex)}get end(){return this._readVertex(this.indexOfEndVertex)}get curve(){const t=this.geometry.segmentFlags?.[this.indexOfStartVertex]??1;if(1===t)return this.end;const e=this.geometry.segmentParams;let r=this.geometry.segmentIndices[this.indexOfStartVertex];if(2===t){const t=e[r++],s=e[r++],n=e[r++],i=e[r++];return{b:[this.end,[t,s],[n,i]]}}const s=e[r++],n=e[r++],i=e[r++],a=e[r++],o=e[r++],u=e[r++];r++,r++;const h=e[r++],l=e[r++];if(!Boolean(4&s)&&1===i)return{c:[this.end,[h,l]]};const c=2&s?0:1,g=1&s?0:1;return{a:[this.end,[o,u],c,g,a,n,i]}}}function C(t,e){const r={stack:[],error:void 0,hasError:!1};try{return e??=(0,i.Ie)(),(0,s.mS)(r,new P(t,["vertexZ","vertexM","spatialReference"]),!1),(0,i.bx)(e,function(t){let e;const{vertexCount:r,vertexXY:n,vertexZ:a,vertexM:o}=t,u=A(t);if(t.hasCurves()){const r={stack:[],error:void 0,hasError:!1};try{(0,s.mS)(r,new P(t,["vertexZ","vertexM"]),!1);const n=(0,i.Ie)();for(const e of t.parts){let t=e.startVertex;for(const{curve:r}of e.segments)(0,l.e)(n,t,r),t=(0,c.yP)(r)}const[a,o,h,g]=n;e={xmin:a,ymin:o,xmax:h,ymax:g,spatialReference:u}}catch(t){r.error=t,r.hasError=!0}finally{(0,s.hk)(r)}}else{let t,s,i,a;t=s=1/0,i=a=-1/0;for(let e=0;e<r;++e){const r=n[2*e],o=n[2*e+1];t=Math.min(t,r),i=Math.max(i,r),s=Math.min(s,o),a=Math.max(a,o)}e={xmin:t,ymin:s,xmax:i,ymax:a,spatialReference:u}}if(a){let t=1/0,r=-1/0;for(const e of a)t=Math.min(t,e),r=Math.max(r,e);e.zmin=t,e.zmax=r}if(o){let t=1/0,r=-1/0;for(const e of o)t=Math.min(t,e),r=Math.max(r,e);e.mmin=t,e.mmax=r}return e}(t)),e}catch(t){r.error=t,r.hasError=!0}finally{(0,s.hk)(r)}}function M(t){let e,r,s;if((0,a.fT)(t)){s="point";const{x:n,y:i,z:a,m:o}=t,u=[n,i];null!=a&&u.push(a),null!=o&&u.push(o),r=[[u]],e=1}else(0,a.U9)(t)?(s="multipoint",r=[t.points],e=t.points.length):(0,a.Rg)(t)?(s="polyline",r=t.curvePaths??t.paths,e=r.reduce((t,e)=>t+e.length,0)):(s="polygon",r=t.curveRings??t.rings,e=r.reduce((t,e)=>(0===e.length||(t+=e.length,F(e[0],(0,c.yP)(e.at(-1)))&&--t),t),0));const n=Z(s,e,s.includes("point")?0:r.length,(0,a.Pv)(t),(0,a.W0)(t),(0,c.Ed)(t)),{hasZ:i,hasM:o,vertexXY:u,vertexZ:h,vertexM:l}=n;function g(t){u[2*f]=t[0],u[2*f+1]=t[1],i&&(h[f]=t[2]),o&&(l[f]=t[m]),++f}n.spatialReference=t.spatialReference??void 0;const m=n.hasZ?3:2;let f=0;if(!n.isMultipart()){if(!i&&!o){for(const[t,e]of r[0])u[2*f]=t,u[2*f+1]=e,++f;return n}for(const t of r[0])g(t);return n}const x="polygon"===s,{partOffsets:p}=n;let v=0;if(!(0,c.Ed)(t)){for(const t of r){if(p[v++]=f,0===t.length)continue;let e=t.length;if(x&&F(t[0],t.at(-1))&&--e,i||o)for(let r=0;r<e;++r)g(t[r]);else for(let r=0;r<e;++r){const[e,s]=t[r];u[2*f]=e,u[2*f+1]=s,++f}}return p[v]=f,n}function d(t){const e=y+t;if(e<=(n.segmentParams?.length??0))return;let r=e*X;r=20*Math.ceil(r/20);const s=n.segmentParams;n.segmentParams=new Float64Array(r),null!=s&&n.segmentParams.set(s)}let y=0;for(const t of r){if(n.partOffsets[v++]=f,0===t.length)continue;const e=t[0];let r=e;for(let e=1;e<t.length;++e){const s=t[e];g(r);const i=f-1;(0,c.wY)(s)?(d(10),++n.segmentCountArc,y=Y(r,s,n,i,y),r=s.a[0]):(0,c.DA)(s)?(d(10),++n.segmentCountArc,y=b(r,s,n,i,y),r=s.a[0]):(0,c.aO)(s)?(d(10),++n.segmentCountArc,y=V(r,s,n,i,y),r=s.c[0]):(0,c.n1)(s)?(d(4),++n.segmentCountBezier,y=I(0,s,n,i,y),r=s.b[0]):r=s}x&&F(e,r)||g(r)}return n.partOffsets[v]=f,n}function E(t){const e=R(t),{vertexCount:r,partCount:s,hasZ:n,hasM:i}=t,a=A(t);if("point"===t.type){const[e,r]=t.vertexXY,s=t.vertexZ?.[0],n=t.vertexM?.[0];return{x:e,y:r,z:s,m:n,spatialReference:a}}let o=0;if("multipoint"===t.type){const t=[];for(;o<r;)t.push(e(o++));return{points:t,spatialReference:a,hasZ:n,hasM:i}}const u="polygon"===t.type;if(!t.hasCurves()){const r=new Array;for(let n=0;n<s;++n){const s=t.partOffsets[n+1],i=new Array;for(;o<s;)i.push(e(o++));u&&i.length>0&&i.push(i[0]),r.push(i)}return u?{rings:r,hasZ:n,hasM:i,spatialReference:a}:{paths:r,hasZ:n,hasM:i,spatialReference:a}}const h=new Array;for(const{segments:e,startVertex:r}of t.parts){const t=[r];for(const{curve:r}of e)t.push(r);h.push(t)}return u?{rings:[],curveRings:h,hasZ:n,hasM:i,spatialReference:a}:{paths:[],curvePaths:h,hasZ:n,hasM:i,spatialReference:a}}function _(t,{lengths:e,coords:r,hasZ:s,hasM:n},i){const a=t.includes("point")?0:e.length,o="polygon"===t,u="point"===t?1:e.reduce((t,e)=>t+e,0)-(o?a:0);s??=!1,n??=!1;const h=Z(t,u,a,s,n,!1,0,0);if(h.spatialReference=i??void 0,!h.isMultipart()){for(let t=0,e=0;t<u;++t)h.vertexXY[2*t]=r[e++],h.vertexXY[2*t+1]=r[e++],s&&(h.vertexZ[t]=r[e++]),n&&(h.vertexM[t]=r[e++]);return h}const l=2+Number(s)+Number(n);let c=0,g=0;h.partOffsets[0]=0;for(const t of e){const e=h.partOffsets[g],i=e+t-Number(o);h.partOffsets[++g]=i;for(let t=e;t<i;++t)h.vertexXY[2*t]=r[c++],h.vertexXY[2*t+1]=r[c++],s&&(h.vertexZ[t]=r[c++]),n&&(h.vertexM[t]=r[c++]);o&&(c+=l)}return h}function S({type:t,vertexCount:e,vertexXY:r,vertexZ:s,vertexM:n,partCount:i,partOffsets:a,hasZ:o,hasM:u}){const h=new f.A([],[],o,u);i=Math.max(i,1);const l="polygon"===t;let c=0;for(let t=0;t<i;++t){const i=a?.[t+1]??e,g=h.coords.length;for(let t=c;t<i;++t)h.coords.push(r[2*t],r[2*t+1]),o&&h.coords.push(s[t]),u&&h.coords.push(n[t]);if(l){const t=c;h.coords.push(r[2*t],r[2*t+1]),o&&h.coords.push(s[t]),u&&h.coords.push(n[t])}h.lengths.push((h.coords.length-g)/h.stride),c=i}return"point"===t&&(h.lengths.length=0),h}function O(t,e){return"getSpatialReference"in t&&(e=function(t){if(null==t)return;const e=t.getText()||void 0,r=t.isCustomWkid()?0:t.getOldID();if(r<=0)return{wkt:e};let s=t.getLatestID();(s<=0||s===r)&&(s=void 0);const n=t.getVCS();if(null==n)return{wkid:r,latestWkid:s,wkt:e};const i=n.isCustomWkid()?0:n.getOldID();if(i<=0)return{wkt:e};let a=t.getLatestVerticalID();return(a<=0||a===i)&&(a=void 0),{wkid:r,wkt:e,latestWkid:s,vcsWkid:i,latestVcsWkid:a}}(t.getSpatialReference()),t=t.getGeometry()),new x({...t.toFlatGeometry(),spatialReference:e})}class P{constructor(t,e){this.target=t,this.keys=e,this.oldValues=e.map(e=>t[e]);for(const r of e)t[r]=void 0}[Symbol.dispose](){this.keys.map((t,e)=>{this.target[t]=this.oldValues[e]})}}function A({spatialReference:t}){return t instanceof n.A?t.toJSON():t}function R({vertexXY:t,vertexZ:e,vertexM:r}){return e?r?s=>[t[2*s],t[2*s+1],e[s],r[s]]:r=>[t[2*r],t[2*r+1],e[r]]:r?e=>[t[2*e],t[2*e+1],r[e]]:e=>[t[2*e],t[2*e+1]]}function F(t,e){return t.every((t,r)=>t===e[r])}function Z(t,e,r,s,n,i,a,o){a??=0,o??=0;const u=new x({type:t,vertexCount:e,vertexXY:null,vertexZ:void 0,vertexM:void 0,partCount:r,partOffsets:void 0,partFlags:void 0,segmentFlags:void 0,segmentIndices:void 0,segmentParams:void 0,segmentCountArc:a,segmentCountBezier:o});let h=2*Float64Array.BYTES_PER_ELEMENT*e;s&&(h+=Float64Array.BYTES_PER_ELEMENT*e),n&&(h+=Float64Array.BYTES_PER_ELEMENT*e),u.isMultipart()&&(h+=(r+1)*Int32Array.BYTES_PER_ELEMENT,h+=(r+1)*Int8Array.BYTES_PER_ELEMENT),i&&(h+=e*Int8Array.BYTES_PER_ELEMENT,h+=e*Int32Array.BYTES_PER_ELEMENT,h+=u.segmentParamCount*Float64Array.BYTES_PER_ELEMENT);const l=new ArrayBuffer(h);let c=0;return u.vertexXY=new Float64Array(l,c,2*e),c+=u.vertexXY.byteLength,s&&(u.vertexZ=new Float64Array(l,c,e),c+=u.vertexZ.byteLength),n&&(u.vertexM=new Float64Array(l,c,e),c+=u.vertexM.byteLength),i&&(u.segmentParams=new Float64Array(l,c,u.segmentParamCount),c+=u.segmentParams.byteLength,u.segmentIndices=new Int32Array(l,c,e),u.segmentIndices.fill(k),c+=u.segmentIndices.byteLength),u.isMultipart()&&(u.partOffsets=new Int32Array(l,c,r+1),c+=u.partOffsets.byteLength,u.partFlags=new Int8Array(l,c,r+1),c+=u.partFlags.byteLength,"polygon"===u.type&&u.partFlags.subarray(0,r).fill(1)),i&&(u.segmentFlags=new Int8Array(l,c,e),u.segmentFlags.fill(1),c+=u.segmentFlags.byteLength),u}function Y(t,e,{segmentFlags:r,segmentIndices:s,segmentParams:n},i,a){r[i]=4,s[i]=a;const[o,[u,h],l,c,g,f,x]=e.a;let p=4;c||(p|=1),l||(p|=2);const v=(0,m.SW)(t,e),[d,y]=(0,m.Uk)(v,.5);return n[a++]=p,n[a++]=f,n[a++]=x,n[a++]=g,n[a++]=u,n[a++]=h,n[a++]=v.u2-v.u1,n[a++]=v.u1,n[a++]=d,n[a++]=y,a}function b(t,e,{segmentFlags:r,segmentIndices:s,segmentParams:n},i,a){r[i]=4,s[i]=a;const o=(0,g.io)(t,e);return w(o,4,...(0,u.mq)(o,.5),n,a)}function V(t,e,{segmentFlags:r,segmentIndices:s,segmentParams:n},i,a){return r[i]=4,s[i]=a,w((0,h.pM)(t,e),0,...e.c[1],n,a)}function w(t,e,r,s,n,i){const{cx:a,cy:o,thetaStart:u,thetaEnd:h,radius:l}=t;return u>h||(e|=1),Math.abs(h-u)<=Math.PI||(e|=2),n[i++]=e,n[i++]=l,n[i++]=1,n[i++]=0,n[i++]=a,n[i++]=o,n[i++]=h-u,n[i++]=u,n[i++]=r,n[i++]=s,i}function I(t,{b:[e,[r,s],[n,i]]},{segmentFlags:a,segmentIndices:o,segmentParams:u},h,l){return a[h]=2,o[h]=l,u[l++]=r,u[l++]=s,u[l++]=n,u[l++]=i,l}const X=1.61803,k=-1},81150(t,e,r){r.d(e,{Pg:()=>u,fz:()=>h,g7:()=>a,zo:()=>o});var s=r(76061),n=(r(55537),r(88885),r(39117));r(95213);const i=new n.D;function a(t,e,r){return i.execute(t,e,r,null)}function o(t,e,r){const n=i.executeMany(new s.S(t),e,r,null);return Array.from(n)}function u(t,e,r){return i.isSimpleAsFeature(t,e,r,null,null)}function h(){return i.supportsCurves()}},3637(t,e,r){r.r(e),r.d(e,{execute:()=>i,executeMany:()=>a,isSimple:()=>o});var s=r(81150),n=r(83299);function i(t){const e=(0,n.fromGeometry)(t),r=e.getSpatialReference();return(0,n.toGeometry)((0,s.g7)(e.getGeometry(),r,!1),r)}function a(t){const[e,r]=(0,n.fromGeometries)(t);return(0,s.zo)(e,r,!1).map(t=>(0,n.toGeometry)(t,r))}function o(t){const e=(0,n.fromGeometry)(t);return(0,s.Pg)(e.getGeometry(),e.getSpatialReference(),!1)}}}]);
|
|
1
|
+
"use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[1075,1948],{61691(t,e,r){r.d(e,{G:()=>s});class s{*[Symbol.iterator](){let t=this.next();for(;t;)yield t,t=this.next()}}},76061(t,e,r){r.d(e,{S:()=>n});var s=r(61691);class n extends s.G{m_aGeoms;m_iGeom=-1;constructor(t){super(),this.m_aGeoms=t?t.slice():[]}next(){if(this.m_iGeom<this.m_aGeoms.length-1){const t=this.m_aGeoms[++this.m_iGeom];return this.m_aGeoms[this.m_iGeom]=null,t}return null}tock(){return!1}getGeometryID(){return this.m_iGeom}getRank(){return 1}}},87992(t,e,r){r.d(e,{JR:()=>S,ME:()=>M,MY:()=>O,NO:()=>C,Nh:()=>_,V2:()=>Z,_s:()=>Y,e6:()=>V,gh:()=>E,tr:()=>I,uX:()=>x});var s=r(5482),n=r(16930),i=r(19419),a=r(60408),o=r(21325),u=r(513),h=r(50954),l=r(79567),c=r(52006),g=r(49663),m=r(46068),f=r(92722);class x{constructor({type:t,spatialReference:e,vertexCount:r,vertexXY:s,vertexZ:n,vertexM:i,partCount:a,partOffsets:o,partFlags:u,segmentFlags:h,segmentIndices:l,segmentParams:c,segmentCountArc:g,segmentCountBezier:m}){this.segmentCountArc=0,this.segmentCountBezier=0,this.type=t,this.spatialReference=e,this.vertexCount=r,this.vertexXY=s,this.vertexZ=n,this.vertexM=i,this.partCount=a,this.partOffsets=o,this.partFlags=u,this.segmentFlags=h,this.segmentIndices=l,this.segmentParams=c,this.segmentCountArc=g,this.segmentCountBezier=m}get segmentParamCount(){return 10*this.segmentCountArc+4*this.segmentCountBezier}get segmentCountLine(){const{segmentCount:t,segmentCountArc:e,segmentCountBezier:r}=this;return t&&t-e-r}get segmentCount(){return"polyline"===this.type?this.vertexCount-this.partCount:"polygon"===this.type?this.vertexCount:0}get hasZ(){return null!=this.vertexZ}get hasM(){return null!=this.vertexM}hasCurves(){return this.segmentCountArc+this.segmentCountBezier>0}isMultipart(){return"polyline"===this.type||"polygon"===this.type}get usedMemory(){function t(t){return t?64+t.byteLength:0}return t(this.vertexXY)+t(this.vertexZ)+t(this.vertexM)+t(this.partOffsets)+t(this.partFlags)+t(this.segmentFlags)+t(this.segmentIndices)+t(this.segmentParams)}clone(){const{type:t,vertexCount:e,partCount:r,hasZ:s,hasM:n,segmentCountArc:i,segmentCountBezier:a}=this,o=Z(t,e,r,s,n,this.hasCurves(),i,a);o.spatialReference=this.spatialReference;const{vertexXY:u,vertexZ:h,vertexM:l}=this;if(o.vertexXY.set(u.subarray(0,2*e),0),o.vertexZ?.set(h.subarray(0,e),0),o.vertexM?.set(l.subarray(0,e),0),this.isMultipart()){const{partOffsets:t,partFlags:e}=this;o.partFlags.set(e.subarray(0,r+1)),o.partOffsets.set(t.subarray(0,r+1))}if(this.hasCurves()){const{segmentFlags:t,segmentIndices:r,segmentParams:s,segmentParamCount:n}=this;o.segmentFlags.set(t.subarray(0,e),0),o.segmentIndices.set(r.subarray(0,e),0),o.segmentParams.set(s.subarray(0,n),0)}return o}equals(t){return this.equalsWithinTolerance(t,0)}equalsWithinTolerance(t,e){if(null==t)return!1;if(this===t)return!0;if(!(0,o.aI)(this.spatialReference,t.spatialReference))return!1;if(this.vertexCount!==t.vertexCount||this.partCount!==t.partCount)return!1;if(this.hasZ!==t.hasZ||this.hasM!==t.hasM)return!1;if(this.hasCurves()!==t.hasCurves()||this.segmentCountArc!==t.segmentCountArc||this.segmentCountBezier!==t.segmentCountBezier)return!1;const r=0===e?(t,e)=>t!==e||isNaN(t)!==isNaN(e):(t,r)=>Math.abs(t-r)>e||isNaN(t)!==isNaN(r);for(let e=0;e<this.vertexCount;++e)if(r(this.vertexXY[2*e],t.vertexXY[2*e])||r(this.vertexXY[2*e+1],t.vertexXY[2*e+1]))return!1;if(this.hasZ)for(let e=0;e<this.vertexCount;++e)if(r(this.vertexZ[e],t.vertexZ[e]))return!1;if(this.hasM)for(let e=0;e<this.vertexCount;++e)if(r(this.vertexM[e],t.vertexM[e]))return!1;for(let e=0;e<this.partCount;++e)if(this.partFlags[e]!==t.partFlags[e]||this.partOffsets[e]!==t.partOffsets[e])return!1;if(this.hasCurves()){for(let e=0;e<this.vertexCount;++e)if(this.segmentFlags[e]!==t.segmentFlags[e]||this.segmentIndices[e]!==t.segmentIndices[e])return!1;for(let e=0;e<this.segmentParamCount;++e)if(r(this.segmentParams[e],t.segmentParams[e]))return!1}return!0}get parts(){return this.isMultipart()?new p(this):[][Symbol.iterator]()}}class p{constructor(t){this.geometry=t,this.value=new v(t)}get done(){return this.value.index>=this.geometry.partCount}next(){return++this.value.index,this}[Symbol.iterator](){return this}}class v{constructor(t){this.geometry=t,this.index=-1,this._readVertex=R(t),this._segments=new d(this)}get segments(){return this._segments.reset(),this._segments}get startVertex(){return this._readVertex(this.geometry.partOffsets[this.index])}get vertexCount(){const t=this.geometry.partOffsets;return t[this.index+1]-t[this.index]}}class d{constructor(t){this._part=t,this._partStart=0,this._partEnd=0,this._isPolygon="polygon"===t.geometry.type,this.value=new y(t.geometry)}get done(){return this.value.indexOfStartVertex>this._partEnd}next(){++this.value.indexOfStartVertex;const t=this.value.indexOfStartVertex>=this._partEnd;return this.value.indexOfEndVertex=t&&this._isPolygon?this._partStart:this.value.indexOfStartVertex+1,this}[Symbol.iterator](){return this}reset(){const{index:t}=this._part,e=this._part.geometry.partOffsets;this._partStart=e[t],this._partEnd=e[t+1]-(this._isPolygon?1:2),this.value.indexOfStartVertex=this._partStart-1}}class y{constructor(t){this.geometry=t,this.indexOfStartVertex=-1,this.indexOfEndVertex=-1,this._readVertex=R(t)}get xStart(){return this.geometry.vertexXY[2*this.indexOfStartVertex]}get yStart(){return this.geometry.vertexXY[2*this.indexOfStartVertex+1]}get zStart(){return this.geometry.vertexZ[this.indexOfStartVertex]}get mStart(){return this.geometry.vertexM[this.indexOfStartVertex]}get xEnd(){return this.geometry.vertexXY[2*this.indexOfEndVertex]}get yEnd(){return this.geometry.vertexXY[2*this.indexOfEndVertex+1]}get zEnd(){return this.geometry.vertexZ[this.indexOfEndVertex]}get mEnd(){return this.geometry.vertexM[this.indexOfEndVertex]}get start(){return this._readVertex(this.indexOfStartVertex)}get end(){return this._readVertex(this.indexOfEndVertex)}get curve(){const t=this.geometry.segmentFlags?.[this.indexOfStartVertex]??1;if(1===t)return this.end;const e=this.geometry.segmentParams;let r=this.geometry.segmentIndices[this.indexOfStartVertex];if(2===t){const t=e[r++],s=e[r++],n=e[r++],i=e[r++];return{b:[this.end,[t,s],[n,i]]}}const s=e[r++],n=e[r++],i=e[r++],a=e[r++],o=e[r++],u=e[r++];r++,r++;const h=e[r++],l=e[r++];if(!Boolean(4&s)&&1===i)return{c:[this.end,[h,l]]};const c=2&s?0:1,g=1&s?0:1;return{a:[this.end,[o,u],c,g,a,n,i]}}}function C(t,e){const r={stack:[],error:void 0,hasError:!1};try{return e??=(0,i.Ie)(),(0,s.mS)(r,new P(t,["vertexZ","vertexM","spatialReference"]),!1),(0,i.bx)(e,function(t){let e;const{vertexCount:r,vertexXY:n,vertexZ:a,vertexM:o}=t,u=A(t);if(t.hasCurves()){const r={stack:[],error:void 0,hasError:!1};try{(0,s.mS)(r,new P(t,["vertexZ","vertexM"]),!1);const n=(0,i.Ie)();for(const e of t.parts){let t=e.startVertex;for(const{curve:r}of e.segments)(0,l.e)(n,t,r),t=(0,c.yP)(r)}const[a,o,h,g]=n;e={xmin:a,ymin:o,xmax:h,ymax:g,spatialReference:u}}catch(t){r.error=t,r.hasError=!0}finally{(0,s.hk)(r)}}else{let t,s,i,a;t=s=1/0,i=a=-1/0;for(let e=0;e<r;++e){const r=n[2*e],o=n[2*e+1];t=Math.min(t,r),i=Math.max(i,r),s=Math.min(s,o),a=Math.max(a,o)}e={xmin:t,ymin:s,xmax:i,ymax:a,spatialReference:u}}if(a){let t=1/0,r=-1/0;for(const e of a)t=Math.min(t,e),r=Math.max(r,e);e.zmin=t,e.zmax=r}if(o){let t=1/0,r=-1/0;for(const e of o)t=Math.min(t,e),r=Math.max(r,e);e.mmin=t,e.mmax=r}return e}(t)),e}catch(t){r.error=t,r.hasError=!0}finally{(0,s.hk)(r)}}function M(t){let e,r,s;if((0,a.fT)(t)){s="point";const{x:n,y:i,z:a,m:o}=t,u=[n,i];null!=a&&u.push(a),null!=o&&u.push(o),r=[[u]],e=1}else(0,a.U9)(t)?(s="multipoint",r=[t.points],e=t.points.length):(0,a.Rg)(t)?(s="polyline",r=t.curvePaths??t.paths,e=r.reduce((t,e)=>t+e.length,0)):(s="polygon",r=t.curveRings??t.rings,e=r.reduce((t,e)=>(0===e.length||(t+=e.length,F(e[0],(0,c.yP)(e.at(-1)))&&--t),t),0));const n=Z(s,e,s.includes("point")?0:r.length,(0,a.Pv)(t),(0,a.W0)(t),(0,c.Ed)(t)),{hasZ:i,hasM:o,vertexXY:u,vertexZ:h,vertexM:l}=n;function g(t){u[2*f]=t[0],u[2*f+1]=t[1],i&&(h[f]=t[2]),o&&(l[f]=t[m]),++f}n.spatialReference=t.spatialReference??void 0;const m=n.hasZ?3:2;let f=0;if(!n.isMultipart()){if(!i&&!o){for(const[t,e]of r[0])u[2*f]=t,u[2*f+1]=e,++f;return n}for(const t of r[0])g(t);return n}const x="polygon"===s,{partOffsets:p}=n;let v=0;if(!(0,c.Ed)(t)){for(const t of r){if(p[v++]=f,0===t.length)continue;let e=t.length;if(x&&F(t[0],t.at(-1))&&--e,i||o)for(let r=0;r<e;++r)g(t[r]);else for(let r=0;r<e;++r){const[e,s]=t[r];u[2*f]=e,u[2*f+1]=s,++f}}return p[v]=f,n}function d(t){const e=y+t;if(e<=(n.segmentParams?.length??0))return;let r=e*X;r=20*Math.ceil(r/20);const s=n.segmentParams;n.segmentParams=new Float64Array(r),null!=s&&n.segmentParams.set(s)}let y=0;for(const t of r){if(n.partOffsets[v++]=f,0===t.length)continue;const e=t[0];let r=e;for(let e=1;e<t.length;++e){const s=t[e];g(r);const i=f-1;(0,c.wY)(s)?(d(10),++n.segmentCountArc,y=Y(r,s,n,i,y),r=s.a[0]):(0,c.DA)(s)?(d(10),++n.segmentCountArc,y=b(r,s,n,i,y),r=s.a[0]):(0,c.aO)(s)?(d(10),++n.segmentCountArc,y=V(r,s,n,i,y),r=s.c[0]):(0,c.n1)(s)?(d(4),++n.segmentCountBezier,y=I(0,s,n,i,y),r=s.b[0]):r=s}x&&F(e,r)||g(r)}return n.partOffsets[v]=f,n}function E(t){const e=R(t),{vertexCount:r,partCount:s,hasZ:n,hasM:i}=t,a=A(t);if("point"===t.type){const[e,r]=t.vertexXY,s=t.vertexZ?.[0],n=t.vertexM?.[0];return{x:e,y:r,z:s,m:n,spatialReference:a}}let o=0;if("multipoint"===t.type){const t=[];for(;o<r;)t.push(e(o++));return{points:t,spatialReference:a,hasZ:n,hasM:i}}const u="polygon"===t.type;if(!t.hasCurves()){const r=new Array;for(let n=0;n<s;++n){const s=t.partOffsets[n+1],i=new Array;for(;o<s;)i.push(e(o++));u&&i.length>0&&i.push(i[0]),r.push(i)}return u?{rings:r,hasZ:n,hasM:i,spatialReference:a}:{paths:r,hasZ:n,hasM:i,spatialReference:a}}const h=new Array;for(const{segments:e,startVertex:r}of t.parts){const t=[r];for(const{curve:r}of e)t.push(r);h.push(t)}return u?{rings:[],curveRings:h,hasZ:n,hasM:i,spatialReference:a}:{paths:[],curvePaths:h,hasZ:n,hasM:i,spatialReference:a}}function _(t,{lengths:e,coords:r,hasZ:s,hasM:n},i){const a=t.includes("point")?0:e.length,o="polygon"===t,u="point"===t?1:e.reduce((t,e)=>t+e,0)-(o?a:0);s??=!1,n??=!1;const h=Z(t,u,a,s,n,!1,0,0);if(h.spatialReference=i??void 0,!h.isMultipart()){for(let t=0,e=0;t<u;++t)h.vertexXY[2*t]=r[e++],h.vertexXY[2*t+1]=r[e++],s&&(h.vertexZ[t]=r[e++]),n&&(h.vertexM[t]=r[e++]);return h}const l=2+Number(s)+Number(n);let c=0,g=0;h.partOffsets[0]=0;for(const t of e){const e=h.partOffsets[g],i=e+t-Number(o);h.partOffsets[++g]=i;for(let t=e;t<i;++t)h.vertexXY[2*t]=r[c++],h.vertexXY[2*t+1]=r[c++],s&&(h.vertexZ[t]=r[c++]),n&&(h.vertexM[t]=r[c++]);o&&(c+=l)}return h}function S({type:t,vertexCount:e,vertexXY:r,vertexZ:s,vertexM:n,partCount:i,partOffsets:a,hasZ:o,hasM:u}){const h=new f.A([],[],o,u);i=Math.max(i,1);const l="polygon"===t;let c=0;for(let t=0;t<i;++t){const i=a?.[t+1]??e,g=h.coords.length;for(let t=c;t<i;++t)h.coords.push(r[2*t],r[2*t+1]),o&&h.coords.push(s[t]),u&&h.coords.push(n[t]);if(l){const t=c;h.coords.push(r[2*t],r[2*t+1]),o&&h.coords.push(s[t]),u&&h.coords.push(n[t])}h.lengths.push((h.coords.length-g)/h.stride),c=i}return"point"===t&&(h.lengths.length=0),h}function O(t,e){return"getSpatialReference"in t&&(e=function(t){if(null==t)return;const e=t.getText()||void 0,r=t.isCustomWkid()?0:t.getOldID();if(r<=0)return{wkt:e};let s=t.getLatestID();(s<=0||s===r)&&(s=void 0);const n=t.getVCS();if(null==n)return{wkid:r,latestWkid:s,wkt:e};const i=n.isCustomWkid()?0:n.getOldID();if(i<=0)return{wkt:e};let a=t.getLatestVerticalID();return(a<=0||a===i)&&(a=void 0),{wkid:r,wkt:e,latestWkid:s,vcsWkid:i,latestVcsWkid:a}}(t.getSpatialReference()),t=t.getGeometry()),new x({...t.toFlatGeometry(),spatialReference:e})}class P{constructor(t,e){this.target=t,this.keys=e,this.oldValues=e.map(e=>t[e]);for(const r of e)t[r]=void 0}[Symbol.dispose](){this.keys.map((t,e)=>{this.target[t]=this.oldValues[e]})}}function A({spatialReference:t}){return t instanceof n.A?t.toJSON():t}function R({vertexXY:t,vertexZ:e,vertexM:r}){return e?r?s=>[t[2*s],t[2*s+1],e[s],r[s]]:r=>[t[2*r],t[2*r+1],e[r]]:r?e=>[t[2*e],t[2*e+1],r[e]]:e=>[t[2*e],t[2*e+1]]}function F(t,e){return t.every((t,r)=>t===e[r])}function Z(t,e,r,s,n,i,a,o){a??=0,o??=0;const u=new x({type:t,vertexCount:e,vertexXY:null,vertexZ:void 0,vertexM:void 0,partCount:r,partOffsets:void 0,partFlags:void 0,segmentFlags:void 0,segmentIndices:void 0,segmentParams:void 0,segmentCountArc:a,segmentCountBezier:o});let h=2*Float64Array.BYTES_PER_ELEMENT*e;s&&(h+=Float64Array.BYTES_PER_ELEMENT*e),n&&(h+=Float64Array.BYTES_PER_ELEMENT*e),u.isMultipart()&&(h+=(r+1)*Int32Array.BYTES_PER_ELEMENT,h+=(r+1)*Int8Array.BYTES_PER_ELEMENT),i&&(h+=e*Int8Array.BYTES_PER_ELEMENT,h+=e*Int32Array.BYTES_PER_ELEMENT,h+=u.segmentParamCount*Float64Array.BYTES_PER_ELEMENT);const l=new ArrayBuffer(h);let c=0;return u.vertexXY=new Float64Array(l,c,2*e),c+=u.vertexXY.byteLength,s&&(u.vertexZ=new Float64Array(l,c,e),c+=u.vertexZ.byteLength),n&&(u.vertexM=new Float64Array(l,c,e),c+=u.vertexM.byteLength),i&&(u.segmentParams=new Float64Array(l,c,u.segmentParamCount),c+=u.segmentParams.byteLength,u.segmentIndices=new Int32Array(l,c,e),u.segmentIndices.fill(k),c+=u.segmentIndices.byteLength),u.isMultipart()&&(u.partOffsets=new Int32Array(l,c,r+1),c+=u.partOffsets.byteLength,u.partFlags=new Int8Array(l,c,r+1),c+=u.partFlags.byteLength,"polygon"===u.type&&u.partFlags.subarray(0,r).fill(1)),i&&(u.segmentFlags=new Int8Array(l,c,e),u.segmentFlags.fill(1),c+=u.segmentFlags.byteLength),u}function Y(t,e,{segmentFlags:r,segmentIndices:s,segmentParams:n},i,a){r[i]=4,s[i]=a;const[o,[u,h],l,c,g,f,x]=e.a;let p=4;c||(p|=1),l||(p|=2);const v=(0,m.SW)(t,e),[d,y]=(0,m.Uk)(v,.5);return n[a++]=p,n[a++]=f,n[a++]=x,n[a++]=g,n[a++]=u,n[a++]=h,n[a++]=v.u2-v.u1,n[a++]=v.u1,n[a++]=d,n[a++]=y,a}function b(t,e,{segmentFlags:r,segmentIndices:s,segmentParams:n},i,a){r[i]=4,s[i]=a;const o=(0,g.io)(t,e);return w(o,4,...(0,u.mq)(o,.5),n,a)}function V(t,e,{segmentFlags:r,segmentIndices:s,segmentParams:n},i,a){return r[i]=4,s[i]=a,w((0,h.pM)(t,e),0,...e.c[1],n,a)}function w(t,e,r,s,n,i){const{cx:a,cy:o,thetaStart:u,thetaEnd:h,radius:l}=t;return u>h||(e|=1),Math.abs(h-u)<=Math.PI||(e|=2),n[i++]=e,n[i++]=l,n[i++]=1,n[i++]=0,n[i++]=a,n[i++]=o,n[i++]=h-u,n[i++]=u,n[i++]=r,n[i++]=s,i}function I(t,{b:[e,[r,s],[n,i]]},{segmentFlags:a,segmentIndices:o,segmentParams:u},h,l){return a[h]=2,o[h]=l,u[l++]=r,u[l++]=s,u[l++]=n,u[l++]=i,l}const X=1.61803,k=-1},81150(t,e,r){r.d(e,{Pg:()=>u,fz:()=>h,g7:()=>a,zo:()=>o});var s=r(76061),n=(r(55537),r(88885),r(39117));r(95213);const i=new n.H;function a(t,e,r){return i.execute(t,e,r,null)}function o(t,e,r){const n=i.executeMany(new s.S(t),e,r,null);return Array.from(n)}function u(t,e,r){return i.isSimpleAsFeature(t,e,r,null,null)}function h(){return i.supportsCurves()}},3637(t,e,r){r.r(e),r.d(e,{execute:()=>i,executeMany:()=>a,isSimple:()=>o});var s=r(81150),n=r(83299);function i(t){const e=(0,n.fromGeometry)(t),r=e.getSpatialReference();return(0,n.toGeometry)((0,s.g7)(e.getGeometry(),r,!1),r)}function a(t){const[e,r]=(0,n.fromGeometries)(t);return(0,s.zo)(e,r,!1).map(t=>(0,n.toGeometry)(t,r))}function o(t){const e=(0,n.fromGeometry)(t);return(0,s.Pg)(e.getGeometry(),e.getSpatialReference(),!1)}}}]);
|
|
Binary file
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{__addDisposableResource as e,__disposeResources as t}from"tslib";import{G as s,a as i,k as n,t as r,l as m,f as o,m as a,n as h,h as l,d as c,g as u}from"./Geometry.js";import{G as f}from"./GeometryCursor.js";import{C as _,c as g,P as d,E as p,s as b}from"./Envelope.js";import{i as y,m as P,P as x,k as C,h as D,d as w,a as T}from"./Point2D.js";import{L as v,D as I,P as S,a as M,i as E,E as V,n as k}from"./MultiPathImpl.js";import{Envelope2D as R}from"./Envelope2D.js";import{T as A}from"./Transformation2D.js";import{c as B}from"./GeometryCleaner-CIE8Wfmb.js";import{W as X,D as Y,a2 as F}from"./UnitFactory.js";import{O as L}from"./OperatorSimplifyOGC.js";import{O as q}from"./OperatorGeneralize.js";function z(e){return e>=0?e>C?C:e:0}var j;function G(e,t,s,i,n,r){return{m_from:e.clone(),m_to:t.clone(),m_center:s.clone(),m_next:n,m_type:i}}function N(e,t,s,i,n){return{m_from:e.clone(),m_to:t.clone(),m_next:s,m_type:4,m_center:new x}}!function(e){e[e.enumDummy=256]="enumDummy",e[e.enumLine=1]="enumLine",e[e.enumArc=2]="enumArc",e[e.enumMiter=8]="enumMiter",e[e.enumBevel=16]="enumBevel",e[e.enumJoinMask=26]="enumJoinMask",e[e.enumConnectionMask=27]="enumConnectionMask"}(j||(j={}));class O extends f{m_parent;m_index=0;m_bufferedPolygon=null;m_mp;m_spatialReference;m_distance;m_densifyDist;m_x=0;m_y=0;m_miterLimit;m_joins;m_caps;m_maxVertexInCompleteCircle;m_progressTracker;constructor(e,t,s,i,n,r,m,o,a,h){super(),this.m_progressTracker=h,this.m_parent=e,this.m_mp=t,this.m_distance=s,this.m_spatialReference=i,this.m_densifyDist=o,this.m_maxVertexInCompleteCircle=a,this.m_joins=n,this.m_caps=r,this.m_miterLimit=m}next(){const e=new d;for(;;){if(this.m_index===this.m_mp.getPointCount())return null;if(1===this.m_caps)return this.m_index=this.m_mp.getPointCount(),new S({vd:this.m_mp.getDescription()});if(this.m_mp.getPointByVal(this.m_index,e),this.m_index++,!e.isEmpty())break}let t,s=!1;if(null===this.m_bufferedPolygon&&(this.m_x=e.getX(),this.m_y=e.getY(),this.m_bufferedPolygon=this.m_parent.buffer(e,this.m_distance,this.m_spatialReference,this.m_joins,this.m_caps,this.m_miterLimit,this.m_densifyDist,this.m_maxVertexInCompleteCircle),s=!0),t=this.m_index<this.m_mp.getPointCount()?this.m_bufferedPolygon.clone():this.m_bufferedPolygon,!s){const s=new A,i=e.getX()-this.m_x,n=e.getY()-this.m_y;s.setShiftCoords(i,n),t.applyTransformation(s)}return b(t,0),t}getGeometryID(){return 0}getRank(){return 1}tock(){return!0}}class U extends f{m_polyline;m_currentPathIndex=0;constructor(e){super(),this.m_polyline=e}next(){if(!this.m_polyline)return null;const e=this.m_polyline.getImpl(),t=e.getPathCount();if(this.m_currentPathIndex<t){const t=this.m_currentPathIndex;if(this.m_currentPathIndex++,!e.isClosedPathInXYPlane(t)){let s=e.getXY(e.getPathEnd(t)-1);for(;this.m_currentPathIndex<e.getPathCount();){const t=e.getXY(e.getPathStart(this.m_currentPathIndex));if(e.isClosedPathInXYPlane(this.m_currentPathIndex))break;if(!t.equals(s))break;s=e.getXY(e.getPathEnd(this.m_currentPathIndex)-1),this.m_currentPathIndex++}}if(0===t&&this.m_currentPathIndex===this.m_polyline.getPathCount()){const e=this.m_polyline;return this.m_polyline=null,e}const s=new M({vd:this.m_polyline.getDescription()});s.addPath(this.m_polyline,t,!0);for(let i=t+1;i<this.m_currentPathIndex;i++)s.addSegmentsFromPath(this.m_polyline,i,0,e.getSegmentCountPath(i),!1);return this.m_currentPathIndex===this.m_polyline.getPathCount()&&(this.m_polyline=null),s}return null}getGeometryID(){return 0}getRank(){return 1}tock(){return!0}}class J extends f{m_bufferer;m_geoms;m_geometry=null;m_index=0;m_bFilter;constructor(e,t,s){super(),this.m_bufferer=e,this.m_geoms=t,this.m_index=0,this.m_bFilter=s}next(){if(null===this.m_geometry&&(this.m_index=0,this.m_geometry=this.m_geoms.next(),!this.m_geometry))return null;const e=this.m_geometry.getImpl();if(this.m_index<e.getPathCount()){const e=this.m_index;this.m_index++;return this.m_bufferer.bufferPolylinePath(this.m_geometry,e,this.m_bFilter)}return this.m_geometry=null,this.next()}getGeometryID(){return 0}getRank(){return 1}tock(){return!0}}class W extends f{m_bufferer;m_index=0;constructor(e){super(),this.m_bufferer=e}next(){const e=this.m_bufferer.m_geometry;if(this.m_index<e.getPathCount()){const t=this.m_index,s=e.calculateRingArea2D(this.m_index);for(u(s>0),this.m_index++;this.m_index<e.getPathCount();){if(e.calculateRingArea2D(this.m_index)>0)break;this.m_index++}let i;return i=0===t&&this.m_index===e.getPathCount()?this.m_bufferer.bufferPolygonImpl(e,0,e.getPathCount()):this.m_bufferer.bufferPolygonImpl(e,t,this.m_index),i}return null}getGeometryID(){return 0}getRank(){return 1}tock(){return!0}}class H{m_geometry=null;m_densificator;m_bufferCommands=[];m_originalGeomType=s.enumUnknown;m_progressTracker;m_maxVertexInCompleteCircle=-1;m_circleTemplateSize=-1;m_oldCircleTemplateSize=0;m_spatialReference=null;m_tolerance=new _(0,0);m_smallTolerance=new _(0,0);m_filterTolerance=0;m_densifyDist=-1;m_distance=Number.NaN;m_absDistance=0;m_absDistanceReversed=0;m_dA=-1;m_miterLimit=4;m_joins=0;m_caps=0;m_bRoundBuffer=!0;m_bOutputLoops=!0;m_bFilter=!0;m_circleTemplate=[];m_leftStack=[];m_middleStack=[];m_helperLine1=new v;m_helperLine2=new v;m_helperArray=[];m_progressCounter=0;constructor(e){this.m_densificator=I.constructDefault(e),this.m_progressTracker=e}buffer(e,t,s,l,c,u,f,_){if(e||i("Geometry.Bufferer.Impl.Buffer"),f<0&&i("Geometry.Bufferer.Impl.Buffer"),n(e.getGeometryType())&&r("Unsupported geometry type."),e.isEmpty())return new S({vd:e.getDescription()});if(this.m_joins=l,this.m_caps=c,this.m_bRoundBuffer=!1,this.m_miterLimit=u,this.m_originalGeomType=e.getGeometryType(),m(this.m_originalGeomType)?this.m_bRoundBuffer=0===this.m_joins:o(this.m_originalGeomType)?this.m_bRoundBuffer=0===this.m_caps:a(this.m_originalGeomType)&&(this.m_bRoundBuffer=0===this.m_joins&&0===this.m_caps),this.m_bFilter=this.m_bRoundBuffer,this.m_geometry=B(e),this.m_geometry.isEmpty())return new S({vd:e.getDescription()});const d=new R;this.m_geometry.queryLooseEnvelope(d),t>0&&d.inflateCoords(t,t),this.m_tolerance=g(s,d,!0),this.m_smallTolerance=g(null,d,!0),_<=0&&(_=96),this.m_spatialReference=s,this.m_distance=t,this.m_absDistance=Math.abs(this.m_distance),this.m_absDistanceReversed=0!==this.m_absDistance?1/this.m_absDistance:0,Number.isNaN(f)||0===f?f=1e-5*this.m_absDistance:f>.5*this.m_absDistance&&(f=.5*this.m_absDistance),_<12&&(_=12);const p=Math.abs(t)*(1-Math.cos(Math.PI/_));if(p>f)f=p;else if(0!==t){const e=Math.PI/Math.acos(1-f/Math.abs(t));e<_-1&&(_=Math.trunc(e))<12&&(_=12,f=Math.abs(t)*(1-Math.cos(Math.PI/_)))}this.m_densifyDist=f,this.m_maxVertexInCompleteCircle=_,this.m_filterTolerance=this.m_bRoundBuffer?Math.min(this.m_smallTolerance.total(),.25*this.m_densifyDist):0,this.m_circleTemplateSize=this.calcN(),this.m_circleTemplateSize!==this.m_oldCircleTemplateSize&&(this.m_circleTemplate.length=0,this.m_oldCircleTemplateSize=this.m_circleTemplateSize),this.m_densifyDist>0&&h(this.m_geometry)&&(this.m_geometry=this.m_densificator.densifyEx(this.m_geometry,0,this.m_densifyDist,0,0!==this.m_joins,y()));const b=this.bufferImpl();return this.m_geometry=null,b}generateCircleTemplate(){if(this.m_circleTemplate.length)return;const e=this.m_circleTemplateSize,t=Math.trunc((e+3)/4),s=.5*Math.PI/t;this.m_dA=s,this.m_circleTemplate=P(x,4*t);const i=Math.cos(s),n=Math.sin(s),r=x.construct(0,1);for(let m=0;m<t;m++)this.m_circleTemplate[m+0*t].setCoords(r.y,-r.x),this.m_circleTemplate[m+1*t].setCoords(-r.x,-r.y),this.m_circleTemplate[m+2*t].setCoords(-r.y,r.x),this.m_circleTemplate[m+3*t].setCoords(r.x,r.y),r.rotateReverse(i,n)}bufferImpl(){const e=this.m_geometry.getGeometryType();if(l(e)){const e=new M({vd:this.m_geometry.getDescription()});return e.addSegment(this.m_geometry,!0),this.m_geometry=e,this.bufferImpl()}if(this.m_distance<=this.m_tolerance.total()){if(!m(e))return new S({vd:this.m_geometry.getDescription()});if(this.m_distance<0){const e=new R;if(this.m_geometry.queryEnvelope(e),e.width()<=2*this.m_absDistance||e.height()<=2*this.m_absDistance)return new S({vd:this.m_geometry.getDescription()})}}switch(this.m_geometry.getGeometryType()){case s.enumPoint:return this.bufferPoint();case s.enumMultiPoint:return this.bufferMultiPoint();case s.enumPolyline:return this.bufferPolyline();case s.enumPolygon:return this.bufferPolygon();case s.enumEnvelope:return this.bufferEnvelope();default:c("")}}bufferPolyline(){if(this.isDegenerateGeometry(this.m_geometry)){const e=new d;this.m_geometry.getPointByVal(0,e);const t=new R;return this.m_geometry.queryEnvelope(t),e.setXY(t.getCenter()),this.bufferDegeneratePath(e,!0)}const e=this.m_geometry,t=this.m_geometry.getDescription();this.m_geometry=null;const s=new U(e);let i,n;i=0===this.m_joins?(new q).executeMany(s,.25*this.m_densifyDist,!1,this.m_progressTracker):s,n=this.m_bRoundBuffer?(new L).executeMany(i,null,!0,this.m_progressTracker):i;const r=new J(this,n,this.m_bFilter),m=(new X).executeMany(r,this.m_spatialReference,this.m_progressTracker,2),o=(new Y).executeMany(m,this.m_spatialReference,!1,this.m_progressTracker).next();return null!==o?o:new S({vd:t})}bufferPolygon(){if(0===this.m_distance)return this.m_geometry;this.generateCircleTemplate();const e=(new Y).execute(this.m_geometry,null,!1,this.m_progressTracker);if(this.m_distance<0){if(this.m_geometry=e,this.m_geometry.isEmpty())return this.m_geometry;const t=this.m_geometry,s=this.bufferPolygonImpl(t,0,t.getPathCount());return(new Y).execute(s,this.m_spatialReference,!1,this.m_progressTracker)}{if(this.m_geometry=e,this.isDegenerateGeometry(this.m_geometry)){const e=new d;this.m_geometry.getPointByVal(0,e);const t=new R;return this.m_geometry.queryEnvelope(t),e.setXY(t.getCenter()),this.bufferDegeneratePath(e,!0)}const t=new W(this),s=(new X).executeMany(t,this.m_spatialReference,this.m_progressTracker,2),i=(new Y).executeMany(s,this.m_spatialReference,!1,this.m_progressTracker).next();return null!==i?i:new S({vd:this.m_geometry.getDescription()})}}bufferPolygonImpl(e,t,s){const i=e,n=i.getImpl();let r=new S({vd:e.getDescription()});for(let m=t;m<s;m++){if(n.getPathSize(m)<1)continue;const t=n.calculateRingArea2D(m),s=new R;if(n.queryPathEnvelope(m,s),this.m_distance>0)if(t>0)if(this.isDegeneratePath(n,m)){const e=new d;n.getPointByVal(n.getPathStart(m),e),e.setXY(s.getCenter()),r.add(this.bufferDegeneratePath(e,!0),!1)}else{const t=new M({vd:e.getDescription()}),s=t.getImpl();if(E(this.m_geometry,m)){const e=this.bufferConvexPath(i,m);r.add(e,!1)}else{this.bufferClosedPath(this.m_geometry,m,s,this.m_bRoundBuffer,1);const e=this.bufferCleanup(t);r.add(e,!1)}}else{if(s.width()+this.m_tolerance.total()<=2*this.m_absDistance||s.height()+this.m_tolerance.total()<=2*this.m_absDistance)continue;const t=new M({vd:e.getDescription()}),i=t.getImpl();if(this.bufferClosedPath(this.m_geometry,m,i,this.m_bRoundBuffer,1),!t.isEmpty()){const e=s,n=Math.max(1,this.m_absDistance),m=e.clone();m.inflateCoords(n,n),i.addEnvelope(m,!1);const o=this.bufferCleanup(t);r.reserve(r.getPointCount()+o.getPointCount()-4),se(o,r,m,!0)}}else if(t>0){if(s.width()+this.m_tolerance.total()<=2*this.m_absDistance||s.height()+this.m_tolerance.total()<=2*this.m_absDistance)continue;const t=new M({vd:e.getDescription()}),i=t.getImpl();if(this.bufferClosedPath(this.m_geometry,m,i,this.m_bRoundBuffer,-1),!t.isEmpty()){const e=new R;i.queryLooseEnvelope(e);const s=Math.max(1,this.m_absDistance),n=e.clone();n.inflateCoords(s,s),i.addEnvelope(n,!1);se(this.bufferCleanup(t),r,n,!0)}}else{const t=new M({vd:e.getDescription()}),s=t.getImpl();this.bufferClosedPath(this.m_geometry,m,s,this.m_bRoundBuffer,-1);const i=this.bufferCleanup(t);for(let e=0,n=i.getPathCount();e<n;e++)r.addPath(i,e,!0)}}if(this.m_distance>0){if(r.getPathCount()>1){return this.bufferCleanup(r)}return K(r)}{const e=new R;if(r.queryLooseEnvelope(e),r.isEmpty())return K(r);{const t=Math.max(1,this.m_absDistance),s=e.clone();s.inflateCoords(t,t),r.addEnvelope(s,!1);const i=this.bufferCleanup(r);r=new S;const n=new S({vd:i.getDescription()});return se(i,n,s,!1),K(n)}}}bufferPoint(){return this.bufferPointImpl(this.m_geometry)}bufferPointImpl(e){const t=new S({vd:e.getDescription()});return 0===this.m_caps?(this.addCircle(t.getImpl(),e),this.setStrongSimple(t)):2===this.m_caps?(this.addSquare(t.getImpl(),e),this.setStrongSimple(t)):t}bufferDegeneratePath(e,t){const s=new S({vd:e.getDescription()});return t&&0===this.m_joins||!t&&0===this.m_caps?(this.addCircle(s.getImpl(),e),this.setStrongSimple(s)):t||2!==this.m_caps?s:(this.addSquare(s.getImpl(),e),this.setStrongSimple(s))}bufferMultiPoint(){const e=new O(this,this.m_geometry,this.m_distance,this.m_spatialReference,this.m_joins,this.m_caps,this.m_miterLimit,this.m_densifyDist,this.m_maxVertexInCompleteCircle,this.m_progressTracker);return(new X).executeMany(e,this.m_spatialReference,this.m_progressTracker,2).next()}bufferEnvelope(){let e=new S({vd:this.m_geometry.getDescription()});if(this.m_distance<=0){if(0===this.m_distance)e.addEnvelope(this.m_geometry,!1),Q(this.m_geometry,this.m_tolerance.total())&&(e=this.setStrongSimple(e));else{const t=new p;this.m_geometry.queryEnvelope(t),t.inflateCoords(this.m_distance,this.m_distance),e.addEnvelope(t,!1),Q(t,this.m_tolerance.total())&&(e=this.setStrongSimple(e))}return e}if(1===this.m_joins){const t=new p({copy:this.m_geometry});return t.inflateCoords(this.m_absDistance,this.m_absDistance),e.addEnvelope(t,!1),e}const t=this.m_geometry.clone();if(0===t.width()||0===t.height()){if(0===t.width()&&0===t.height()){const e=new d({vd:this.m_geometry.getDescription()});return t.queryCornerByVal(0,e),this.m_geometry=e,this.bufferImpl()}const e=new M({vd:this.m_geometry.getDescription()}),s=new d;return t.queryCornerByVal(0,s),e.startPathPoint(s),t.queryCornerByVal(2,s),e.lineToPoint(s),this.m_geometry=e,this.bufferImpl()}return e.addEnvelope(this.m_geometry,!1),this.m_geometry=e,this.bufferConvexPath(e,0)}bufferConvexPath(e,t){this.generateCircleTemplate();const s=e.hasAttribute(10),i=new S({vd:e.getDescription()}),n=i.getImpl();i.reserve((this.m_circleTemplate.length/10+4)*e.getPathSize(t));const r=new x,m=new x,o=new x,a=new x(0,0),h=new x,l=new x,u=e.getImpl(),f=e.getPathSize(t),_=e.getPathStart(t);for(let g=0,d=e.getPathSize(t);g<d;g++){const e=u.getXY(_+g),t=u.getXY(_+(g+1)%f),i=u.getXY(_+(g+2)%f);h.setSub(t,e),0===h.length()&&c("");const d=s&&!!(1&u.getAttributeAsInt(10,(g+1)%f,0));h.normalize();const p=h.clone();h.leftPerpendicularThis(),h.scale(this.m_absDistance),r.setAdd(h,e),m.setAdd(h,t),0===g?n.startPath(r):n.lineTo(r),n.lineTo(m),l.setSub(i,t),0===l.length()&&c(""),l.normalize();const b=l.clone();l.leftPerpendicularThis(),l.scale(this.m_absDistance),o.setAdd(l,t);let y=j.enumArc;const P=d?0:this.m_joins;if(2===P)y=j.enumBevel;else if(1===P){const e=-p.crossProduct(b);a.setSub(p,b),a.scale(this.m_absDistance/e),a.length()<this.m_miterLimit*this.m_absDistance?(a.addThis(t),y=j.enumMiter):y=j.enumBevel}else a.assign(t);this.addJoin(y,n,a,m,o,!1,!1)}return K(i)}bufferPolylinePath(e,t,s){this.generateCircleTemplate();const i=e,n=i.getImpl();if(n.getPathSize(t)<1)return null;let r;if(r=this.m_bRoundBuffer?n.isClosedPathInXYPlane(t):n.isClosedPath(t),this.isDegeneratePath(n,t)&&this.m_distance>0){const e=new d;n.getPointByVal(n.getPathStart(t),e);const s=new R;return n.queryPathEnvelope(t,s),e.setXY(s.getCenter()),this.bufferDegeneratePath(e,r)}const m=new M({vd:e.getDescription()});m.reserve((Math.trunc(this.m_circleTemplate.length/10)+4)*n.getPathSize(t));const o=m.getImpl();return r?2!==this.bufferClosedPath(i,t,o,s,1)&&this.bufferClosedPath(i,t,o,s,-1):this.bufferOpenPath(i,t,o,s),this.bufferCleanup(m)}progress_(){}bufferCleanup(e,t=!1){const s=t?this.m_tolerance:this.m_smallTolerance;return F(e,s,!0,!t,-1,this.m_progressTracker,0,!1)}calcN(){const e=4;if(0===this.m_densifyDist)return this.m_maxVertexInCompleteCircle;const t=1-this.m_densifyDist*Math.abs(this.m_absDistanceReversed);let s=e;return s=t<-1?e:2*Math.PI/Math.acos(t)+.5,s<e?s=e:s>this.m_maxVertexInCompleteCircle&&(s=this.m_maxVertexInCompleteCircle),Math.trunc(s)}addJoin(e,t,s,i,n,r,m){if(this.generateCircleTemplate(),r&&(t.startPath(i),r=!1),e===j.enumBevel)return void(m&&t.lineTo(n));if(e===j.enumMiter){const e=s.clone();return t.lineTo(e),void(m&&t.lineTo(n))}const o=new x;o.setSub(i,s),o.scale(this.m_absDistanceReversed);const a=new x;a.setSub(n,s),a.scale(this.m_absDistanceReversed);let h=Math.atan2(o.y,o.x)/this.m_dA;h<0&&(h=this.m_circleTemplate.length+h),h=this.m_circleTemplate.length-h;let l=Math.atan2(a.y,a.x)/this.m_dA;l<0&&(l=this.m_circleTemplate.length+l),l=this.m_circleTemplate.length-l,l<h&&(l+=this.m_circleTemplate.length);let c=Math.trunc(l),u=Math.ceil(h),f=this.m_circleTemplate[u%this.m_circleTemplate.length].clone();f.scaleAddThis(this.m_absDistance,s);const _=10*this.m_tolerance.total();f.sub(i).length()<_&&(u+=1),f=this.m_circleTemplate[c%this.m_circleTemplate.length].clone(),f.scaleAddThis(this.m_absDistance,s),f.sub(n).length()<_&&(c-=1);let g=c-u;g++;for(let d=0,p=u%this.m_circleTemplate.length;d<g;d++,p=(p+1)%this.m_circleTemplate.length)f=this.m_circleTemplate[p].clone(),f.scaleAddThis(this.m_absDistance,s),t.lineTo(f),this.progress_();m&&t.lineTo(n)}bufferClosedPath(e,t,s,i,n){const r=new V,m=r.addPathFromMultiPath(e,t,!0);return this.bufferClosedPathImpl(r,m,s,i,n)}bufferClosedPathImpl(e,t,s,i,n){const r=e.getFirstVertex(e.getFirstPath(t)),m=new d;e.queryPoint(r,m),e.filterClosePoints(this.m_filterTolerance,!1,!1,!1,-1);if(e.getPointCount(t)<2)return n<0?0:(this.m_bRoundBuffer&&this.addCircle(s,m),2);u(e.getFirstPath(t)!==k),u(e.getFirstVertex(e.getFirstPath(t))!==k);const o=e.getXY(e.getFirstVertex(e.getFirstPath(t))),a=new A;if(a.setShift(o.negate()),e.applyTransformation(a),i){const i=te(e,t,n,!0,this.m_absDistance,this.m_filterTolerance,this.m_densifyDist);if(u(1===i),e.getPointCount(t)<2)return n<0?0:(this.addCircle(s,m),2)}const h=0!==this.m_joins&&e.getVertexDescription().hasAttribute(10);this.m_bufferCommands.length=0;const l=e.getFirstPath(t);let c=e.getFirstVertex(l),f=1===n?e.getPrevVertex(c):e.getNextVertex(c),_=1===n?e.getNextVertex(c):e.getPrevVertex(c),g=!0;const p=new x,b=new x,y=new x,P=new x,C=new x,D=new x,w=new x,T=new x,v=this.m_absDistance,I=e.getPathSize(l),S=new x(0,0);for(let u=0;u<I;u++){b.assign(e.getXY(_)),g&&(p.assign(e.getXY(c)),y.assign(e.getXY(f)),D.setSub(p,y),D.normalize(),T.leftPerpendicularOther(D),T.scale(v),P.setAdd(T,p));const t=h&&!!(1&e.getAttributeAsDbl(10,c,0));C.setSub(b,p),C.normalize(),w.leftPerpendicularOther(C),w.scale(v);const s=new x;s.setAdd(p,w);const i=D.crossProduct(C),r=D.dotProduct(C);if(i<0||r<0&&i<Math.abs(r)*Number.EPSILON*8){let e=!1;const n=t?0:this.m_joins;if(1===n){const t=-i;S.setSub(D,C),S.scale(this.m_absDistance/t),S.length()<this.m_miterLimit*this.m_absDistance&&(S.addThis(p),e=!0),this.m_bufferCommands.push(G(P,s,S,e?j.enumMiter:j.enumBevel,this.m_bufferCommands.length+1))}else this.m_bufferCommands.push(G(P,s,p,0===n?j.enumArc:j.enumBevel,this.m_bufferCommands.length+1))}else P.equals(s)||(this.m_bufferCommands.push(N(P,p,this.m_bufferCommands.length+1)),this.m_bufferCommands.push(N(p,s,this.m_bufferCommands.length+1)));const m=new x;m.setAdd(b,w),this.m_bufferCommands.push(G(s,m,p,j.enumLine,this.m_bufferCommands.length+1)),P.setCoordsPoint2D(m),T.setCoordsPoint2D(w),y.setCoordsPoint2D(p),p.setCoordsPoint2D(b),D.setCoordsPoint2D(C),f=c,c=_,g=!1,_=1===n?e.getNextVertex(c):e.getPrevVertex(c)}return this.m_bufferCommands.at(-1).m_next=0,this.processBufferCommands(s),a.setShift(o),s.applyTransformationToPath(a,s.getPathCount()-1),1}bufferOpenPath(e,t,s,i){if(this.m_bRoundBuffer){const n=new M({vd:e.getDescription()});return n.addPath(e,t,!1),n.addSegmentsFromPath(e,t,0,e.getSegmentCountPath(t),!1),this.bufferClosedPath(n,0,s,i,1)}let n=0;const r=new M({vd:e.getDescription()}),m=new x(0,0);{const i=new V,o=i.addPathFromMultiPath(e,t,!1),a=i.getFirstVertex(i.getFirstPath(o)),h=new d;i.queryPoint(a,h),m.assign(h.getXY()),i.filterClosePoints(0,!1,!1,!1,-1);if(i.getPointCount(o)<2)return this.m_bRoundBuffer&&this.addCircle(s,h),2;const l=i.getGeometry(i.getFirstGeometry());r.addPath(l,0,!1),n=r.getPointCount()-1,r.addSegmentsFromPath(l,0,0,l.getSegmentCountPath(0)-1,!1)}const o=new V,a=o.addPathFromMultiPath(r,0,!0);u(o.getFirstPath(a)!==k),u(o.getFirstVertex(o.getFirstPath(a))!==k);const h=new A;h.setShift(m.negate()),o.applyTransformation(h),this.m_bufferCommands.length=0;const l=o.getFirstPath(a),c=0!==this.m_joins&&o.getVertexDescription().hasAttribute(10);let f=o.getFirstVertex(l),_=o.getPrevVertex(f),g=o.getNextVertex(f),p=!0;const b=new x,y=new x,P=new x,C=new x,D=new x,w=new x,T=new x,v=new x,I=this.m_absDistance,S=o.getPathSize(l),E=new x(0,0);for(let u=0;u<S;u++){let e=!1;0!==u&&u!==n||(e=!0),y.assign(o.getXY(g)),p&&(b.assign(o.getXY(f)),P.assign(o.getXY(_)),w.setSub(b,P),w.normalize(),v.leftPerpendicularOther(w),v.scale(I),C.setAdd(v,b));const t=c&&!!(1&o.getAttributeAsDbl(10,f,0));D.setSub(y,b),D.normalize(),T.leftPerpendicularOther(D),T.scale(I);const s=new x;s.setAdd(b,T);const i=w.crossProduct(D),r=w.dotProduct(D);if(i<0||r<0&&i<Math.abs(r)*Number.EPSILON*8)if(e)if(0===this.m_caps)this.m_bufferCommands.push(G(C,s,b,j.enumArc,this.m_bufferCommands.length+1));else if(1===this.m_caps)this.m_bufferCommands.push(G(C,s,b,j.enumLine,this.m_bufferCommands.length+1));else{const e=D.mul(this.m_absDistance).negate(),t=e.clone();e.addThis(C),t.addThis(s),this.m_bufferCommands.push(G(C,e,b,j.enumLine,this.m_bufferCommands.length+1)),this.m_bufferCommands.push(G(e,t,b,j.enumLine,this.m_bufferCommands.length+1)),this.m_bufferCommands.push(G(t,s,b,j.enumLine,this.m_bufferCommands.length+1))}else{let e=!1;const n=t?0:this.m_joins;if(1===n){const t=-i;E.setSub(w,D),E.scale(this.m_absDistance/t),E.length()<this.m_miterLimit*this.m_absDistance&&(E.addThis(b),e=!0),this.m_bufferCommands.push(G(C,s,E,e?j.enumMiter:j.enumBevel,this.m_bufferCommands.length+1))}else this.m_bufferCommands.push(G(C,s,b,0===n?j.enumArc:j.enumBevel,this.m_bufferCommands.length+1))}else C.equals(s)||(this.m_bufferCommands.push(N(C,b,this.m_bufferCommands.length+1)),this.m_bufferCommands.push(N(b,s,this.m_bufferCommands.length+1)));const m=new x;m.setAdd(y,T),this.m_bufferCommands.push(G(s,m,b,j.enumLine,this.m_bufferCommands.length+1)),C.setCoordsPoint2D(m),v.setCoordsPoint2D(T),P.setCoordsPoint2D(b),b.setCoordsPoint2D(y),w.setCoordsPoint2D(D),_=f,f=g,p=!1,g=o.getNextVertex(f)}return this.m_bufferCommands.at(-1).m_next=0,this.processBufferCommands(s),h.setShift(m),s.applyTransformationToPath(h,s.getPathCount()-1),1}processBufferCommands(e){const t=this.cleanupBufferCommands();let s=!0,i=t+1;for(let n=t;i!==t;n=i){const t=this.m_bufferCommands[n];i=-1!==t.m_next?t.m_next:(n+1)%this.m_bufferCommands.length,t.m_type&&(s&&(e.startPath(t.m_from),s=!1),t.m_type&j.enumJoinMask?this.addJoin(t.m_type,e,t.m_center,t.m_from,t.m_to,!1,!0):e.lineTo(t.m_to))}}cleanupBufferCommands(){this.m_helperArray=P(x,9);let e=0;for(let s=0,i=this.m_bufferCommands.length;s<i;){const t=this.m_bufferCommands[s];if(t.m_type&j.enumConnectionMask){e=s;break}s=t.m_next}let t=e+1;for(let s=e;t!==e;s=t){const e=this.m_bufferCommands[s];t=e.m_next;let i=1,n=null;for(;t!==s&&(n=this.m_bufferCommands[t],!(n.m_type&j.enumConnectionMask));)t=n.m_next,i++;if(1!==i&&(e.m_type&n.m_type)===j.enumLine){this.m_helperLine1.setStartXY(e.m_from),this.m_helperLine1.setEndXY(e.m_to),this.m_helperLine2.setStartXY(n.m_from),this.m_helperLine2.setEndXY(n.m_to);1===this.m_helperLine1.intersect(this.m_helperLine2,this.m_helperArray,null,null,this.m_smallTolerance.total())&&(e.m_to.assign(this.m_helperArray[0]),n.m_from.assign(this.m_helperArray[0]),e.m_next=t)}}return e}isDegeneratePath(e,t){if(1===e.getPathSize(t))return!0;if(0===this.m_joins&&0===this.m_caps){const s=new R;if(e.queryPathEnvelope(t,s),Math.max(s.width(),s.height())<.5*this.m_densifyDist)return!0}return!1}isDegenerateGeometry(e){if(0===this.m_joins&&0===this.m_caps){const t=new R;if(e.queryEnvelope(t),Math.max(t.width(),t.height())<.5*this.m_densifyDist)return!0}return!1}addCircle(e,t){const s=t.getXY();if(0!==this.m_circleTemplate.length){let t=this.m_circleTemplate[0].clone();t.scaleAddThis(this.m_absDistance,s),e.startPath(t);for(let i=1,n=this.m_circleTemplate.length;i<n;i++)t=this.m_circleTemplate[i].clone(),t.scaleAddThis(this.m_absDistance,s),e.lineTo(t);return}const i=this.m_circleTemplateSize,n=Math.trunc((i+3)/4),r=.5*Math.PI/n;e.reserve(4*n);const m=Math.cos(r),o=Math.sin(r);for(let a=3;a>=0;a--){const t=x.construct(0,this.m_absDistance);switch(a){case 0:for(let i=0;i<n;i++)e.lineToCoords(t.x+s.x,t.y+s.y),t.rotateReverse(m,o);break;case 1:for(let i=0;i<n;i++)e.lineToCoords(-t.y+s.x,t.x+s.y),t.rotateReverse(m,o);break;case 2:for(let i=0;i<n;i++)e.lineToCoords(-t.x+s.x,-t.y+s.y),t.rotateReverse(m,o);break;default:e.startPathCoords(t.y+s.x,-t.x+s.y);for(let i=1;i<n;i++)t.rotateReverse(m,o),e.lineToCoords(t.y+s.x,-t.x+s.y)}this.progress_()}}addSquare(e,t){const s=new p({vd:t.getDescription()});s.setCoords(t.getX(),t.getY(),t.getX(),t.getY()),s.inflateCoords(this.m_absDistance,this.m_absDistance),e.addEnvelope(s,!1)}setStrongSimple(e){return e.getImpl().setIsSimple(4,this.m_tolerance.total()),e.getImpl().updateOGCFlagsProtected(),e}}function K(e){return b(e,0),e}function Q(e,t){return!!e.isEmpty()||Math.min(e.width(),e.height())>t}function Z(e,t,s,i,n,r,m,o){const a=e.getXY(s),h=e.getXY(i);if(a.equals(h))return-1;const l=.25*m,c=.25*m,f=new x;f.setSub(h,a);const _=f.length(),g=_*_*.25,d=r*r-g;if(d<=g)return-1;const p=Math.sqrt(d);f.normalize();const b=f.clone();b.rightPerpendicularThis();const y=g/p,P=y<=c,C=x.lerp(h,a,.5),D=b.clone(),v=y-l;D.scaleAddThis(Math.max(0,v),C);b.negate().scaleAddThis(p,C);const I=3.61*T(r-c),S=D.sub(a),M=D.sub(h);let E=!1,V=0;const k=w(64,0);u(o===k.length);{for(let o=e.getPrevVertexEx(i,n);o!==s;){if(1===e.getUserIndex(o,t))return-1;if(e.getXY(o).equals(h)){const t=e.getPrevVertexEx(o,n);e.removeVertex(o,!1),o=t;continue}break}const r=new x,m=a.clone();k[V++]=1;for(let o=e.getNextVertexEx(s,n);o!==i;){if(1===e.getUserIndex(o,t))return-1;const s=e.getXY(o);if(s.equals(m)){const t=e.getNextVertexEx(o,n);e.removeVertex(o,!1),o=t;continue}k[V++]=0;const i=new x;if(i.setSub(s,a),i.dotProduct(b)<0)return 0;(x.sqrDistance(s,a)>I||x.sqrDistance(s,h)>I)&&(E=!0);let l=0;s.sub(a).crossProduct(S)>=0&&(l=1);if(s.sub(h).crossProduct(M)<=0&&(l|=2),0===l)return 0;k[V-1]=l,r.assign(m),m.assign(s),o=e.getNextVertexEx(o,n)}if(1===V)return 0;u(V<k.length),k[V++]=2}let R=!0;for(let u=1,x=0;u<V;u++)if(k[u]!==k[u-1]&&(x++,R=x<3&&(1===x&&3===k[u]||2===x&&2===k[u]),!R))return 0;if(V>2&&R&&(3===V||!E)){let t=0,r=e.getNextVertexEx(s,n);for(P||(e.setXY(r,D),r=e.getNextVertexEx(r,n));r!==i;){const s=e.getNextVertexEx(r,n);e.removeVertex(r,!1),r=s,++t}return t}if(u(3!==V),E&&V>3)return 0;const A=a.clone();let B=s;const X=a.clone();let Y=1,F=-1,L=B,q=0;for(V=1;L!==i;){L=e.getNextVertexEx(L,n);const t=k[V++];if(0===t){if(L===i)break;continue}const s=e.getXY(L);if(-1!==F){if(3&(F&Y&t)){e.removeVertex(B,!0),q++,B=L,X.setCoordsPoint2D(s),Y=t;continue}if(3===Y&&0!==F&&0!==t){if(X.setCoordsPoint2D(D),P||X.equals(A)){e.removeVertex(B,!0),q++,B=L,X.setCoordsPoint2D(s),Y=t;continue}e.setXY(B,X)}}F=Y,A.setCoordsPoint2D(X),B=L,Y=t,X.setCoordsPoint2D(s)}return q}function $(e,t,s,i){let n=-1;const r=new x,m=new x,o=new x;for(let a=0,h=e.getPathSize(i),l=e.getFirstVertex(i);a<h;++a){-1===n&&(e.queryXY(l,m),n=e.getPrevVertex(l),-1!==n&&(e.queryXY(n,r),o.setSub(m,r),o.normalize()));const s=e.getNextVertex(l);if(-1===s)break;const i=e.getXY(s),a=i.sub(m);if(a.normalize(),-1!==n){a.dotProduct(o)<-.99&&Math.abs(a.crossProduct(o))<1e-7&&e.setUserIndex(l,t,1)}n=l,l=s,r.assign(m),m.assign(i),o.assign(a)}}function ee(s,i,n,r,m,o,a){const h={stack:[],error:void 0,hasError:!1};try{const t=s.getFirstPath(i),r=s.createUserIndex();e(h,D(()=>{s.removeUserIndex(r)},!1),!1),$(s,r,i,t);for(let e=0;e<100;++e){if(0===s.getPathSize(t))return 1;let e=s.getFirstVertex(t),i=s.getPathSize(t);if(i<3)return 1;s.isClosedPath(t)||(i-=1);const o=64;let h=0,l=!1;for(let t=0;t<i&&e!==k;t++){let c=0,u=e;for(let h=1,l=Math.min(o,i-t);h<l;h++)if(u=s.getNextVertexEx(u,n),h>1){const t=Z(s,r,e,u,n,m,a,o);if(-1===t)break;c+=t,i-=t}if(h+=c,l=c>0,l){const t=s.getPrevVertexEx(e,n);if(-1!==t){e=t,i++;continue}}e=s.getNextVertexEx(e,n)}if(0===h)break}return s.filterClosePoints(o,!1,!1,!1,-1),1}catch(l){h.error=l,h.hasError=!0}finally{t(h)}}function te(e,t,s,i,n,r,m){return ee(e,t,s,i,n,r,m)}function se(e,t,s,i){for(let n=0,r=e.getPathCount();n<r;n++){const r=e.getXY(e.getPathStart(n));r.x!==s.xmin&&r.x!==s.xmax&&t.addPath(e,n,i)}}export{H as B,z as s};
|
|
2
|
+
import{__addDisposableResource as e,__disposeResources as t}from"tslib";import{G as s,a as i,k as n,t as r,l as m,f as o,m as a,n as h,h as l,d as c,g as u}from"./Geometry.js";import{G as f}from"./GeometryCursor.js";import{C as _,c as g,P as d,E as p,s as b}from"./Envelope.js";import{i as y,m as P,P as x,k as C,h as D,d as w,a as T}from"./Point2D.js";import{L as v,D as I,P as S,a as M,i as E,E as V,n as k}from"./MultiPathImpl.js";import{Envelope2D as R}from"./Envelope2D.js";import{T as A}from"./Transformation2D.js";import{c as B}from"./GeometryCleaner-CIE8Wfmb.js";import{_ as X,H as Y,a6 as F}from"./UnitFactory.js";import{O as L}from"./OperatorSimplifyOGC.js";import{O as q}from"./OperatorGeneralize.js";function z(e){return e>=0?e>C?C:e:0}var j;function G(e,t,s,i,n,r){return{m_from:e.clone(),m_to:t.clone(),m_center:s.clone(),m_next:n,m_type:i}}function N(e,t,s,i,n){return{m_from:e.clone(),m_to:t.clone(),m_next:s,m_type:4,m_center:new x}}!function(e){e[e.enumDummy=256]="enumDummy",e[e.enumLine=1]="enumLine",e[e.enumArc=2]="enumArc",e[e.enumMiter=8]="enumMiter",e[e.enumBevel=16]="enumBevel",e[e.enumJoinMask=26]="enumJoinMask",e[e.enumConnectionMask=27]="enumConnectionMask"}(j||(j={}));class O extends f{m_parent;m_index=0;m_bufferedPolygon=null;m_mp;m_spatialReference;m_distance;m_densifyDist;m_x=0;m_y=0;m_miterLimit;m_joins;m_caps;m_maxVertexInCompleteCircle;m_progressTracker;constructor(e,t,s,i,n,r,m,o,a,h){super(),this.m_progressTracker=h,this.m_parent=e,this.m_mp=t,this.m_distance=s,this.m_spatialReference=i,this.m_densifyDist=o,this.m_maxVertexInCompleteCircle=a,this.m_joins=n,this.m_caps=r,this.m_miterLimit=m}next(){const e=new d;for(;;){if(this.m_index===this.m_mp.getPointCount())return null;if(1===this.m_caps)return this.m_index=this.m_mp.getPointCount(),new S({vd:this.m_mp.getDescription()});if(this.m_mp.getPointByVal(this.m_index,e),this.m_index++,!e.isEmpty())break}let t,s=!1;if(null===this.m_bufferedPolygon&&(this.m_x=e.getX(),this.m_y=e.getY(),this.m_bufferedPolygon=this.m_parent.buffer(e,this.m_distance,this.m_spatialReference,this.m_joins,this.m_caps,this.m_miterLimit,this.m_densifyDist,this.m_maxVertexInCompleteCircle),s=!0),t=this.m_index<this.m_mp.getPointCount()?this.m_bufferedPolygon.clone():this.m_bufferedPolygon,!s){const s=new A,i=e.getX()-this.m_x,n=e.getY()-this.m_y;s.setShiftCoords(i,n),t.applyTransformation(s)}return b(t,0),t}getGeometryID(){return 0}getRank(){return 1}tock(){return!0}}class U extends f{m_polyline;m_currentPathIndex=0;constructor(e){super(),this.m_polyline=e}next(){if(!this.m_polyline)return null;const e=this.m_polyline.getImpl(),t=e.getPathCount();if(this.m_currentPathIndex<t){const t=this.m_currentPathIndex;if(this.m_currentPathIndex++,!e.isClosedPathInXYPlane(t)){let s=e.getXY(e.getPathEnd(t)-1);for(;this.m_currentPathIndex<e.getPathCount();){const t=e.getXY(e.getPathStart(this.m_currentPathIndex));if(e.isClosedPathInXYPlane(this.m_currentPathIndex))break;if(!t.equals(s))break;s=e.getXY(e.getPathEnd(this.m_currentPathIndex)-1),this.m_currentPathIndex++}}if(0===t&&this.m_currentPathIndex===this.m_polyline.getPathCount()){const e=this.m_polyline;return this.m_polyline=null,e}const s=new M({vd:this.m_polyline.getDescription()});s.addPath(this.m_polyline,t,!0);for(let i=t+1;i<this.m_currentPathIndex;i++)s.addSegmentsFromPath(this.m_polyline,i,0,e.getSegmentCountPath(i),!1);return this.m_currentPathIndex===this.m_polyline.getPathCount()&&(this.m_polyline=null),s}return null}getGeometryID(){return 0}getRank(){return 1}tock(){return!0}}class J extends f{m_bufferer;m_geoms;m_geometry=null;m_index=0;m_bFilter;constructor(e,t,s){super(),this.m_bufferer=e,this.m_geoms=t,this.m_index=0,this.m_bFilter=s}next(){if(null===this.m_geometry&&(this.m_index=0,this.m_geometry=this.m_geoms.next(),!this.m_geometry))return null;const e=this.m_geometry.getImpl();if(this.m_index<e.getPathCount()){const e=this.m_index;this.m_index++;return this.m_bufferer.bufferPolylinePath(this.m_geometry,e,this.m_bFilter)}return this.m_geometry=null,this.next()}getGeometryID(){return 0}getRank(){return 1}tock(){return!0}}class H extends f{m_bufferer;m_index=0;constructor(e){super(),this.m_bufferer=e}next(){const e=this.m_bufferer.m_geometry;if(this.m_index<e.getPathCount()){const t=this.m_index,s=e.calculateRingArea2D(this.m_index);for(u(s>0),this.m_index++;this.m_index<e.getPathCount();){if(e.calculateRingArea2D(this.m_index)>0)break;this.m_index++}let i;return i=0===t&&this.m_index===e.getPathCount()?this.m_bufferer.bufferPolygonImpl(e,0,e.getPathCount()):this.m_bufferer.bufferPolygonImpl(e,t,this.m_index),i}return null}getGeometryID(){return 0}getRank(){return 1}tock(){return!0}}class W{m_geometry=null;m_densificator;m_bufferCommands=[];m_originalGeomType=s.enumUnknown;m_progressTracker;m_maxVertexInCompleteCircle=-1;m_circleTemplateSize=-1;m_oldCircleTemplateSize=0;m_spatialReference=null;m_tolerance=new _(0,0);m_smallTolerance=new _(0,0);m_filterTolerance=0;m_densifyDist=-1;m_distance=Number.NaN;m_absDistance=0;m_absDistanceReversed=0;m_dA=-1;m_miterLimit=4;m_joins=0;m_caps=0;m_bRoundBuffer=!0;m_bOutputLoops=!0;m_bFilter=!0;m_circleTemplate=[];m_leftStack=[];m_middleStack=[];m_helperLine1=new v;m_helperLine2=new v;m_helperArray=[];m_progressCounter=0;constructor(e){this.m_densificator=I.constructDefault(e),this.m_progressTracker=e}buffer(e,t,s,l,c,u,f,_){if(e||i("Geometry.Bufferer.Impl.Buffer"),f<0&&i("Geometry.Bufferer.Impl.Buffer"),n(e.getGeometryType())&&r("Unsupported geometry type."),e.isEmpty())return new S({vd:e.getDescription()});if(this.m_joins=l,this.m_caps=c,this.m_bRoundBuffer=!1,this.m_miterLimit=u,this.m_originalGeomType=e.getGeometryType(),m(this.m_originalGeomType)?this.m_bRoundBuffer=0===this.m_joins:o(this.m_originalGeomType)?this.m_bRoundBuffer=0===this.m_caps:a(this.m_originalGeomType)&&(this.m_bRoundBuffer=0===this.m_joins&&0===this.m_caps),this.m_bFilter=this.m_bRoundBuffer,this.m_geometry=B(e),this.m_geometry.isEmpty())return new S({vd:e.getDescription()});const d=new R;this.m_geometry.queryLooseEnvelope(d),t>0&&d.inflateCoords(t,t),this.m_tolerance=g(s,d,!0),this.m_smallTolerance=g(null,d,!0),_<=0&&(_=96),this.m_spatialReference=s,this.m_distance=t,this.m_absDistance=Math.abs(this.m_distance),this.m_absDistanceReversed=0!==this.m_absDistance?1/this.m_absDistance:0,Number.isNaN(f)||0===f?f=1e-5*this.m_absDistance:f>.5*this.m_absDistance&&(f=.5*this.m_absDistance),_<12&&(_=12);const p=Math.abs(t)*(1-Math.cos(Math.PI/_));if(p>f)f=p;else if(0!==t){const e=Math.PI/Math.acos(1-f/Math.abs(t));e<_-1&&(_=Math.trunc(e))<12&&(_=12,f=Math.abs(t)*(1-Math.cos(Math.PI/_)))}this.m_densifyDist=f,this.m_maxVertexInCompleteCircle=_,this.m_filterTolerance=this.m_bRoundBuffer?Math.min(this.m_smallTolerance.total(),.25*this.m_densifyDist):0,this.m_circleTemplateSize=this.calcN(),this.m_circleTemplateSize!==this.m_oldCircleTemplateSize&&(this.m_circleTemplate.length=0,this.m_oldCircleTemplateSize=this.m_circleTemplateSize),this.m_densifyDist>0&&h(this.m_geometry)&&(this.m_geometry=this.m_densificator.densifyEx(this.m_geometry,0,this.m_densifyDist,0,0!==this.m_joins,y()));const b=this.bufferImpl();return this.m_geometry=null,b}generateCircleTemplate(){if(this.m_circleTemplate.length)return;const e=this.m_circleTemplateSize,t=Math.trunc((e+3)/4),s=.5*Math.PI/t;this.m_dA=s,this.m_circleTemplate=P(x,4*t);const i=Math.cos(s),n=Math.sin(s),r=x.construct(0,1);for(let m=0;m<t;m++)this.m_circleTemplate[m+0*t].setCoords(r.y,-r.x),this.m_circleTemplate[m+1*t].setCoords(-r.x,-r.y),this.m_circleTemplate[m+2*t].setCoords(-r.y,r.x),this.m_circleTemplate[m+3*t].setCoords(r.x,r.y),r.rotateReverse(i,n)}bufferImpl(){const e=this.m_geometry.getGeometryType();if(l(e)){const e=new M({vd:this.m_geometry.getDescription()});return e.addSegment(this.m_geometry,!0),this.m_geometry=e,this.bufferImpl()}if(this.m_distance<=this.m_tolerance.total()){if(!m(e))return new S({vd:this.m_geometry.getDescription()});if(this.m_distance<0){const e=new R;if(this.m_geometry.queryEnvelope(e),e.width()<=2*this.m_absDistance||e.height()<=2*this.m_absDistance)return new S({vd:this.m_geometry.getDescription()})}}switch(this.m_geometry.getGeometryType()){case s.enumPoint:return this.bufferPoint();case s.enumMultiPoint:return this.bufferMultiPoint();case s.enumPolyline:return this.bufferPolyline();case s.enumPolygon:return this.bufferPolygon();case s.enumEnvelope:return this.bufferEnvelope();default:c("")}}bufferPolyline(){if(this.isDegenerateGeometry(this.m_geometry)){const e=new d;this.m_geometry.getPointByVal(0,e);const t=new R;return this.m_geometry.queryEnvelope(t),e.setXY(t.getCenter()),this.bufferDegeneratePath(e,!0)}const e=this.m_geometry,t=this.m_geometry.getDescription();this.m_geometry=null;const s=new U(e);let i,n;i=0===this.m_joins?(new q).executeMany(s,.25*this.m_densifyDist,!1,this.m_progressTracker):s,n=this.m_bRoundBuffer?(new L).executeMany(i,null,!0,this.m_progressTracker):i;const r=new J(this,n,this.m_bFilter),m=(new X).executeMany(r,this.m_spatialReference,this.m_progressTracker,2),o=(new Y).executeMany(m,this.m_spatialReference,!1,this.m_progressTracker).next();return null!==o?o:new S({vd:t})}bufferPolygon(){if(0===this.m_distance)return this.m_geometry;this.generateCircleTemplate();const e=(new Y).execute(this.m_geometry,null,!1,this.m_progressTracker);if(this.m_distance<0){if(this.m_geometry=e,this.m_geometry.isEmpty())return this.m_geometry;const t=this.m_geometry,s=this.bufferPolygonImpl(t,0,t.getPathCount());return(new Y).execute(s,this.m_spatialReference,!1,this.m_progressTracker)}{if(this.m_geometry=e,this.isDegenerateGeometry(this.m_geometry)){const e=new d;this.m_geometry.getPointByVal(0,e);const t=new R;return this.m_geometry.queryEnvelope(t),e.setXY(t.getCenter()),this.bufferDegeneratePath(e,!0)}const t=new H(this),s=(new X).executeMany(t,this.m_spatialReference,this.m_progressTracker,2),i=(new Y).executeMany(s,this.m_spatialReference,!1,this.m_progressTracker).next();return null!==i?i:new S({vd:this.m_geometry.getDescription()})}}bufferPolygonImpl(e,t,s){const i=e,n=i.getImpl();let r=new S({vd:e.getDescription()});for(let m=t;m<s;m++){if(n.getPathSize(m)<1)continue;const t=n.calculateRingArea2D(m),s=new R;if(n.queryPathEnvelope(m,s),this.m_distance>0)if(t>0)if(this.isDegeneratePath(n,m)){const e=new d;n.getPointByVal(n.getPathStart(m),e),e.setXY(s.getCenter()),r.add(this.bufferDegeneratePath(e,!0),!1)}else{const t=new M({vd:e.getDescription()}),s=t.getImpl();if(E(this.m_geometry,m)){const e=this.bufferConvexPath(i,m);r.add(e,!1)}else{this.bufferClosedPath(this.m_geometry,m,s,this.m_bRoundBuffer,1);const e=this.bufferCleanup(t);r.add(e,!1)}}else{if(s.width()+this.m_tolerance.total()<=2*this.m_absDistance||s.height()+this.m_tolerance.total()<=2*this.m_absDistance)continue;const t=new M({vd:e.getDescription()}),i=t.getImpl();if(this.bufferClosedPath(this.m_geometry,m,i,this.m_bRoundBuffer,1),!t.isEmpty()){const e=s,n=Math.max(1,this.m_absDistance),m=e.clone();m.inflateCoords(n,n),i.addEnvelope(m,!1);const o=this.bufferCleanup(t);r.reserve(r.getPointCount()+o.getPointCount()-4),se(o,r,m,!0)}}else if(t>0){if(s.width()+this.m_tolerance.total()<=2*this.m_absDistance||s.height()+this.m_tolerance.total()<=2*this.m_absDistance)continue;const t=new M({vd:e.getDescription()}),i=t.getImpl();if(this.bufferClosedPath(this.m_geometry,m,i,this.m_bRoundBuffer,-1),!t.isEmpty()){const e=new R;i.queryLooseEnvelope(e);const s=Math.max(1,this.m_absDistance),n=e.clone();n.inflateCoords(s,s),i.addEnvelope(n,!1);se(this.bufferCleanup(t),r,n,!0)}}else{const t=new M({vd:e.getDescription()}),s=t.getImpl();this.bufferClosedPath(this.m_geometry,m,s,this.m_bRoundBuffer,-1);const i=this.bufferCleanup(t);for(let e=0,n=i.getPathCount();e<n;e++)r.addPath(i,e,!0)}}if(this.m_distance>0){if(r.getPathCount()>1){return this.bufferCleanup(r)}return K(r)}{const e=new R;if(r.queryLooseEnvelope(e),r.isEmpty())return K(r);{const t=Math.max(1,this.m_absDistance),s=e.clone();s.inflateCoords(t,t),r.addEnvelope(s,!1);const i=this.bufferCleanup(r);r=new S;const n=new S({vd:i.getDescription()});return se(i,n,s,!1),K(n)}}}bufferPoint(){return this.bufferPointImpl(this.m_geometry)}bufferPointImpl(e){const t=new S({vd:e.getDescription()});return 0===this.m_caps?(this.addCircle(t.getImpl(),e),this.setStrongSimple(t)):2===this.m_caps?(this.addSquare(t.getImpl(),e),this.setStrongSimple(t)):t}bufferDegeneratePath(e,t){const s=new S({vd:e.getDescription()});return t&&0===this.m_joins||!t&&0===this.m_caps?(this.addCircle(s.getImpl(),e),this.setStrongSimple(s)):t||2!==this.m_caps?s:(this.addSquare(s.getImpl(),e),this.setStrongSimple(s))}bufferMultiPoint(){const e=new O(this,this.m_geometry,this.m_distance,this.m_spatialReference,this.m_joins,this.m_caps,this.m_miterLimit,this.m_densifyDist,this.m_maxVertexInCompleteCircle,this.m_progressTracker);return(new X).executeMany(e,this.m_spatialReference,this.m_progressTracker,2).next()}bufferEnvelope(){let e=new S({vd:this.m_geometry.getDescription()});if(this.m_distance<=0){if(0===this.m_distance)e.addEnvelope(this.m_geometry,!1),Q(this.m_geometry,this.m_tolerance.total())&&(e=this.setStrongSimple(e));else{const t=new p;this.m_geometry.queryEnvelope(t),t.inflateCoords(this.m_distance,this.m_distance),e.addEnvelope(t,!1),Q(t,this.m_tolerance.total())&&(e=this.setStrongSimple(e))}return e}if(1===this.m_joins){const t=new p({copy:this.m_geometry});return t.inflateCoords(this.m_absDistance,this.m_absDistance),e.addEnvelope(t,!1),e}const t=this.m_geometry.clone();if(0===t.width()||0===t.height()){if(0===t.width()&&0===t.height()){const e=new d({vd:this.m_geometry.getDescription()});return t.queryCornerByVal(0,e),this.m_geometry=e,this.bufferImpl()}const e=new M({vd:this.m_geometry.getDescription()}),s=new d;return t.queryCornerByVal(0,s),e.startPathPoint(s),t.queryCornerByVal(2,s),e.lineToPoint(s),this.m_geometry=e,this.bufferImpl()}return e.addEnvelope(this.m_geometry,!1),this.m_geometry=e,this.bufferConvexPath(e,0)}bufferConvexPath(e,t){this.generateCircleTemplate();const s=e.hasAttribute(10),i=new S({vd:e.getDescription()}),n=i.getImpl();i.reserve((this.m_circleTemplate.length/10+4)*e.getPathSize(t));const r=new x,m=new x,o=new x,a=new x(0,0),h=new x,l=new x,u=e.getImpl(),f=e.getPathSize(t),_=e.getPathStart(t);for(let g=0,d=e.getPathSize(t);g<d;g++){const e=u.getXY(_+g),t=u.getXY(_+(g+1)%f),i=u.getXY(_+(g+2)%f);h.setSub(t,e),0===h.length()&&c("");const d=s&&!!(1&u.getAttributeAsInt(10,(g+1)%f,0));h.normalize();const p=h.clone();h.leftPerpendicularThis(),h.scale(this.m_absDistance),r.setAdd(h,e),m.setAdd(h,t),0===g?n.startPath(r):n.lineTo(r),n.lineTo(m),l.setSub(i,t),0===l.length()&&c(""),l.normalize();const b=l.clone();l.leftPerpendicularThis(),l.scale(this.m_absDistance),o.setAdd(l,t);let y=j.enumArc;const P=d?0:this.m_joins;if(2===P)y=j.enumBevel;else if(1===P){const e=-p.crossProduct(b);a.setSub(p,b),a.scale(this.m_absDistance/e),a.length()<this.m_miterLimit*this.m_absDistance?(a.addThis(t),y=j.enumMiter):y=j.enumBevel}else a.assign(t);this.addJoin(y,n,a,m,o,!1,!1)}return K(i)}bufferPolylinePath(e,t,s){this.generateCircleTemplate();const i=e,n=i.getImpl();if(n.getPathSize(t)<1)return null;let r;if(r=this.m_bRoundBuffer?n.isClosedPathInXYPlane(t):n.isClosedPath(t),this.isDegeneratePath(n,t)&&this.m_distance>0){const e=new d;n.getPointByVal(n.getPathStart(t),e);const s=new R;return n.queryPathEnvelope(t,s),e.setXY(s.getCenter()),this.bufferDegeneratePath(e,r)}const m=new M({vd:e.getDescription()});m.reserve((Math.trunc(this.m_circleTemplate.length/10)+4)*n.getPathSize(t));const o=m.getImpl();return r?2!==this.bufferClosedPath(i,t,o,s,1)&&this.bufferClosedPath(i,t,o,s,-1):this.bufferOpenPath(i,t,o,s),this.bufferCleanup(m)}progress_(){}bufferCleanup(e,t=!1){const s=t?this.m_tolerance:this.m_smallTolerance;return F(e,s,!0,!t,-1,this.m_progressTracker,0,!1)}calcN(){const e=4;if(0===this.m_densifyDist)return this.m_maxVertexInCompleteCircle;const t=1-this.m_densifyDist*Math.abs(this.m_absDistanceReversed);let s=e;return s=t<-1?e:2*Math.PI/Math.acos(t)+.5,s<e?s=e:s>this.m_maxVertexInCompleteCircle&&(s=this.m_maxVertexInCompleteCircle),Math.trunc(s)}addJoin(e,t,s,i,n,r,m){if(this.generateCircleTemplate(),r&&(t.startPath(i),r=!1),e===j.enumBevel)return void(m&&t.lineTo(n));if(e===j.enumMiter){const e=s.clone();return t.lineTo(e),void(m&&t.lineTo(n))}const o=new x;o.setSub(i,s),o.scale(this.m_absDistanceReversed);const a=new x;a.setSub(n,s),a.scale(this.m_absDistanceReversed);let h=Math.atan2(o.y,o.x)/this.m_dA;h<0&&(h=this.m_circleTemplate.length+h),h=this.m_circleTemplate.length-h;let l=Math.atan2(a.y,a.x)/this.m_dA;l<0&&(l=this.m_circleTemplate.length+l),l=this.m_circleTemplate.length-l,l<h&&(l+=this.m_circleTemplate.length);let c=Math.trunc(l),u=Math.ceil(h),f=this.m_circleTemplate[u%this.m_circleTemplate.length].clone();f.scaleAddThis(this.m_absDistance,s);const _=10*this.m_tolerance.total();f.sub(i).length()<_&&(u+=1),f=this.m_circleTemplate[c%this.m_circleTemplate.length].clone(),f.scaleAddThis(this.m_absDistance,s),f.sub(n).length()<_&&(c-=1);let g=c-u;g++;for(let d=0,p=u%this.m_circleTemplate.length;d<g;d++,p=(p+1)%this.m_circleTemplate.length)f=this.m_circleTemplate[p].clone(),f.scaleAddThis(this.m_absDistance,s),t.lineTo(f),this.progress_();m&&t.lineTo(n)}bufferClosedPath(e,t,s,i,n){const r=new V,m=r.addPathFromMultiPath(e,t,!0);return this.bufferClosedPathImpl(r,m,s,i,n)}bufferClosedPathImpl(e,t,s,i,n){const r=e.getFirstVertex(e.getFirstPath(t)),m=new d;e.queryPoint(r,m),e.filterClosePoints(this.m_filterTolerance,!1,!1,!1,-1);if(e.getPointCount(t)<2)return n<0?0:(this.m_bRoundBuffer&&this.addCircle(s,m),2);u(e.getFirstPath(t)!==k),u(e.getFirstVertex(e.getFirstPath(t))!==k);const o=e.getXY(e.getFirstVertex(e.getFirstPath(t))),a=new A;if(a.setShift(o.negate()),e.applyTransformation(a),i){const i=te(e,t,n,!0,this.m_absDistance,this.m_filterTolerance,this.m_densifyDist);if(u(1===i),e.getPointCount(t)<2)return n<0?0:(this.addCircle(s,m),2)}const h=0!==this.m_joins&&e.getVertexDescription().hasAttribute(10);this.m_bufferCommands.length=0;const l=e.getFirstPath(t);let c=e.getFirstVertex(l),f=1===n?e.getPrevVertex(c):e.getNextVertex(c),_=1===n?e.getNextVertex(c):e.getPrevVertex(c),g=!0;const p=new x,b=new x,y=new x,P=new x,C=new x,D=new x,w=new x,T=new x,v=this.m_absDistance,I=e.getPathSize(l),S=new x(0,0);for(let u=0;u<I;u++){b.assign(e.getXY(_)),g&&(p.assign(e.getXY(c)),y.assign(e.getXY(f)),D.setSub(p,y),D.normalize(),T.leftPerpendicularOther(D),T.scale(v),P.setAdd(T,p));const t=h&&!!(1&e.getAttributeAsDbl(10,c,0));C.setSub(b,p),C.normalize(),w.leftPerpendicularOther(C),w.scale(v);const s=new x;s.setAdd(p,w);const i=D.crossProduct(C),r=D.dotProduct(C);if(i<0||r<0&&i<Math.abs(r)*Number.EPSILON*8){let e=!1;const n=t?0:this.m_joins;if(1===n){const t=-i;S.setSub(D,C),S.scale(this.m_absDistance/t),S.length()<this.m_miterLimit*this.m_absDistance&&(S.addThis(p),e=!0),this.m_bufferCommands.push(G(P,s,S,e?j.enumMiter:j.enumBevel,this.m_bufferCommands.length+1))}else this.m_bufferCommands.push(G(P,s,p,0===n?j.enumArc:j.enumBevel,this.m_bufferCommands.length+1))}else P.equals(s)||(this.m_bufferCommands.push(N(P,p,this.m_bufferCommands.length+1)),this.m_bufferCommands.push(N(p,s,this.m_bufferCommands.length+1)));const m=new x;m.setAdd(b,w),this.m_bufferCommands.push(G(s,m,p,j.enumLine,this.m_bufferCommands.length+1)),P.setCoordsPoint2D(m),T.setCoordsPoint2D(w),y.setCoordsPoint2D(p),p.setCoordsPoint2D(b),D.setCoordsPoint2D(C),f=c,c=_,g=!1,_=1===n?e.getNextVertex(c):e.getPrevVertex(c)}return this.m_bufferCommands.at(-1).m_next=0,this.processBufferCommands(s),a.setShift(o),s.applyTransformationToPath(a,s.getPathCount()-1),1}bufferOpenPath(e,t,s,i){if(this.m_bRoundBuffer){const n=new M({vd:e.getDescription()});return n.addPath(e,t,!1),n.addSegmentsFromPath(e,t,0,e.getSegmentCountPath(t),!1),this.bufferClosedPath(n,0,s,i,1)}let n=0;const r=new M({vd:e.getDescription()}),m=new x(0,0);{const i=new V,o=i.addPathFromMultiPath(e,t,!1),a=i.getFirstVertex(i.getFirstPath(o)),h=new d;i.queryPoint(a,h),m.assign(h.getXY()),i.filterClosePoints(0,!1,!1,!1,-1);if(i.getPointCount(o)<2)return this.m_bRoundBuffer&&this.addCircle(s,h),2;const l=i.getGeometry(i.getFirstGeometry());r.addPath(l,0,!1),n=r.getPointCount()-1,r.addSegmentsFromPath(l,0,0,l.getSegmentCountPath(0)-1,!1)}const o=new V,a=o.addPathFromMultiPath(r,0,!0);u(o.getFirstPath(a)!==k),u(o.getFirstVertex(o.getFirstPath(a))!==k);const h=new A;h.setShift(m.negate()),o.applyTransformation(h),this.m_bufferCommands.length=0;const l=o.getFirstPath(a),c=0!==this.m_joins&&o.getVertexDescription().hasAttribute(10);let f=o.getFirstVertex(l),_=o.getPrevVertex(f),g=o.getNextVertex(f),p=!0;const b=new x,y=new x,P=new x,C=new x,D=new x,w=new x,T=new x,v=new x,I=this.m_absDistance,S=o.getPathSize(l),E=new x(0,0);for(let u=0;u<S;u++){let e=!1;0!==u&&u!==n||(e=!0),y.assign(o.getXY(g)),p&&(b.assign(o.getXY(f)),P.assign(o.getXY(_)),w.setSub(b,P),w.normalize(),v.leftPerpendicularOther(w),v.scale(I),C.setAdd(v,b));const t=c&&!!(1&o.getAttributeAsDbl(10,f,0));D.setSub(y,b),D.normalize(),T.leftPerpendicularOther(D),T.scale(I);const s=new x;s.setAdd(b,T);const i=w.crossProduct(D),r=w.dotProduct(D);if(i<0||r<0&&i<Math.abs(r)*Number.EPSILON*8)if(e)if(0===this.m_caps)this.m_bufferCommands.push(G(C,s,b,j.enumArc,this.m_bufferCommands.length+1));else if(1===this.m_caps)this.m_bufferCommands.push(G(C,s,b,j.enumLine,this.m_bufferCommands.length+1));else{const e=D.mul(this.m_absDistance).negate(),t=e.clone();e.addThis(C),t.addThis(s),this.m_bufferCommands.push(G(C,e,b,j.enumLine,this.m_bufferCommands.length+1)),this.m_bufferCommands.push(G(e,t,b,j.enumLine,this.m_bufferCommands.length+1)),this.m_bufferCommands.push(G(t,s,b,j.enumLine,this.m_bufferCommands.length+1))}else{let e=!1;const n=t?0:this.m_joins;if(1===n){const t=-i;E.setSub(w,D),E.scale(this.m_absDistance/t),E.length()<this.m_miterLimit*this.m_absDistance&&(E.addThis(b),e=!0),this.m_bufferCommands.push(G(C,s,E,e?j.enumMiter:j.enumBevel,this.m_bufferCommands.length+1))}else this.m_bufferCommands.push(G(C,s,b,0===n?j.enumArc:j.enumBevel,this.m_bufferCommands.length+1))}else C.equals(s)||(this.m_bufferCommands.push(N(C,b,this.m_bufferCommands.length+1)),this.m_bufferCommands.push(N(b,s,this.m_bufferCommands.length+1)));const m=new x;m.setAdd(y,T),this.m_bufferCommands.push(G(s,m,b,j.enumLine,this.m_bufferCommands.length+1)),C.setCoordsPoint2D(m),v.setCoordsPoint2D(T),P.setCoordsPoint2D(b),b.setCoordsPoint2D(y),w.setCoordsPoint2D(D),_=f,f=g,p=!1,g=o.getNextVertex(f)}return this.m_bufferCommands.at(-1).m_next=0,this.processBufferCommands(s),h.setShift(m),s.applyTransformationToPath(h,s.getPathCount()-1),1}processBufferCommands(e){const t=this.cleanupBufferCommands();let s=!0,i=t+1;for(let n=t;i!==t;n=i){const t=this.m_bufferCommands[n];i=-1!==t.m_next?t.m_next:(n+1)%this.m_bufferCommands.length,t.m_type&&(s&&(e.startPath(t.m_from),s=!1),t.m_type&j.enumJoinMask?this.addJoin(t.m_type,e,t.m_center,t.m_from,t.m_to,!1,!0):e.lineTo(t.m_to))}}cleanupBufferCommands(){this.m_helperArray=P(x,9);let e=0;for(let s=0,i=this.m_bufferCommands.length;s<i;){const t=this.m_bufferCommands[s];if(t.m_type&j.enumConnectionMask){e=s;break}s=t.m_next}let t=e+1;for(let s=e;t!==e;s=t){const e=this.m_bufferCommands[s];t=e.m_next;let i=1,n=null;for(;t!==s&&(n=this.m_bufferCommands[t],!(n.m_type&j.enumConnectionMask));)t=n.m_next,i++;if(1!==i&&(e.m_type&n.m_type)===j.enumLine){this.m_helperLine1.setStartXY(e.m_from),this.m_helperLine1.setEndXY(e.m_to),this.m_helperLine2.setStartXY(n.m_from),this.m_helperLine2.setEndXY(n.m_to);1===this.m_helperLine1.intersect(this.m_helperLine2,this.m_helperArray,null,null,this.m_smallTolerance.total())&&(e.m_to.assign(this.m_helperArray[0]),n.m_from.assign(this.m_helperArray[0]),e.m_next=t)}}return e}isDegeneratePath(e,t){if(1===e.getPathSize(t))return!0;if(0===this.m_joins&&0===this.m_caps){const s=new R;if(e.queryPathEnvelope(t,s),Math.max(s.width(),s.height())<.5*this.m_densifyDist)return!0}return!1}isDegenerateGeometry(e){if(0===this.m_joins&&0===this.m_caps){const t=new R;if(e.queryEnvelope(t),Math.max(t.width(),t.height())<.5*this.m_densifyDist)return!0}return!1}addCircle(e,t){const s=t.getXY();if(0!==this.m_circleTemplate.length){let t=this.m_circleTemplate[0].clone();t.scaleAddThis(this.m_absDistance,s),e.startPath(t);for(let i=1,n=this.m_circleTemplate.length;i<n;i++)t=this.m_circleTemplate[i].clone(),t.scaleAddThis(this.m_absDistance,s),e.lineTo(t);return}const i=this.m_circleTemplateSize,n=Math.trunc((i+3)/4),r=.5*Math.PI/n;e.reserve(4*n);const m=Math.cos(r),o=Math.sin(r);for(let a=3;a>=0;a--){const t=x.construct(0,this.m_absDistance);switch(a){case 0:for(let i=0;i<n;i++)e.lineToCoords(t.x+s.x,t.y+s.y),t.rotateReverse(m,o);break;case 1:for(let i=0;i<n;i++)e.lineToCoords(-t.y+s.x,t.x+s.y),t.rotateReverse(m,o);break;case 2:for(let i=0;i<n;i++)e.lineToCoords(-t.x+s.x,-t.y+s.y),t.rotateReverse(m,o);break;default:e.startPathCoords(t.y+s.x,-t.x+s.y);for(let i=1;i<n;i++)t.rotateReverse(m,o),e.lineToCoords(t.y+s.x,-t.x+s.y)}this.progress_()}}addSquare(e,t){const s=new p({vd:t.getDescription()});s.setCoords(t.getX(),t.getY(),t.getX(),t.getY()),s.inflateCoords(this.m_absDistance,this.m_absDistance),e.addEnvelope(s,!1)}setStrongSimple(e){return e.getImpl().setIsSimple(4,this.m_tolerance.total()),e.getImpl().updateOGCFlagsProtected(),e}}function K(e){return b(e,0),e}function Q(e,t){return!!e.isEmpty()||Math.min(e.width(),e.height())>t}function Z(e,t,s,i,n,r,m,o){const a=e.getXY(s),h=e.getXY(i);if(a.equals(h))return-1;const l=.25*m,c=.25*m,f=new x;f.setSub(h,a);const _=f.length(),g=_*_*.25,d=r*r-g;if(d<=g)return-1;const p=Math.sqrt(d);f.normalize();const b=f.clone();b.rightPerpendicularThis();const y=g/p,P=y<=c,C=x.lerp(h,a,.5),D=b.clone(),v=y-l;D.scaleAddThis(Math.max(0,v),C);b.negate().scaleAddThis(p,C);const I=3.61*T(r-c),S=D.sub(a),M=D.sub(h);let E=!1,V=0;const k=w(64,0);u(o===k.length);{for(let o=e.getPrevVertexEx(i,n);o!==s;){if(1===e.getUserIndex(o,t))return-1;if(e.getXY(o).equals(h)){const t=e.getPrevVertexEx(o,n);e.removeVertex(o,!1),o=t;continue}break}const r=new x,m=a.clone();k[V++]=1;for(let o=e.getNextVertexEx(s,n);o!==i;){if(1===e.getUserIndex(o,t))return-1;const s=e.getXY(o);if(s.equals(m)){const t=e.getNextVertexEx(o,n);e.removeVertex(o,!1),o=t;continue}k[V++]=0;const i=new x;if(i.setSub(s,a),i.dotProduct(b)<0)return 0;(x.sqrDistance(s,a)>I||x.sqrDistance(s,h)>I)&&(E=!0);let l=0;s.sub(a).crossProduct(S)>=0&&(l=1);if(s.sub(h).crossProduct(M)<=0&&(l|=2),0===l)return 0;k[V-1]=l,r.assign(m),m.assign(s),o=e.getNextVertexEx(o,n)}if(1===V)return 0;u(V<k.length),k[V++]=2}let R=!0;for(let u=1,x=0;u<V;u++)if(k[u]!==k[u-1]&&(x++,R=x<3&&(1===x&&3===k[u]||2===x&&2===k[u]),!R))return 0;if(V>2&&R&&(3===V||!E)){let t=0,r=e.getNextVertexEx(s,n);for(P||(e.setXY(r,D),r=e.getNextVertexEx(r,n));r!==i;){const s=e.getNextVertexEx(r,n);e.removeVertex(r,!1),r=s,++t}return t}if(u(3!==V),E&&V>3)return 0;const A=a.clone();let B=s;const X=a.clone();let Y=1,F=-1,L=B,q=0;for(V=1;L!==i;){L=e.getNextVertexEx(L,n);const t=k[V++];if(0===t){if(L===i)break;continue}const s=e.getXY(L);if(-1!==F){if(3&(F&Y&t)){e.removeVertex(B,!0),q++,B=L,X.setCoordsPoint2D(s),Y=t;continue}if(3===Y&&0!==F&&0!==t){if(X.setCoordsPoint2D(D),P||X.equals(A)){e.removeVertex(B,!0),q++,B=L,X.setCoordsPoint2D(s),Y=t;continue}e.setXY(B,X)}}F=Y,A.setCoordsPoint2D(X),B=L,Y=t,X.setCoordsPoint2D(s)}return q}function $(e,t,s,i){let n=-1;const r=new x,m=new x,o=new x;for(let a=0,h=e.getPathSize(i),l=e.getFirstVertex(i);a<h;++a){-1===n&&(e.queryXY(l,m),n=e.getPrevVertex(l),-1!==n&&(e.queryXY(n,r),o.setSub(m,r),o.normalize()));const s=e.getNextVertex(l);if(-1===s)break;const i=e.getXY(s),a=i.sub(m);if(a.normalize(),-1!==n){a.dotProduct(o)<-.99&&Math.abs(a.crossProduct(o))<1e-7&&e.setUserIndex(l,t,1)}n=l,l=s,r.assign(m),m.assign(i),o.assign(a)}}function ee(s,i,n,r,m,o,a){const h={stack:[],error:void 0,hasError:!1};try{const t=s.getFirstPath(i),r=s.createUserIndex();e(h,D(()=>{s.removeUserIndex(r)},!1),!1),$(s,r,i,t);for(let e=0;e<100;++e){if(0===s.getPathSize(t))return 1;let e=s.getFirstVertex(t),i=s.getPathSize(t);if(i<3)return 1;s.isClosedPath(t)||(i-=1);const o=64;let h=0,l=!1;for(let t=0;t<i&&e!==k;t++){let c=0,u=e;for(let h=1,l=Math.min(o,i-t);h<l;h++)if(u=s.getNextVertexEx(u,n),h>1){const t=Z(s,r,e,u,n,m,a,o);if(-1===t)break;c+=t,i-=t}if(h+=c,l=c>0,l){const t=s.getPrevVertexEx(e,n);if(-1!==t){e=t,i++;continue}}e=s.getNextVertexEx(e,n)}if(0===h)break}return s.filterClosePoints(o,!1,!1,!1,-1),1}catch(l){h.error=l,h.hasError=!0}finally{t(h)}}function te(e,t,s,i,n,r,m){return ee(e,t,s,i,n,r,m)}function se(e,t,s,i){for(let n=0,r=e.getPathCount();n<r;n++){const r=e.getXY(e.getPathStart(n));r.x!==s.xmin&&r.x!==s.xmax&&t.addPath(e,n,i)}}export{W as B,z as s};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{__addDisposableResource as e,__disposeResources as t}from"tslib";import{G as n,v as i}from"./Geometry.js";import{S as r,P as s,s as o}from"./MultiPathImpl.js";import{E as m}from"./UnitFactory.js";import{P as a,c as u,s as c,i as h,h as l,j as g,d as y}from"./Point2D.js";import{Envelope2D as _}from"./Envelope2D.js";import{P as D,E as p}from"./Envelope.js";function v(){return{outPoint:new a,index:-1,t:Number.NaN}}function N(e,t,n){return{outPoint:e.clone(),index:t,t:n}}function f(e,t,n,i){e.outPoint.assign(t),e.index=n,e.t=i}function P(e,t){e.outPoint.assign(t.outPoint),e.index=t.index,e.t=t.t}function I(e,t,n,i){e.index=n,e.t=i,t.queryCoord2D(e.t,e.outPoint)}function d(e,t){const n=v();P(n,e),P(e,t),P(t,n)}function q(e,t,i,r,s,o){if(e.getGeometryType()===n.enumPolygon){for(;r.nextPath();)if(r.hasNextSegment()){const t=r.nextSegment();if(0!==m(e,t.getEndXY(),0))return f(s,t.getEndXY(),-1,Number.NaN),f(o,t.getEndXY(),-1,Number.NaN),!0}r.resetToFirstPath()}if(t.getGeometryType()===n.enumPolygon){for(;i.nextPath();)if(i.hasNextSegment()){const e=i.nextSegment();if(0!==m(t,e.getEndXY(),0))return f(s,e.getEndXY(),-1,Number.NaN),f(o,e.getEndXY(),-1,Number.NaN),!0}i.resetToFirstPath()}return!1}function M(e){const t=e.getPathCount(),n=y(e.getSegmentCount(),0);let i=0;for(let r=0;r<t;++r){const t=i+e.getSegmentCountPath(r);for(let s=i,o=e.getPathStart(r);s<t;++s,++o)n[s]=o;i=t}return o(e.getPointCount(),n),n}function x(e,t){return!!Number.isNaN(t)||e<=t}function E(e){const t=new s;return t.addEnvelope(e,!1),t}class b{m_progressTracker;m_env2DgeometryA=null;m_env2DgeometryB=null;m_maxSqrDistance;m_maxDistance;m_progressCounter=0;m_bIsNearCalc;constructor(e,t){if(this.m_progressTracker=t,this.m_maxSqrDistance=e*e,this.m_maxDistance=e,this.m_bIsNearCalc=!1,Number.isNaN(this.m_maxDistance)?this.m_maxDistance=Number.POSITIVE_INFINITY:this.m_maxDistance=e,this.m_maxSqrDistance=this.m_maxDistance*this.m_maxDistance,Number.isFinite(this.m_maxSqrDistance)){let e=Math.sqrt(this.m_maxSqrDistance);for(;e<this.m_maxDistance;)this.m_maxSqrDistance*=1+Number.EPSILON,e=Math.sqrt(this.m_maxSqrDistance)}}calculate(e,t,n,i){if(e.getGeometryType()!==D.type||t.getGeometryType()!==D.type){this.m_env2DgeometryA=new _,this.m_env2DgeometryB=new _,e.queryEnvelope(this.m_env2DgeometryA),t.queryEnvelope(this.m_env2DgeometryB);if(!x(this.m_env2DgeometryA.distanceFromEnvelope(this.m_env2DgeometryB),this.m_maxDistance))return Number.POSITIVE_INFINITY}const r=N(new a,g(),Number.NaN),s=N(new a,g(),Number.NaN),o=this._ExecuteBruteForce(e,t,r,s);return x(o,this.m_maxDistance)?(null!==n&&P(n,r),null!==i&&P(i,s),o):Number.POSITIVE_INFINITY}isNear(e,t){if(this.m_bIsNearCalc=!0,e.isEmpty()||t.isEmpty())return!1;if(e===t)return!0;let n=!0;if(e.getGeometryType()!==D.type&&e.getGeometryType()!==p.type||t.getGeometryType()!==D.type&&t.getGeometryType()!==p.type||(n=!1),n){if(this.m_env2DgeometryA=new _,this.m_env2DgeometryB=new _,e.queryEnvelope(this.m_env2DgeometryA),t.queryEnvelope(this.m_env2DgeometryB),!(this.m_env2DgeometryA.sqrMaxMinDistanceEnvelope(this.m_env2DgeometryB)>this.m_maxSqrDistance))return!0;if(this.m_env2DgeometryA.sqrDistanceEnvelope(this.m_env2DgeometryB,null,null)>this.m_maxSqrDistance)return!1}const i=N(new a,g(),Number.NaN),r=N(new a,g(),Number.NaN);return this._ExecuteBruteForce(e,t,i,r)<=this.m_maxDistance}progress_(e=!1){}_ExecuteBruteForce(e,t,i,r){switch(e.getGeometryType()){case n.enumPoint:return this.distancePointGeometry(e,t,i,r);case n.enumMultiPoint:return this.distanceMultipointGeometry(e,t,i,r);case n.enumEnvelope:return this.distanceEnvelopeGeometry(e,t,i,r);case n.enumPolyline:case n.enumPolygon:return this.distanceMultipathGeometry(e,t,i,r);default:return Number.NaN}}distancePointGeometry(e,t,i,r){switch(t.getGeometryType()){case n.enumPoint:return this.distancePointPoint(e,t,i,r);case n.enumMultiPoint:return this.distancePointMultipoint(e,t,i,r);case n.enumPolyline:case n.enumPolygon:return this.distancePointMultipath(e,t,i,r);case n.enumEnvelope:return this.distancePointEnvelope(e,t,i,r);default:return Number.NaN}}distancePointPoint(e,t,n,i){const r=e.getXY(),s=t.getXY();return f(n,r,0,0),f(i,s,0,0),Math.sqrt(a.sqrDistance(r,s))}distancePointMultipoint(e,t,n,i){const r=e.getXY();let s=this.m_maxSqrDistance,o=s,m=!1;const u=t.getPointCount(),c=new a;for(let h=0;h<u;++h)if(t.queryXY(h,c),o=a.sqrDistance(r,c),this.m_bIsNearCalc){if(o<=s)return 0}else if(!(o>s)&&(!m&&o===s||o<s)&&(s=o,f(n,r,0,0),f(i,c,h,0),m=!0,0===s))return 0;return m?Math.sqrt(s):Number.POSITIVE_INFINITY}distancePointMultipath(e,t,i,r){const s=!this.m_env2DgeometryA.isIntersecting(this.m_env2DgeometryB),o=e.getXY();if(!s&&t.getGeometryType()===n.enumPolygon&&0!==m(t,o,0))return f(i,o,0,0),f(r,o,-1,Number.NaN),0;t.getImpl().getAccelerators();let u=this.m_maxSqrDistance,c=u,h=-1;const l=new _,g=t.querySegmentIterator();let y=!1;for(;g.nextPath();)for(;g.hasNextSegment();){const e=g.nextSegment();e.queryEnvelope(l);const t=l.sqrDistance(o);if(t>u)continue;if(!this.m_bIsNearCalc&&y&&t===u)continue;h=e.getClosestCoordinate(o,!1);const n=e.getCoord2D(h);if(c=a.sqrDistance(o,n),this.m_bIsNearCalc){if(c<=u)return 0}else if(!(c>u)&&(!y||c<u)&&(u=c,f(i,o,0,0),f(r,n,g.getStartPointIndex(),h),y=!0,0===u))return 0}return y?Math.sqrt(u):Number.POSITIVE_INFINITY}distancePointEnvelope(e,t,n,i){const r=e.getXY();f(n,r,0,0),f(i,r,-1,Number.NaN);const s=t.asEnvelope2D();return!s.contains(r)?Math.sqrt(s.sqrDistance(r,i.outPoint)):0}distanceMultipointGeometry(e,t,i,r){switch(t.getGeometryType()){case n.enumPoint:{this.m_env2DgeometryB=u(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB);const n=this.distancePointMultipoint(t,e,r,i);return this.m_env2DgeometryB=u(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB),n}case n.enumMultiPoint:return this.distanceMultipointMultipoint(e,t,i,r,1,1);case n.enumPolyline:case n.enumPolygon:return this.distanceMultipointMultipath(e,t,i,r);case n.enumEnvelope:return this.distanceMultipointMultipath(e,E(t),i,r);default:return Number.NaN}}distanceMultipointMultipoint(n,i,r,s,o,m){const g={stack:[],error:void 0,hasError:!1};try{if(this.m_bIsNearCalc&&1===o&&1===m){const e=Math.trunc(c(Math.sqrt(n.getPointCount())+1,1,h())),t=Math.trunc(c(Math.sqrt(i.getPointCount())+1,1,h()));if((e>=4||t>=4)&&this.distanceMultipointMultipoint(n,i,r,s,e,t)<=this.m_maxSqrDistance)return 0}let t=this.m_maxSqrDistance;const y=[n],_=[i],D=this.swapGeometriesIfBGtA(y,_);D&&(this.m_env2DgeometryB=u(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB),m=u(o,o=m),d(r,s)),e(g,l(()=>{d(r,s),this.m_env2DgeometryB=u(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB)},!D),!1);const p=y[0].getImpl(),v=_[0].getImpl(),N=p.getPointCount(),P=v.getPointCount(),I=P>1;let q=!1;const M=new a,x=new a;for(let e=0;e<N;e+=o){if(p.queryXY(e,M),I){const e=this.m_env2DgeometryB.sqrDistance(M);if(this.m_bIsNearCalc){if(e>t)continue;if(this.m_env2DgeometryB.sqrMaxMinDistance(M)<=t)return 0}else if(e>=t)continue}for(let n=0;n<P;n+=m){v.queryXY(n,x);const i=a.sqrDistance(M,x);if(this.m_bIsNearCalc){if(i<=t)return 0}else if(!(i>t||q&&i===t)&&(!q||i<t)&&(f(r,M,e,0),f(s,x,n,0),q=!0,t=i,0===t))return q?Math.sqrt(t):Number.POSITIVE_INFINITY}}return q?Math.sqrt(t):Number.POSITIVE_INFINITY}catch(y){g.error=y,g.hasError=!0}finally{t(g)}}distanceMultipointMultipath(e,t,i,r){let s=!!this.m_env2DgeometryA.isIntersecting(this.m_env2DgeometryB)&&t.getGeometryType()===n.enumPolygon;const o=t.querySegmentIterator();o.stripAttributes();const u=new _,c=new a;let h=this.m_maxSqrDistance;const l=e.getImpl(),g=l.getPointCount(),y=g>1;let D=!1;for(;o.nextPath();)for(;o.hasNextSegment();){const e=o.nextSegment();if(e.queryLooseEnvelope(u),y){const e=u.sqrDistanceEnvelope(this.m_env2DgeometryA,null,null);if(this.m_bIsNearCalc){if(e>h)continue}else if(e>h||D&&e===h)continue}for(let n=0;n<g;n++){if(l.queryXY(n,c),s&&0!==m(t,c,0))return f(i,c,-1,Number.NaN),f(r,c,n,0),0;{const e=u.sqrDistance(c);if(this.m_bIsNearCalc){if(e>h)continue}else if(e>h)continue}const a=e.getClosestCoordinate(c,!1),g=e.getCoord2D(a);c.subThis(g);const y=c.sqrLength();if(this.m_bIsNearCalc){if(y<=h)return 0}else if(!(y>h)&&(!D||y<h)&&(h=y,f(i,l.getXY(n),n,0),f(r,g,o.getStartPointIndex(),a),D=!0,0===h))return 0}s=!1}return D?Math.sqrt(h):Number.POSITIVE_INFINITY}distanceEnvelopeGeometry(e,t,i,r){switch(t.getGeometryType()){case n.enumPoint:return this.distancePointEnvelope(t,e,r,i);case n.enumMultiPoint:{this.m_env2DgeometryB=u(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB);const n=this.distanceMultipointMultipath(t,E(e),r,i);return this.m_env2DgeometryB=u(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB),n}case n.enumPolyline:case n.enumPolygon:return this.distanceMultipathMultipath(E(e),t,i,r);case n.enumEnvelope:return this.distanceEnvelopeEnvelope(e,t,i,r);default:return Number.NaN}}distanceEnvelopeEnvelope(e,t,n,i){n.t=Number.NaN,n.index=-1,i.t=Number.NaN,i.index=-1;const r=e.asEnvelope2D(),s=t.asEnvelope2D();return Math.sqrt(r.sqrDistanceEnvelope(s,n.outPoint,i.outPoint))}distanceMultipathGeometry(e,t,i,r){switch(t.getGeometryType()){case n.enumPoint:{this.m_env2DgeometryB=u(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB);const n=this.distancePointMultipath(t,e,r,i);return this.m_env2DgeometryB=u(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB),n}case n.enumMultiPoint:{this.m_env2DgeometryB=u(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB);const n=this.distanceMultipointMultipath(t,e,r,i);return this.m_env2DgeometryB=u(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB),n}case n.enumPolyline:case n.enumPolygon:return this.distanceMultipathMultipath(e,t,i,r);case n.enumEnvelope:return this.distanceMultipathMultipath(e,E(t),i,r);default:return Number.NaN}}distanceMultipathMultipath(n,i,s,o){const m={stack:[],error:void 0,hasError:!1};try{const t=[n],a=[i],g=this.swapGeometriesIfAGtB(t,a);g&&(this.m_env2DgeometryB=u(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB),d(s,o)),e(m,l(()=>{d(s,o),this.m_env2DgeometryB=u(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB)},!g),!1);const y=t[0],D=a[0],p=y.querySegmentIterator();p.stripAttributes();const N=D.querySegmentIterator();if(N.stripAttributes(),this.m_bIsNearCalc&&this.m_env2DgeometryA.sqrMaxMinDistanceEnvelope(this.m_env2DgeometryB)<=this.m_maxSqrDistance)return 0;if(this.m_bIsNearCalc){const e=Math.trunc(c(Math.sqrt(y.getPointCount())+1,1,h())),t=Math.trunc(c(Math.sqrt(y.getPointCount())+1,1,h()));if(this.distanceMultipointMultipoint(y,D,s,o,e,t)<=this.m_maxSqrDistance)return 0}if(!!this.m_env2DgeometryA.isIntersecting(this.m_env2DgeometryB)){const e=v(),t=v();if(q(y,D,p,N,e,t))return P(s,e),P(o,t),0}const f=M(y),x=[],E=new r,b=new _,S=new _,B=new _;let A=this.m_maxSqrDistance,T=!0,C=!1;for(let e=0,n=f.length;e<n;++e){y.querySegment(f[e],E,!0);const t=E.get();if(t.queryEnvelope(b),!(b.sqrDistanceEnvelope(this.m_env2DgeometryB,null,null)>A)){if(this.m_bIsNearCalc&&b.sqrMaxDistanceEnvelope(this.m_env2DgeometryB)<=A)return 0;for(;N.nextPath();){if(this.progress_(),T)D.queryPathEnvelope(N.getPathIndex(),B),x[N.getPathIndex()]=B.clone();else if(b.sqrDistanceEnvelope(x[N.getPathIndex()],null,null)>A)continue;for(;N.hasNextSegment();){const n=N.nextSegment();if(n.queryEnvelope(S),b.sqrDistanceEnvelope(S,null,null)<=A){const i=!b.isIntersecting(S),r=[0],m=[0];let a=t.distance(n,i,r,m);if(a*=a,this.m_bIsNearCalc&&a<=this.m_maxSqrDistance)return 0;if(a<A||a===A&&f[e]<s.index){if(C=!0,I(s,t,f[e],r[0]),I(o,n,N.getStartPointIndex(),m[0]),0===a)return 0;A=a}}}}N.resetToFirstPath(),T=!1}}return C?Math.sqrt(A):Number.POSITIVE_INFINITY}catch(a){m.error=a,m.hasError=!0}finally{t(m)}}swapGeometriesIfAGtB(e,t){return i(e[0])>i(t[0])&&(t[0]=u(e[0],e[0]=t[0]),!0)}swapGeometriesIfBGtA(e,t){return this.swapGeometriesIfAGtB(t,e)}}export{b as D,v as m,M as s,q as w};
|
|
2
|
+
import{__addDisposableResource as e,__disposeResources as t}from"tslib";import{G as n,v as i}from"./Geometry.js";import{S as r,P as s,s as o}from"./MultiPathImpl.js";import{I as m}from"./UnitFactory.js";import{P as a,c as u,s as c,i as h,h as l,j as g,d as y}from"./Point2D.js";import{Envelope2D as _}from"./Envelope2D.js";import{P as D,E as p}from"./Envelope.js";function v(){return{outPoint:new a,index:-1,t:Number.NaN}}function N(e,t,n){return{outPoint:e.clone(),index:t,t:n}}function f(e,t,n,i){e.outPoint.assign(t),e.index=n,e.t=i}function P(e,t){e.outPoint.assign(t.outPoint),e.index=t.index,e.t=t.t}function I(e,t,n,i){e.index=n,e.t=i,t.queryCoord2D(e.t,e.outPoint)}function d(e,t){const n=v();P(n,e),P(e,t),P(t,n)}function q(e,t,i,r,s,o){if(e.getGeometryType()===n.enumPolygon){for(;r.nextPath();)if(r.hasNextSegment()){const t=r.nextSegment();if(0!==m(e,t.getEndXY(),0))return f(s,t.getEndXY(),-1,Number.NaN),f(o,t.getEndXY(),-1,Number.NaN),!0}r.resetToFirstPath()}if(t.getGeometryType()===n.enumPolygon){for(;i.nextPath();)if(i.hasNextSegment()){const e=i.nextSegment();if(0!==m(t,e.getEndXY(),0))return f(s,e.getEndXY(),-1,Number.NaN),f(o,e.getEndXY(),-1,Number.NaN),!0}i.resetToFirstPath()}return!1}function M(e){const t=e.getPathCount(),n=y(e.getSegmentCount(),0);let i=0;for(let r=0;r<t;++r){const t=i+e.getSegmentCountPath(r);for(let s=i,o=e.getPathStart(r);s<t;++s,++o)n[s]=o;i=t}return o(e.getPointCount(),n),n}function x(e,t){return!!Number.isNaN(t)||e<=t}function E(e){const t=new s;return t.addEnvelope(e,!1),t}class b{m_progressTracker;m_env2DgeometryA=null;m_env2DgeometryB=null;m_maxSqrDistance;m_maxDistance;m_progressCounter=0;m_bIsNearCalc;constructor(e,t){if(this.m_progressTracker=t,this.m_maxSqrDistance=e*e,this.m_maxDistance=e,this.m_bIsNearCalc=!1,Number.isNaN(this.m_maxDistance)?this.m_maxDistance=Number.POSITIVE_INFINITY:this.m_maxDistance=e,this.m_maxSqrDistance=this.m_maxDistance*this.m_maxDistance,Number.isFinite(this.m_maxSqrDistance)){let e=Math.sqrt(this.m_maxSqrDistance);for(;e<this.m_maxDistance;)this.m_maxSqrDistance*=1+Number.EPSILON,e=Math.sqrt(this.m_maxSqrDistance)}}calculate(e,t,n,i){if(e.getGeometryType()!==D.type||t.getGeometryType()!==D.type){this.m_env2DgeometryA=new _,this.m_env2DgeometryB=new _,e.queryEnvelope(this.m_env2DgeometryA),t.queryEnvelope(this.m_env2DgeometryB);if(!x(this.m_env2DgeometryA.distanceFromEnvelope(this.m_env2DgeometryB),this.m_maxDistance))return Number.POSITIVE_INFINITY}const r=N(new a,g(),Number.NaN),s=N(new a,g(),Number.NaN),o=this._ExecuteBruteForce(e,t,r,s);return x(o,this.m_maxDistance)?(null!==n&&P(n,r),null!==i&&P(i,s),o):Number.POSITIVE_INFINITY}isNear(e,t){if(this.m_bIsNearCalc=!0,e.isEmpty()||t.isEmpty())return!1;if(e===t)return!0;let n=!0;if(e.getGeometryType()!==D.type&&e.getGeometryType()!==p.type||t.getGeometryType()!==D.type&&t.getGeometryType()!==p.type||(n=!1),n){if(this.m_env2DgeometryA=new _,this.m_env2DgeometryB=new _,e.queryEnvelope(this.m_env2DgeometryA),t.queryEnvelope(this.m_env2DgeometryB),!(this.m_env2DgeometryA.sqrMaxMinDistanceEnvelope(this.m_env2DgeometryB)>this.m_maxSqrDistance))return!0;if(this.m_env2DgeometryA.sqrDistanceEnvelope(this.m_env2DgeometryB,null,null)>this.m_maxSqrDistance)return!1}const i=N(new a,g(),Number.NaN),r=N(new a,g(),Number.NaN);return this._ExecuteBruteForce(e,t,i,r)<=this.m_maxDistance}progress_(e=!1){}_ExecuteBruteForce(e,t,i,r){switch(e.getGeometryType()){case n.enumPoint:return this.distancePointGeometry(e,t,i,r);case n.enumMultiPoint:return this.distanceMultipointGeometry(e,t,i,r);case n.enumEnvelope:return this.distanceEnvelopeGeometry(e,t,i,r);case n.enumPolyline:case n.enumPolygon:return this.distanceMultipathGeometry(e,t,i,r);default:return Number.NaN}}distancePointGeometry(e,t,i,r){switch(t.getGeometryType()){case n.enumPoint:return this.distancePointPoint(e,t,i,r);case n.enumMultiPoint:return this.distancePointMultipoint(e,t,i,r);case n.enumPolyline:case n.enumPolygon:return this.distancePointMultipath(e,t,i,r);case n.enumEnvelope:return this.distancePointEnvelope(e,t,i,r);default:return Number.NaN}}distancePointPoint(e,t,n,i){const r=e.getXY(),s=t.getXY();return f(n,r,0,0),f(i,s,0,0),Math.sqrt(a.sqrDistance(r,s))}distancePointMultipoint(e,t,n,i){const r=e.getXY();let s=this.m_maxSqrDistance,o=s,m=!1;const u=t.getPointCount(),c=new a;for(let h=0;h<u;++h)if(t.queryXY(h,c),o=a.sqrDistance(r,c),this.m_bIsNearCalc){if(o<=s)return 0}else if(!(o>s)&&(!m&&o===s||o<s)&&(s=o,f(n,r,0,0),f(i,c,h,0),m=!0,0===s))return 0;return m?Math.sqrt(s):Number.POSITIVE_INFINITY}distancePointMultipath(e,t,i,r){const s=!this.m_env2DgeometryA.isIntersecting(this.m_env2DgeometryB),o=e.getXY();if(!s&&t.getGeometryType()===n.enumPolygon&&0!==m(t,o,0))return f(i,o,0,0),f(r,o,-1,Number.NaN),0;t.getImpl().getAccelerators();let u=this.m_maxSqrDistance,c=u,h=-1;const l=new _,g=t.querySegmentIterator();let y=!1;for(;g.nextPath();)for(;g.hasNextSegment();){const e=g.nextSegment();e.queryEnvelope(l);const t=l.sqrDistance(o);if(t>u)continue;if(!this.m_bIsNearCalc&&y&&t===u)continue;h=e.getClosestCoordinate(o,!1);const n=e.getCoord2D(h);if(c=a.sqrDistance(o,n),this.m_bIsNearCalc){if(c<=u)return 0}else if(!(c>u)&&(!y||c<u)&&(u=c,f(i,o,0,0),f(r,n,g.getStartPointIndex(),h),y=!0,0===u))return 0}return y?Math.sqrt(u):Number.POSITIVE_INFINITY}distancePointEnvelope(e,t,n,i){const r=e.getXY();f(n,r,0,0),f(i,r,-1,Number.NaN);const s=t.asEnvelope2D();return!s.contains(r)?Math.sqrt(s.sqrDistance(r,i.outPoint)):0}distanceMultipointGeometry(e,t,i,r){switch(t.getGeometryType()){case n.enumPoint:{this.m_env2DgeometryB=u(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB);const n=this.distancePointMultipoint(t,e,r,i);return this.m_env2DgeometryB=u(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB),n}case n.enumMultiPoint:return this.distanceMultipointMultipoint(e,t,i,r,1,1);case n.enumPolyline:case n.enumPolygon:return this.distanceMultipointMultipath(e,t,i,r);case n.enumEnvelope:return this.distanceMultipointMultipath(e,E(t),i,r);default:return Number.NaN}}distanceMultipointMultipoint(n,i,r,s,o,m){const g={stack:[],error:void 0,hasError:!1};try{if(this.m_bIsNearCalc&&1===o&&1===m){const e=Math.trunc(c(Math.sqrt(n.getPointCount())+1,1,h())),t=Math.trunc(c(Math.sqrt(i.getPointCount())+1,1,h()));if((e>=4||t>=4)&&this.distanceMultipointMultipoint(n,i,r,s,e,t)<=this.m_maxSqrDistance)return 0}let t=this.m_maxSqrDistance;const y=[n],_=[i],D=this.swapGeometriesIfBGtA(y,_);D&&(this.m_env2DgeometryB=u(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB),m=u(o,o=m),d(r,s)),e(g,l(()=>{d(r,s),this.m_env2DgeometryB=u(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB)},!D),!1);const p=y[0].getImpl(),v=_[0].getImpl(),N=p.getPointCount(),P=v.getPointCount(),I=P>1;let q=!1;const M=new a,x=new a;for(let e=0;e<N;e+=o){if(p.queryXY(e,M),I){const e=this.m_env2DgeometryB.sqrDistance(M);if(this.m_bIsNearCalc){if(e>t)continue;if(this.m_env2DgeometryB.sqrMaxMinDistance(M)<=t)return 0}else if(e>=t)continue}for(let n=0;n<P;n+=m){v.queryXY(n,x);const i=a.sqrDistance(M,x);if(this.m_bIsNearCalc){if(i<=t)return 0}else if(!(i>t||q&&i===t)&&(!q||i<t)&&(f(r,M,e,0),f(s,x,n,0),q=!0,t=i,0===t))return q?Math.sqrt(t):Number.POSITIVE_INFINITY}}return q?Math.sqrt(t):Number.POSITIVE_INFINITY}catch(y){g.error=y,g.hasError=!0}finally{t(g)}}distanceMultipointMultipath(e,t,i,r){let s=!!this.m_env2DgeometryA.isIntersecting(this.m_env2DgeometryB)&&t.getGeometryType()===n.enumPolygon;const o=t.querySegmentIterator();o.stripAttributes();const u=new _,c=new a;let h=this.m_maxSqrDistance;const l=e.getImpl(),g=l.getPointCount(),y=g>1;let D=!1;for(;o.nextPath();)for(;o.hasNextSegment();){const e=o.nextSegment();if(e.queryLooseEnvelope(u),y){const e=u.sqrDistanceEnvelope(this.m_env2DgeometryA,null,null);if(this.m_bIsNearCalc){if(e>h)continue}else if(e>h||D&&e===h)continue}for(let n=0;n<g;n++){if(l.queryXY(n,c),s&&0!==m(t,c,0))return f(i,c,-1,Number.NaN),f(r,c,n,0),0;{const e=u.sqrDistance(c);if(this.m_bIsNearCalc){if(e>h)continue}else if(e>h)continue}const a=e.getClosestCoordinate(c,!1),g=e.getCoord2D(a);c.subThis(g);const y=c.sqrLength();if(this.m_bIsNearCalc){if(y<=h)return 0}else if(!(y>h)&&(!D||y<h)&&(h=y,f(i,l.getXY(n),n,0),f(r,g,o.getStartPointIndex(),a),D=!0,0===h))return 0}s=!1}return D?Math.sqrt(h):Number.POSITIVE_INFINITY}distanceEnvelopeGeometry(e,t,i,r){switch(t.getGeometryType()){case n.enumPoint:return this.distancePointEnvelope(t,e,r,i);case n.enumMultiPoint:{this.m_env2DgeometryB=u(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB);const n=this.distanceMultipointMultipath(t,E(e),r,i);return this.m_env2DgeometryB=u(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB),n}case n.enumPolyline:case n.enumPolygon:return this.distanceMultipathMultipath(E(e),t,i,r);case n.enumEnvelope:return this.distanceEnvelopeEnvelope(e,t,i,r);default:return Number.NaN}}distanceEnvelopeEnvelope(e,t,n,i){n.t=Number.NaN,n.index=-1,i.t=Number.NaN,i.index=-1;const r=e.asEnvelope2D(),s=t.asEnvelope2D();return Math.sqrt(r.sqrDistanceEnvelope(s,n.outPoint,i.outPoint))}distanceMultipathGeometry(e,t,i,r){switch(t.getGeometryType()){case n.enumPoint:{this.m_env2DgeometryB=u(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB);const n=this.distancePointMultipath(t,e,r,i);return this.m_env2DgeometryB=u(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB),n}case n.enumMultiPoint:{this.m_env2DgeometryB=u(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB);const n=this.distanceMultipointMultipath(t,e,r,i);return this.m_env2DgeometryB=u(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB),n}case n.enumPolyline:case n.enumPolygon:return this.distanceMultipathMultipath(e,t,i,r);case n.enumEnvelope:return this.distanceMultipathMultipath(e,E(t),i,r);default:return Number.NaN}}distanceMultipathMultipath(n,i,s,o){const m={stack:[],error:void 0,hasError:!1};try{const t=[n],a=[i],g=this.swapGeometriesIfAGtB(t,a);g&&(this.m_env2DgeometryB=u(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB),d(s,o)),e(m,l(()=>{d(s,o),this.m_env2DgeometryB=u(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB)},!g),!1);const y=t[0],D=a[0],p=y.querySegmentIterator();p.stripAttributes();const N=D.querySegmentIterator();if(N.stripAttributes(),this.m_bIsNearCalc&&this.m_env2DgeometryA.sqrMaxMinDistanceEnvelope(this.m_env2DgeometryB)<=this.m_maxSqrDistance)return 0;if(this.m_bIsNearCalc){const e=Math.trunc(c(Math.sqrt(y.getPointCount())+1,1,h())),t=Math.trunc(c(Math.sqrt(y.getPointCount())+1,1,h()));if(this.distanceMultipointMultipoint(y,D,s,o,e,t)<=this.m_maxSqrDistance)return 0}if(!!this.m_env2DgeometryA.isIntersecting(this.m_env2DgeometryB)){const e=v(),t=v();if(q(y,D,p,N,e,t))return P(s,e),P(o,t),0}const f=M(y),x=[],E=new r,b=new _,S=new _,B=new _;let A=this.m_maxSqrDistance,T=!0,C=!1;for(let e=0,n=f.length;e<n;++e){y.querySegment(f[e],E,!0);const t=E.get();if(t.queryEnvelope(b),!(b.sqrDistanceEnvelope(this.m_env2DgeometryB,null,null)>A)){if(this.m_bIsNearCalc&&b.sqrMaxDistanceEnvelope(this.m_env2DgeometryB)<=A)return 0;for(;N.nextPath();){if(this.progress_(),T)D.queryPathEnvelope(N.getPathIndex(),B),x[N.getPathIndex()]=B.clone();else if(b.sqrDistanceEnvelope(x[N.getPathIndex()],null,null)>A)continue;for(;N.hasNextSegment();){const n=N.nextSegment();if(n.queryEnvelope(S),b.sqrDistanceEnvelope(S,null,null)<=A){const i=!b.isIntersecting(S),r=[0],m=[0];let a=t.distance(n,i,r,m);if(a*=a,this.m_bIsNearCalc&&a<=this.m_maxSqrDistance)return 0;if(a<A||a===A&&f[e]<s.index){if(C=!0,I(s,t,f[e],r[0]),I(o,n,N.getStartPointIndex(),m[0]),0===a)return 0;A=a}}}}N.resetToFirstPath(),T=!1}}return C?Math.sqrt(A):Number.POSITIVE_INFINITY}catch(a){m.error=a,m.hasError=!0}finally{t(m)}}swapGeometriesIfAGtB(e,t){return i(e[0])>i(t[0])&&(t[0]=u(e[0],e[0]=t[0]),!0)}swapGeometriesIfBGtA(e,t){return this.swapGeometriesIfAGtB(t,e)}}export{b as D,v as m,M as s,q as w};
|
|
@@ -1,2 +1,8 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{Gamma as
|
|
2
|
+
import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{Gamma as o}from"../views/3d/webgl-engine/core/shaderLibrary/shading/Gamma.glsl.js";import{FloatPassUniform as r}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as s}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DPassUniform as i}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{ToneMapping as n}from"../views/3d/webgl-engine/shaders/ToneMapping.glsl.js";import{NoParameters as a}from"../views/webgl/NoParameters.js";import{ShaderBuilder as l}from"../views/webgl/ShaderBuilder.js";class t extends a{constructor(){super(...arguments),this.inputScale=1}}function c(){const a=new l,t=a.fragment;return a.include(e,!0),a.outputs.add("fragColor","vec4",0),t.include(o),t.include(n),t.uniforms.add(new i("colorTexture",({color:e})=>e),new i("emissionTexture",({emission:e})=>e),new r("inputScale",({inputScale:e},{lighting:o})=>e*(2-o.noonFactor))).main.add(s`vec4 color = texture(colorTexture, uv);
|
|
3
|
+
color = vec4(linearizeGamma(color.rgb), color.a);
|
|
4
|
+
vec3 emission = texture(emissionTexture, uv).rgb * inputScale;
|
|
5
|
+
vec3 toneMapped = tonemapKhronosNeutral(color.rgb + emission);
|
|
6
|
+
vec3 toneMappedColor = tonemapKhronosNeutral(color.rgb);
|
|
7
|
+
vec3 compositeColor = color.rgb + toneMapped - toneMappedColor;
|
|
8
|
+
fragColor = delinearizeGamma(vec4(compositeColor, color.a));`),a}const m=Object.freeze(Object.defineProperty({__proto__:null,EmissionCompositePassParameters:t,build:c},Symbol.toStringTag,{value:"Module"}));export{t as E,m as a,c as b};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{__addDisposableResource as t,__disposeResources as e}from"tslib";import{a as i,G as s,g as n,d as o,v as m,j as a}from"./Geometry.js";import{S as r,P as u}from"./MultiPathImpl.js";import{O as c,y as h,ag as l,ah as _,ao as p,ap as d,aq as g,ar as x,as as y,at as P,a9 as S,au as D,av as f,r as G,a7 as v}from"./UnitFactory.js";import{k as T,d as b}from"./Envelope.js";import{Envelope2D as w}from"./Envelope2D.js";import{P as M,c as E,o as R,E as C,p as I}from"./Point2D.js";import{T as B}from"./Transformation2D.js";import{s as A,w as q,m as N}from"./Distance2DCalculator-DjIp2uQi.js";import{O as F}from"./OperatorShapePreservingDensify.js";import{O as k}from"./OperatorClip.js";function Y(){return new w}class X{m_a;m_e2;m_b;m_unitToDegree;m_unitToRad;m_u180;m_u360;m_peR1;m_peR2;m_peR3;[Symbol.dispose](){this.m_peR1.destroy(),this.m_peR2.destroy(),this.m_peR3.destroy(),this.m_peR1=null,this.m_peR2=null,this.m_peR3=null}constructor(t,e,i){this.m_peR1=new l,this.m_peR2=new l,this.m_peR3=new l,void 0!==t?this.reset(t,e,i):this.reset(1,0,1)}reset(t,e,i){this.m_a=t,this.m_e2=e,this.m_b=this.m_a*Math.sqrt(1-this.m_e2),this.m_unitToDegree=i,this.m_unitToRad=.017453292519943295*i,this.m_u180=180/this.m_unitToDegree,this.m_u360=360/this.m_unitToDegree}calculateBbox(t,e,i,s){const n=this.m_peR1,o=this.m_peR2,m=this.m_peR3;_.geodeticDistance(this.m_a,this.m_e2,t*this.m_unitToRad,e*this.m_unitToRad,i*this.m_unitToRad,s*this.m_unitToRad,m,n,o,0);const a=Math.cos(n.val),r=Math.cos(o.val+3.141592653589793),u=e*this.m_unitToRad,c=v.phiToEta(this.m_e2,u),h=Math.sin(n.val)*Math.cos(c);let l=e;if(a*r<0){const t=a<0?-1:1,e=Math.acos(Math.abs(h))*t;l=v.etaToPhi(this.m_e2,e)/this.m_unitToRad}let p=I((i-t)*this.m_unitToRad,2*Math.PI);Math.abs(p)>Math.PI&&(p=p>0?p-2*Math.PI:p+2*Math.PI),p/=this.m_unitToRad,i=t+p;const d=Y();return d.xmin=Math.min(t,i),d.xmax=Math.max(t,i),d.ymin=Math.min(e,s),d.ymin=Math.min(d.ymin,l),d.ymax=Math.max(e,s),d.ymax=Math.max(d.ymax,l),d}minDistanceGeodesic(t,e){const i=O(t),s=O(e);if(i&&s)return this.lowerDistanceGeodetic_(t.xmin,t.ymin,e.xmin,e.ymin);const n=this.normalizeGeodesic_(e,t);return U(t,n)?t.ymin>=n.ymax?this.minDistanceGeodesicUpDown_(t,n):n.ymin>=t.ymax?this.minDistanceGeodesicUpDown_(n,t):t.xmin>n.xmax?this.minDistanceGeodesicLeftRight_(n,t):this.minDistanceGeodesicLeftRight_(t,n):0}normalizeGeodesic_(t,e){const i=t.clone(),s=t.clone();let n=V(i,e);if(0===n)return i;for(;s.xmax>e.xmin;){s.xmin-=this.m_u360,s.xmax-=this.m_u360;const t=V(s,e);if(t<n&&(i.assign(s),n=t,0===n))return i}for(s.assign(t);s.xmin<e.xmax;){s.xmin+=this.m_u360,s.xmax+=this.m_u360;const t=V(s,e);if(t<n&&(i.assign(s),n=t,0===n))return i}return i}lowerDistanceGeodetic_(t,e,i,s){const n=this.m_peR1;{const o=this.m_b*this.m_b/this.m_a,m=v.phiToPhig(this.m_e2,this.m_unitToRad*e),a=v.phiToPhig(this.m_e2,this.m_unitToRad*s);_.geodeticDistance(o,0,this.m_unitToRad*t,m,this.m_unitToRad*i,a,n,null,null,0)}return n.val}minDistanceGeodesicUpDown_(t,e){if(e.xmin<=t.xmin?e.xmax>=t.xmin:t.xmax>=e.xmin)return this.lowerDistanceGeodetic_(0,t.ymin,0,e.ymax);if(e.xmin>t.xmax){const i=this.lowerDistanceGeodeticSegMeridional_(t.xmax,t.ymin,t.ymax,e.xmin,e.ymin,e.ymax);if(e.xmax-t.xmin<this.m_u180)return i;const s=this.lowerDistanceGeodeticSegMeridional_(t.xmin,t.ymin,t.ymax,e.xmax,e.ymin,e.ymax);return Math.min(i,s)}{const i=this.lowerDistanceGeodeticSegMeridional_(t.xmin,t.ymin,t.ymax,e.xmax,e.ymin,e.ymax);if(t.xmax-e.xmin<this.m_u180)return i;const s=this.lowerDistanceGeodeticSegMeridional_(t.xmax,t.ymin,t.ymax,e.xmin,e.ymin,e.ymax);return Math.min(i,s)}}minDistanceGeodesicLeftRight_(t,e){let i=Math.abs(t.xmax-e.xmin);for(;i>this.m_u180;)i-=this.m_u360;let s=Math.abs(t.xmin-e.xmax);for(;s>this.m_u180;)s-=this.m_u360;return Math.abs(i)<=Math.abs(s)?this.minDistanceGeodesicLeftRightNormalized_(t,e):this.minDistanceGeodesicLeftRightNormalized_(e,t)}minDistanceGeodesicLeftRightNormalized_(t,e){let i,s;return i=this.lowerDistanceGeodetic_(t.xmax,t.ymin,e.xmin,e.ymin),t.ymin>=e.ymin&&t.ymin<=e.ymax&&(s=this.lowerDistanceGeodeticPtMeridional_(t.xmax,t.ymin,e.xmin,e.ymin,e.ymax),i=Math.min(i,s)),e.ymin>=t.ymin&&e.ymin<=t.ymax&&(s=this.lowerDistanceGeodeticPtMeridional_(e.xmin,e.ymin,t.xmax,t.ymin,t.ymax),i=Math.min(i,s)),s=this.lowerDistanceGeodetic_(t.xmax,t.ymax,e.xmin,e.ymax),i=Math.min(i,s),t.ymax>=e.ymin&&t.ymax<=e.ymax&&(s=this.lowerDistanceGeodeticPtMeridional_(t.xmax,t.ymax,e.xmin,e.ymin,e.ymax),i=Math.min(i,s)),e.ymax>=t.ymin&&e.ymax<=t.ymax&&(s=this.lowerDistanceGeodeticPtMeridional_(e.xmin,e.ymax,t.xmax,t.ymin,t.ymax),i=Math.min(i,s)),i}lowerDistanceGeodeticSegMeridional_(t,e,i,s,n,o){let m=this.lowerDistanceGeodeticPtMeridional_(t,e,s,n,o);const a=this.lowerDistanceGeodeticPtMeridional_(t,i,s,n,o);let r=this.lowerDistanceGeodeticPtMeridional_(s,n,t,e,i);const u=this.lowerDistanceGeodeticPtMeridional_(s,o,t,e,i);return m=Math.min(m,a),r=Math.min(r,u),Math.min(m,r)}lowerDistanceGeodeticPtMeridional_(t,e,i,s,n){const o=this.m_b*this.m_b/this.m_a,m=v.phiToPhig(this.m_e2,this.m_unitToRad*e),a=v.phiToPhig(this.m_e2,this.m_unitToRad*s),r=v.phiToPhig(this.m_e2,this.m_unitToRad*n),u=this.m_peR1,c=this.m_peR2;_.geodeticDistance(o,0,this.m_unitToRad*i,a,this.m_unitToRad*t,m,u,null,null,0),_.geodeticDistance(o,0,this.m_unitToRad*i,r,this.m_unitToRad*t,m,c,null,null,0);const h=p(1,0,new M(this.m_unitToRad*t,m)),l=p(1,0,new M(this.m_unitToRad*i,a)),d=p(1,0,new M(this.m_unitToRad*i,r));let g=new T;g.setCrossProductVector(l,d);const x=l.dotProduct(d);if(g.length()<1.568e-10)return x>=0?Math.min(u.val,c.val):0;g=g.getUnitVector();let y=new T;if(y.setCrossProductVector(g,h),y.length()<1.568e-10){return Math.min(u.val,c.val)-1e-5*o}y=y.getUnitVector();let P=h.sub(g.mul(h.dotProduct(g)));{const e=new T;e.setCrossProductVector(l,P);const i=new T;i.setCrossProductVector(P,d);let s=g.dotProduct(e)>0&&g.dotProduct(i)>0;if(s||(P.negateThis(),e.setCrossProductVector(l,P),i.setCrossProductVector(P,d),s=g.dotProduct(e)>0&&g.dotProduct(i)>0),s){P=P.getUnitVector();const e=f(1,0,P),i=this.m_peR3;_.geodeticDistance(o,0,this.m_unitToRad*t,m,e.x,e.y,i,null,null,0);const s=Math.min(u.val,c.val);return Math.min(s,i.val)}}return Math.min(u.val,c.val)}}function O(t){return t.xmin===t.xmax&&t.ymin===t.ymax}function U(t,e){return e.xmax<t.xmin||e.xmin>t.xmax||e.ymax<t.ymin||e.ymin>t.ymax}function V(t,e){let i,s=0;return i=t.xmin-e.xmax,i>s&&(s=i),i=e.xmin-t.xmax,i>s&&(s=i),s}class j{}function L(t){return{outPoint:void 0===t?new M:t.clone()}}function H(t,e){t.outPoint.assign(e.outPoint)}function z(){return new w}class Q{m_ptDistFrom=new M;m_segStartPt=new M;m_segEndPt=new M;m_sr;m_distCurveType;m_segCurveType;m_a;m_eSquared;m_inputGCS;m_rpu;m_geodeticLength=new l;m_az12=new l;m_minGeodeticDist=new l;m_bIsPannablePcs;m_segStartPt3d=new T;m_segEndPt3d=new T;constructor(t,e,i,s,n=0,o=4){this.m_sr=s,this.m_distCurveType=n,this.m_segCurveType=o,this.m_inputGCS=this.m_sr.getGCS(),this.m_rpu=this.m_inputGCS.getUnit().getUnitToBaseFactor(),this.m_bIsPannablePcs=2===this.m_sr.getCoordinateSystemType()&&this.m_sr.isPannable();const m=G();this.m_inputGCS.querySpheroidData(m),this.m_a=m.majorSemiAxis,this.m_eSquared=m.e2,this.setPointDistFrom(t),this.setSegmentEndPoints(e,i)}setSegmentEndPoints(t,e){this.m_segStartPt.assign(t),this.m_segEndPt.assign(e),this.m_bIsPannablePcs||(this.m_segStartPt.mulThis(this.m_rpu),this.m_segEndPt.mulThis(this.m_rpu)),2===this.m_segCurveType&&(this.m_segStartPt3d.assign(p(this.m_a,this.m_eSquared,this.m_segStartPt)),this.m_segEndPt3d.assign(p(this.m_a,this.m_eSquared,this.m_segEndPt))),this.calculateAndUpdateSegmentLength()}setPointDistFrom(t){this.m_ptDistFrom.assign(t),this.m_ptDistFrom.scale(this.m_rpu)}setSegmentCurveType(t){this.m_segCurveType=t}setDistanceCurveType(t){this.m_distCurveType=t}makeFunctor(){return i=>{let s;switch(this.m_segCurveType){case 0:case 1:case 3:{const o={stack:[],error:void 0,hasError:!1};try{const e=t(o,new l,!1),n=t(o,new l,!1);_.geodeticCoordinate(this.m_a,this.m_eSquared,this.m_segStartPt.x,this.m_segStartPt.y,this.m_geodeticLength.val*i,this.m_az12.val,e,n,this.m_segCurveType),s=new M(e.val,n.val);break}catch(n){o.error=n,o.hasError=!0}finally{e(o)}}case 2:{const t=T.lerp(this.m_segStartPt3d,this.m_segEndPt3d,i);s=f(this.m_a,this.m_eSquared,t);break}case 4:s=M.lerp(this.m_segStartPt,this.m_segEndPt,i),this.m_bIsPannablePcs&&(g(this.m_sr,0,[s],1),s.mulThis(this.m_rpu));break;default:o("Invalid curve type")}return _.geodeticDistance(this.m_a,this.m_eSquared,this.m_ptDistFrom.x,this.m_ptDistFrom.y,s.x,s.y,this.m_minGeodeticDist,null,null,this.m_distCurveType),this.m_minGeodeticDist.val}}calculateAndUpdateSegmentLength(){switch(this.m_segCurveType){case 0:case 2:case 1:case 3:_.geodeticDistance(this.m_a,this.m_eSquared,this.m_segStartPt.x,this.m_segStartPt.y,this.m_segEndPt.x,this.m_segEndPt.y,this.m_geodeticLength,this.m_az12,null,this.m_segCurveType);break;case 4:this.m_geodeticLength.val=M.distance(this.m_segStartPt,this.m_segEndPt);break;default:o("Invalid curve type")}}[Symbol.dispose](){this.m_geodeticLength[Symbol.dispose](),this.m_az12[Symbol.dispose](),this.m_minGeodeticDist[Symbol.dispose]()}}function J(){return new j}class K{m_inputSR;m_distCurveType;m_progressTracker;m_maxDistance;m_maxDeviation;m_inputGCS;m_peGeogcs;m_a;m_eSquared;m_rpu;m_envHelper;m_boxGeomA=z();m_boxGeomB=z();m_envGeomA=new w;m_envGeomB=new w;m_progressCounter=0;m_bIsPannablePcs;m_transformPCS2GCS=null;m_segmentBoxesA=new Map;m_segmentBoxesB=new Map;m_boundaryPtsA=[];m_boundaryPtsB=[];m_scaleToRadians=new B;m_scaleToDegrees=new B;m_tolerance;[Symbol.dispose](){this.m_envHelper[Symbol.dispose]()}constructor(t,e,i,s,n){this.m_inputSR=t,this.m_distCurveType=e,this.m_progressTracker=i,this.m_maxDistance=s,this.m_maxDeviation=n,this.m_inputGCS=t.getGCS(),this.m_peGeogcs=this.m_inputGCS.getPECoordSys(),this.m_tolerance=0;const o=G();this.m_inputGCS.querySpheroidData(o),this.m_a=o.majorSemiAxis,this.m_eSquared=o.e2,this.m_rpu=this.m_inputGCS.getUnit().getUnitToBaseFactor(),this.m_envHelper=new X(this.m_a,this.m_eSquared,1),4===this.m_distCurveType&&(this.m_distCurveType=0),this.m_boxGeomA.setEmpty(),this.m_boxGeomB.setEmpty(),this.m_envGeomA.setEmpty(),this.m_envGeomB.setEmpty(),this.m_bIsPannablePcs=2===this.m_inputSR.getCoordinateSystemType()&&this.m_inputSR.isPannable()}progress(t=!1){}calculate(t,e,i,s){const n=L(),o=L();if(t.queryEnvelope(this.m_envGeomA),e.queryEnvelope(this.m_envGeomB),this.checkGeometriesIntersect(t,e,n,o))return i&&H(i,n),s&&H(s,o),0;const m=this.prepareGeometry(t);if(m.isEmpty())return Number.NaN;const a=this.prepareGeometry(e);if(a.isEmpty())return Number.NaN;this.m_tolerance=this.computeTolerance(m,a);const r=this._ExecuteBruteForce(m,a,n,o);return r>=this.m_maxDistance?Number.NaN:(i&&(this.prepareOutput(n),H(i,n)),s&&(this.prepareOutput(o),H(s,o)),r)}createDistanceFunctor(t,e,i){const s=new Q(t,e,i,this.m_inputSR,this.m_distCurveType);return this.m_bIsPannablePcs||1===this.m_inputSR.getCoordinateSystemType()||s.setSegmentCurveType(2),s}_NormalizeAndProject(t){if(this.m_inputSR.isPannable()&&(t=(new c).foldInto360Range(t,this.m_inputSR)),2===this.m_inputSR.getCoordinateSystemType()){const e=h(this.m_inputSR,this.m_inputGCS,null);t=(new c).execute(t,e,this.m_progressTracker)}return t}_ExecuteBruteForce(t,e,n,o){switch(t.getGeometryType()){case s.enumPoint:return this.calculateDistanceGeodeticPointGeometry(t,e,n,o);case s.enumMultiPoint:return this.calculateDistanceGeodeticMultipointGeometry(t,e,n,o);case s.enumPolyline:case s.enumPolygon:case s.enumEnvelope:return this.calculateDistanceGeodeticMultipathGeometry(t,e,n,o);default:i("")}}calculateDistanceGeodeticPointGeometry(t,e,n,o){switch(e.getGeometryType()){case s.enumPoint:return this.calculateDistanceGeodeticPointPoint(t,e,n,o);case s.enumMultiPoint:return this.calculateDistanceGeodeticPointMultipoint(t,e,n,o);case s.enumPolyline:case s.enumPolygon:return this.calculateDistanceGeodeticPointMultipath(t,e,n,o);default:i("")}}calculateDistanceGeodeticPointPoint(i,s,n,o){const m={stack:[],error:void 0,hasError:!1};try{const e=i.getXY();e.scale(this.m_rpu);const a=s.getXY();a.scale(this.m_rpu),n.outPoint.assign(e),o.outPoint.assign(a);const r=t(m,new l,!1);return _.geodeticDistance(this.m_a,this.m_eSquared,e.x,e.y,a.x,a.y,r,null,null,this.m_distCurveType),r.val}catch(a){m.error=a,m.hasError=!0}finally{e(m)}}calculateDistanceGeodeticPointMultipoint(i,s,n,o){const m={stack:[],error:void 0,hasError:!1};try{this.computeEnvelopesAndBoxes(i,s);const e=this.estimateMinimumDistance(n,o);let a=e<this.m_maxDistance?e:this.m_maxDistance;const r=i.getXY();r.scale(this.m_rpu),n.outPoint.assign(r);const u=p(this.m_a,this.m_eSquared,r),c=new M,h=s.getImpl(),d=t(m,new l,!1),g=h.getPointCount();for(let t=0;t<g;++t){h.queryXY(t,c),c.scale(this.m_rpu);const e=p(this.m_a,this.m_eSquared,c);if(!(T.distance(u,e)>a)&&(!(this.m_envHelper.minDistanceGeodesic(this.m_boxGeomA,this.m_boxGeomB)>a)&&(_.geodeticDistance(this.m_a,this.m_eSquared,r.x,r.y,c.x,c.y,d,null,null,this.m_distCurveType),d.val<a&&(a=d.val,o.outPoint=c,0===a))))return a}return a===this.m_maxDistance?Number.POSITIVE_INFINITY:a}catch(a){m.error=a,m.hasError=!0}finally{e(m)}}calculateDistanceGeodeticPointMultipath(i,s,o,m){const a={stack:[],error:void 0,hasError:!1};try{const e=new M,r=new M;e.assign(i.getXY()),r.assign(i.getXY()),o.outPoint.assign(r.mul(this.m_rpu)),this.m_bIsPannablePcs&&d(this.m_inputSR,[e],1,!1),this.computeEnvelopesAndBoxes(i,s);const u=this.estimateMinimumDistance(o,m);let c=u<this.m_maxDistance?u:this.m_maxDistance;const h=s.getImpl(),l=new M(0,0),_=new M(0,0),p=[1],g=this.canUseSpatialTree(i,s),x=J();g&&this.buildSpatialTree(x,s);const y=z();y.setCoords({xmin:r.x,ymin:r.y,xmax:r.x,ymax:r.y});const P=t(a,this.createDistanceFunctor(r,l,_),!1),S=h.querySegmentIterator();if(S.stripAttributes(),g)n(0);else for(;S.nextPath();)for(;S.hasNextSegment();){const t=S.nextSegment(),i=this.findOrComputeBoxSegment(S.getStartPointIndex(),t,this.m_segmentBoxesB);if(this.m_envHelper.minDistanceGeodesic(y,i)>c)continue;const s=this.calculateDistanceGeodeticPointSegment(e,r,t,p,P);if(s.second<c&&(this.updateOutputSegment(m,t,s.first),c=s.second,0===c))return 0}return c===this.m_maxDistance?Number.POSITIVE_INFINITY:c}catch(r){a.error=r,a.hasError=!0}finally{e(a)}}calculateDistanceGeodeticMultipointGeometry(t,e,n,o){switch(e.getGeometryType()){case s.enumPoint:return this.calculateDistanceGeodeticPointMultipoint(e,t,o,n);case s.enumMultiPoint:return this.calculateDistanceGeodeticMultipointMultipoint(t,e,n,o);case s.enumPolyline:case s.enumPolygon:case s.enumEnvelope:return this.calculateDistanceGeodeticMultipointMultipath(t,e,n,o);default:i("")}}calculateDistanceGeodeticMultipointMultipoint(i,s,n,o){const m={stack:[],error:void 0,hasError:!1};try{const e=t(m,new l,!1);this.computeEnvelopesAndBoxes(i,s);const a=this.estimateMinimumDistance(n,o);let r=a<this.m_maxDistance?a:this.m_maxDistance;const u=new M,c=new M,h=i.getImpl(),d=s.getImpl(),g=z(),x=h.getPointCount(),y=d.getPointCount();for(let t=0;t<x;++t){if(u.assign(h.getXY(t)),g.setCoords({xmin:u.x,ymin:u.y,xmax:u.x,ymax:u.y}),this.m_envHelper.minDistanceGeodesic(g,this.m_boxGeomB)>r)continue;u.scale(this.m_rpu);const i=p(this.m_a,this.m_eSquared,u);for(let t=0;t<y;++t){c.assign(d.getXY(t)),c.scale(this.m_rpu);const s=p(this.m_a,this.m_eSquared,c);if(!(T.distance(i,s)>=r)&&(_.geodeticDistance(this.m_a,this.m_eSquared,u.x,u.y,c.x,c.y,e,null,null,this.m_distCurveType),e.val<r&&(n.outPoint.assign(u),o.outPoint.assign(c),r=e.val,0===r)))return r}}return r===this.m_maxDistance?Number.POSITIVE_INFINITY:r}catch(a){m.error=a,m.hasError=!0}finally{e(m)}}calculateDistanceGeodeticMultipointMultipath(i,s,o,m){const a={stack:[],error:void 0,hasError:!1};try{const e=s.getImpl().querySegmentIterator();e.stripAttributes(),this.computeEnvelopesAndBoxes(i,s);const r=this.estimateMinimumDistance(o,m);let u=r<this.m_maxDistance?r:this.m_maxDistance;const c=new M,h=new M(0,0),l=new M(0,0),_=new M(0,0),p=[0],g=z(),x=t(a,this.createDistanceFunctor(h,l,_),!1),y=J(),P=this.canUseSpatialTree(i,s);P&&this.buildSpatialTree(y,s);const S=i.getPointCount();for(let t=0;t<S;++t)if(c.assign(i.getXY(t)),h.assign(i.getXY(t)),this.m_bIsPannablePcs&&d(this.m_inputSR,[c],1,!1),g.setCoords({xmin:h.x,ymin:h.y,xmax:h.x,ymax:h.y}),!(this.m_envHelper.minDistanceGeodesic(g,this.m_boxGeomB)>u))if(x.setPointDistFrom(h),P)n(0);else{for(;e.nextPath();)for(;e.hasNextSegment();){const t=e.nextSegment();if(this.m_envHelper.minDistanceGeodesic(g,this.findOrComputeBoxSegment(e.getStartPointIndex(),t,this.m_segmentBoxesB))>u)continue;const i=this.calculateDistanceGeodeticPointSegment(c,h,t,p,x);if(i.second<u&&(o.outPoint.assign(h.mul(this.m_rpu)),this.updateOutputSegment(m,t,i.first),u=i.second,0===u))return 0}e.resetToFirstPath()}return u===this.m_maxDistance?Number.POSITIVE_INFINITY:u}catch(r){a.error=r,a.hasError=!0}finally{e(a)}}calculateDistanceGeodeticMultipathGeometry(t,e,n,o){switch(e.getGeometryType()){case s.enumPoint:return this.calculateDistanceGeodeticPointMultipath(e,t,o,n);case s.enumMultiPoint:return this.calculateDistanceGeodeticMultipointMultipath(e,t,o,n);case s.enumPolyline:case s.enumPolygon:case s.enumEnvelope:return this.calculateDistanceGeodeticMultipathMultipath(t,e,n,o);default:i("")}}calculateDistanceGeodeticMultipathMultipath(t,e,i,s){const n=[t],o=[e],m=this.swapGeometries(n,o),a=n[0],r=o[0];this.computeEnvelopesAndBoxes(n[0],o[0]);const u=this.estimateMinimumDistance(i,s),c=this.calculateDistanceGeodeticMultipathMultipath_(a,r,i,s,u);return m&&(s.outPoint=E(i.outPoint,i.outPoint=s.outPoint)),c}calculateDistanceGeodeticMultipathMultipath_(i,s,o,m,a=Number.MAX_VALUE){const u={stack:[],error:void 0,hasError:!1};try{let e=a;const c=new M(0,0),h=new M,l=new M(0,0),_=new M,p=new M(0,0),d=new M,y=new M,P=new M,S=[new M],D=[0],f=[0],G=z(),v=z(),T=t(u,this.createDistanceFunctor(p,c,l),!1),b=J(),w=this.canUseSpatialTree(i,s);w&&this.buildSpatialTree(b,s);const E=s.querySegmentIterator();E.stripAttributes();const R=new r,C=A(i);for(let t=0;t<C.length;++t){const s=C[t];i.getSegmentBuffer(s,R,!0);const a=R.get();if(G.assign(this.findOrComputeBoxSegment(s,a,this.m_segmentBoxesA)),w)n(0);else{if(p.assign(a.getStartXY()),d.assign(a.getStartXY()),y.assign(a.getEndXY()),P.assign(a.getEndXY()),this.m_bIsPannablePcs&&(g(this.m_inputSR,0,[d],1),g(this.m_inputSR,0,[P],1)),this.m_envHelper.minDistanceGeodesic(G,this.m_boxGeomB)>e)continue;for(;E.nextPath();){for(;E.hasNextSegment();){const t=E.nextSegment();if(c.assign(t.getStartXY()),h.assign(t.getStartXY()),l.assign(t.getEndXY()),_.assign(t.getEndXY()),a.intersect(t,S,D,f,this.m_tolerance))return this.updateOutputSegment(o,a,D[0]),this.updateOutputSegment(m,t,f[0]),0;if(this.m_bIsPannablePcs&&(g(this.m_inputSR,0,[h],1),g(this.m_inputSR,0,[_],1)),v.assign(this.findOrComputeBoxPoint(E.getStartPointIndex(),h,_,this.m_segmentBoxesB)),this.m_envHelper.minDistanceGeodesic(G,v)>e)continue;T.setSegmentEndPoints(c,l),T.setPointDistFrom(d);let i=x(T.makeFunctor(),0,1,1e-10);if(i.second<e&&(o.outPoint.assign(d.mul(this.m_rpu)),this.updateOutputSegment(m,t,i.first),e=i.second,0===e))break;if(T.setPointDistFrom(P),i=x(T.makeFunctor(),0,1,1e-10),i.second<e&&(o.outPoint.assign(P.mul(this.m_rpu)),this.updateOutputSegment(m,t,i.first),e=i.second,0===e))break;if(T.setSegmentEndPoints(p,y),T.setPointDistFrom(h),i=x(T.makeFunctor(),0,1,1e-10),i.second<e&&(this.updateOutputSegment(o,a,i.first),m.outPoint.assign(h.mul(this.m_rpu)),e=i.second,0===e))break;if(T.setPointDistFrom(_),i=x(T.makeFunctor(),0,1,1e-10),i.second<e&&(this.updateOutputSegment(o,a,i.first),m.outPoint.assign(_.mul(this.m_rpu)),e=i.second,0===e))break}if(0===e)return 0}E.resetToFirstPath()}}return e===this.m_maxDistance?Number.POSITIVE_INFINITY:e}catch(c){u.error=c,u.hasError=!0}finally{e(u)}}calculateDistanceGeodeticPointSegment(t,e,i,s,n){const o=i.getStartXY(),m=i.getEndXY();return i.intersectPoint(t,s,this.m_tolerance)?R(s[0],0):(n.setPointDistFrom(e),n.setSegmentEndPoints(o,m),x(n.makeFunctor(),0,1,1e-10))}prepareGeometry(t){let e=t.clone();const i=t.getGeometryType();if(i===s.enumPoint||i===s.enumMultiPoint)return this._NormalizeAndProject(e);if(i===s.enumEnvelope&&(e=this.envelopeToPolygon(e)),this.m_inputSR.isPannable())return this.prepareGeometryPannable(e,4);if(2===this.m_inputSR.getCoordinateSystemType()){if(e=y(e,this.m_inputSR,0,null),e.isEmpty())return e;e=(new F).execute(e,this.m_inputSR,5e4,this.m_maxDeviation/2,0,null);const t=this.m_inputSR.getSRToGCSTransform();return(new c).execute(e,t,this.m_progressTracker)}const n=new w;e.queryLooseEnvelope(n);const o=this.m_inputSR.getPannableExtent();if(n.ymin<o.ymin||n.ymax>o.ymax){const t=new w(n.xmin-1,o.ymin,n.xmax+1,o.ymax);if(e=(new k).execute(e,t,this.m_inputSR,this.m_progressTracker),e.isEmpty())return e}return n.width()>2*o.width()?(e=P(e,-2*o.width(),2*o.width(),this.m_inputSR,!0,0,!0,this.m_progressTracker),e):e}prepareGeometryPannable(t,e){const i=new w;t.queryEnvelope(i);const s=this.m_inputSR.getPannableExtent();if(s.containsEnvelope(i))return t;const n=new C;s.queryIntervalX(n);const o=new C;return i.queryIntervalX(o),t=n.contains(o)?S(t,this.m_inputSR):(new c).foldInto360RangeGeodetic(t,this.m_inputSR,e)}prepareOutput(t){t.outPoint.scale(1/this.m_rpu),2===this.m_inputSR.getCoordinateSystemType()&&d(this.m_inputSR,[t.outPoint],1,!1)}updateOutputSegment(t,e,i){e.queryCoord2D(i,t.outPoint),this.m_bIsPannablePcs&&g(this.m_inputSR,0,[t.outPoint],1),t.outPoint.mulThis(this.m_rpu)}computeTolerance(t,e){t.queryEnvelope(this.m_envGeomA),e.queryEnvelope(this.m_envGeomB);const i=new w(this.m_envGeomA);return i.mergeEnvelope2D(this.m_envGeomB),b(null,i)}envelopeToPolygon(t){const e=new u;return e.addEnvelope(t,!1),e}computeEnvelopesAndBoxes(t,e){t.queryEnvelope(this.m_envGeomA),e.queryEnvelope(this.m_envGeomB),this.m_boxGeomA=this.computeBoxGeometry(t,this.m_boundaryPtsA,this.m_segmentBoxesA),this.m_boxGeomB=this.computeBoxGeometry(e,this.m_boundaryPtsB,this.m_segmentBoxesB)}computeBoxGeometry(t,e,i){switch(t.getGeometryType()){case s.enumPoint:return this.computeBoxPoint(t,e);case s.enumMultiPoint:return this.computeBoxMultiPoint(t,e);case s.enumPolyline:case s.enumPolygon:return this.computeBoxMultiPath(t,e,i);default:o("Invalid geometry type")}}computeBoxPoint(t,e){const i=t.getXY();e.length=0,e.push(i.mul(this.m_rpu));const s=z();return s.setCoords({xmin:i.x,ymin:i.y,xmax:i.x,ymax:i.y}),s}computeBoxMultiPoint(t,e){let i=!0;for(let n=0;n<t.getPointCount();++n){const s=t.getXY(n);if(i){e.length=0;for(let t=0;t<4;++t)e.push(s.clone());i=!1}s.x<e[0].x&&e[0].assign(s),s.y>e[1].y&&e[1].assign(s),s.x>e[2].x&&e[2].assign(s),s.y<e[3].y&&e[3].assign(s)}for(let n=0;n<e.length;++n)e[n].mulThis(this.m_rpu);const s=z();return t.queryEnvelope(s),s}computeBoxMultiPath(t,e,i){let s=!0;const n=z();n.setEmpty();const o=t.querySegmentIterator();for(o.stripAttributes();o.nextPath();)for(;o.hasNextSegment();){const t=o.nextSegment(),m=t.getStartXY(),a=t.getEndXY();if(this.m_bIsPannablePcs&&(g(this.m_inputSR,0,[m],1),g(this.m_inputSR,0,[a],1)),s){for(let t=0;t<4;++t)e.push(m.clone());s=!1}m.x<e[0].x&&e[0].assign(m),m.y>e[1].y&&e[1].assign(m),m.x>e[2].x&&e[2].assign(m),m.y<e[3].y&&e[3].assign(m),a.x<e[0].x&&e[0].assign(a),a.y>e[1].y&&e[1].assign(a),a.x>e[2].x&&e[2].assign(a),a.y<e[3].y&&e[3].assign(a);const r=this.findOrComputeBoxPoint(o.getStartPointIndex(),m,a,i);n.mergeEnvelope2D(r)}for(let m=0;m<e.length;++m)e[m].mulThis(this.m_rpu);return n}findOrComputeBoxSegment(t,e,i){if(!i.has(t)){let s=z();if(e.queryEnvelope(s),this.m_bIsPannablePcs){const t=M.construct(s.xmin,s.ymin),e=M.construct(s.xmax,s.ymax);g(this.m_inputSR,0,[t],1),g(this.m_inputSR,0,[e],1),s=this.m_envHelper.calculateBbox(t.x,t.y,e.x,e.y)}return i.set(t,s),s}return i.get(t)}findOrComputeBoxPoint(t,e,i,s){if(!s.has(t)){let n=z();return n.setCoords({xmin:e.x,ymin:e.y,xmax:i.x,ymax:i.y}),this.m_bIsPannablePcs&&(n=this.m_envHelper.calculateBbox(n.xmin,n.ymin,n.xmax,n.ymax)),s.set(t,n),n}return s.get(t)}estimateMinimumDistance(i,s){const n={stack:[],error:void 0,hasError:!1};try{const e=t=>p(this.m_a,this.m_eSquared,t),o=this.m_boundaryPtsA.map(e),m=this.m_boundaryPtsB.map(e);let a=Number.MAX_VALUE,r=0,u=0;for(let t=0;t<o.length;++t)for(let e=0;e<m.length;++e){const i=T.distance(o[t],m[e]);i<a&&(a=i,r=t,u=e)}i.outPoint.assign(this.m_boundaryPtsA[r]),s.outPoint.assign(this.m_boundaryPtsB[u]);const c=t(n,new l,!1);return _.geodeticDistance(this.m_a,this.m_eSquared,this.m_boundaryPtsA[r].x,this.m_boundaryPtsA[r].y,this.m_boundaryPtsB[u].x,this.m_boundaryPtsB[u].y,c,null,null,this.m_distCurveType),c.val}catch(o){n.error=o,n.hasError=!0}finally{e(n)}}swapGeometries(t,e){return m(t[0])>m(e[0])&&(e[0]=E(t[0],t[0]=e[0]),this.m_envGeomB=E(this.m_envGeomA,this.m_envGeomA=this.m_envGeomB),!0)}canUseSpatialTree(t,e){return!1}checkGeometriesIntersect(t,e,i,n){let o=t.getGeometryType(),m=e.getGeometryType();if(this.m_envGeomA.isIntersecting(this.m_envGeomB)){if(o===s.enumPoint&&2===e.getDimension()){const s=[0],o=[t.getXY()];if(D(e,o,1,this.m_tolerance,s),0!==s[0])return i.outPoint.assign(o[0]),n.outPoint.assign(o[0]),!0}else if(m===s.enumPoint&&2===t.getDimension()){const s=[2],o=[e.getXY()];if(D(t,o,1,this.m_tolerance,s),0!==s[0])return i.outPoint.assign(o[0]),n.outPoint.assign(o[0]),!0}if(o===s.enumMultiPoint&&2===e.getDimension())return this.multipointIntersectsArea(t,e,i,n);if(m===s.enumMultiPoint&&2===t.getDimension())return this.multipointIntersectsArea(e,t,n,i);let r,u,c=t,h=e;if(o===s.enumEnvelope&&(r=this.envelopeToPolygon(t),c=r,o=s.enumPolygon),m===s.enumEnvelope&&(u=this.envelopeToPolygon(e),h=u,m=s.enumPolygon),a(o)&&a(m)){const t=c.querySegmentIterator(),e=h.querySegmentIterator(),s=N(),o=N();if(q(c,h,t,e,s,o))return i.outPoint.assign(s.outPoint),n.outPoint.assign(s.outPoint),!0}}return!1}multipointIntersectsArea(t,e,i,s){const n=t.getPointCount();for(let o=0;o<n;++o){const n=[2],m=t.getXY(o);if(D(e,[m],1,this.m_tolerance,n),0!==n[0])return i.outPoint.assign(m),s.outPoint.assign(m),!0}return!1}getNearestNeighbourVisitor(t,e,i,s,o,m,a){return n(0),{}}buildSpatialTree(t,e){n(0)}}export{K as G,Q as a,L as m};
|
|
2
|
+
import{__addDisposableResource as t,__disposeResources as e}from"tslib";import{a as i,G as s,g as n,d as o,v as m,j as a}from"./Geometry.js";import{S as r,P as u}from"./MultiPathImpl.js";import{O as c,B as h,ai as l,aj as _,aq as p,ar as d,as as g,at as x,au as y,av as P,ab as S,aw as D,ax as f,r as G,a9 as v}from"./UnitFactory.js";import{k as T,d as b}from"./Envelope.js";import{Envelope2D as w}from"./Envelope2D.js";import{P as M,c as E,o as R,E as C,p as I}from"./Point2D.js";import{T as B}from"./Transformation2D.js";import{s as A,w as q,m as N}from"./Distance2DCalculator-DjIp2uQi.js";import{O as F}from"./OperatorShapePreservingDensify.js";import{O as k}from"./OperatorClip.js";function Y(){return new w}class X{m_a;m_e2;m_b;m_unitToDegree;m_unitToRad;m_u180;m_u360;m_peR1;m_peR2;m_peR3;[Symbol.dispose](){this.m_peR1.destroy(),this.m_peR2.destroy(),this.m_peR3.destroy(),this.m_peR1=null,this.m_peR2=null,this.m_peR3=null}constructor(t,e,i){this.m_peR1=new l,this.m_peR2=new l,this.m_peR3=new l,void 0!==t?this.reset(t,e,i):this.reset(1,0,1)}reset(t,e,i){this.m_a=t,this.m_e2=e,this.m_b=this.m_a*Math.sqrt(1-this.m_e2),this.m_unitToDegree=i,this.m_unitToRad=.017453292519943295*i,this.m_u180=180/this.m_unitToDegree,this.m_u360=360/this.m_unitToDegree}calculateBbox(t,e,i,s){const n=this.m_peR1,o=this.m_peR2,m=this.m_peR3;_.geodeticDistance(this.m_a,this.m_e2,t*this.m_unitToRad,e*this.m_unitToRad,i*this.m_unitToRad,s*this.m_unitToRad,m,n,o,0);const a=Math.cos(n.val),r=Math.cos(o.val+3.141592653589793),u=e*this.m_unitToRad,c=v.phiToEta(this.m_e2,u),h=Math.sin(n.val)*Math.cos(c);let l=e;if(a*r<0){const t=a<0?-1:1,e=Math.acos(Math.abs(h))*t;l=v.etaToPhi(this.m_e2,e)/this.m_unitToRad}let p=I((i-t)*this.m_unitToRad,2*Math.PI);Math.abs(p)>Math.PI&&(p=p>0?p-2*Math.PI:p+2*Math.PI),p/=this.m_unitToRad,i=t+p;const d=Y();return d.xmin=Math.min(t,i),d.xmax=Math.max(t,i),d.ymin=Math.min(e,s),d.ymin=Math.min(d.ymin,l),d.ymax=Math.max(e,s),d.ymax=Math.max(d.ymax,l),d}minDistanceGeodesic(t,e){const i=O(t),s=O(e);if(i&&s)return this.lowerDistanceGeodetic_(t.xmin,t.ymin,e.xmin,e.ymin);const n=this.normalizeGeodesic_(e,t);return U(t,n)?t.ymin>=n.ymax?this.minDistanceGeodesicUpDown_(t,n):n.ymin>=t.ymax?this.minDistanceGeodesicUpDown_(n,t):t.xmin>n.xmax?this.minDistanceGeodesicLeftRight_(n,t):this.minDistanceGeodesicLeftRight_(t,n):0}normalizeGeodesic_(t,e){const i=t.clone(),s=t.clone();let n=j(i,e);if(0===n)return i;for(;s.xmax>e.xmin;){s.xmin-=this.m_u360,s.xmax-=this.m_u360;const t=j(s,e);if(t<n&&(i.assign(s),n=t,0===n))return i}for(s.assign(t);s.xmin<e.xmax;){s.xmin+=this.m_u360,s.xmax+=this.m_u360;const t=j(s,e);if(t<n&&(i.assign(s),n=t,0===n))return i}return i}lowerDistanceGeodetic_(t,e,i,s){const n=this.m_peR1;{const o=this.m_b*this.m_b/this.m_a,m=v.phiToPhig(this.m_e2,this.m_unitToRad*e),a=v.phiToPhig(this.m_e2,this.m_unitToRad*s);_.geodeticDistance(o,0,this.m_unitToRad*t,m,this.m_unitToRad*i,a,n,null,null,0)}return n.val}minDistanceGeodesicUpDown_(t,e){if(e.xmin<=t.xmin?e.xmax>=t.xmin:t.xmax>=e.xmin)return this.lowerDistanceGeodetic_(0,t.ymin,0,e.ymax);if(e.xmin>t.xmax){const i=this.lowerDistanceGeodeticSegMeridional_(t.xmax,t.ymin,t.ymax,e.xmin,e.ymin,e.ymax);if(e.xmax-t.xmin<this.m_u180)return i;const s=this.lowerDistanceGeodeticSegMeridional_(t.xmin,t.ymin,t.ymax,e.xmax,e.ymin,e.ymax);return Math.min(i,s)}{const i=this.lowerDistanceGeodeticSegMeridional_(t.xmin,t.ymin,t.ymax,e.xmax,e.ymin,e.ymax);if(t.xmax-e.xmin<this.m_u180)return i;const s=this.lowerDistanceGeodeticSegMeridional_(t.xmax,t.ymin,t.ymax,e.xmin,e.ymin,e.ymax);return Math.min(i,s)}}minDistanceGeodesicLeftRight_(t,e){let i=Math.abs(t.xmax-e.xmin);for(;i>this.m_u180;)i-=this.m_u360;let s=Math.abs(t.xmin-e.xmax);for(;s>this.m_u180;)s-=this.m_u360;return Math.abs(i)<=Math.abs(s)?this.minDistanceGeodesicLeftRightNormalized_(t,e):this.minDistanceGeodesicLeftRightNormalized_(e,t)}minDistanceGeodesicLeftRightNormalized_(t,e){let i,s;return i=this.lowerDistanceGeodetic_(t.xmax,t.ymin,e.xmin,e.ymin),t.ymin>=e.ymin&&t.ymin<=e.ymax&&(s=this.lowerDistanceGeodeticPtMeridional_(t.xmax,t.ymin,e.xmin,e.ymin,e.ymax),i=Math.min(i,s)),e.ymin>=t.ymin&&e.ymin<=t.ymax&&(s=this.lowerDistanceGeodeticPtMeridional_(e.xmin,e.ymin,t.xmax,t.ymin,t.ymax),i=Math.min(i,s)),s=this.lowerDistanceGeodetic_(t.xmax,t.ymax,e.xmin,e.ymax),i=Math.min(i,s),t.ymax>=e.ymin&&t.ymax<=e.ymax&&(s=this.lowerDistanceGeodeticPtMeridional_(t.xmax,t.ymax,e.xmin,e.ymin,e.ymax),i=Math.min(i,s)),e.ymax>=t.ymin&&e.ymax<=t.ymax&&(s=this.lowerDistanceGeodeticPtMeridional_(e.xmin,e.ymax,t.xmax,t.ymin,t.ymax),i=Math.min(i,s)),i}lowerDistanceGeodeticSegMeridional_(t,e,i,s,n,o){let m=this.lowerDistanceGeodeticPtMeridional_(t,e,s,n,o);const a=this.lowerDistanceGeodeticPtMeridional_(t,i,s,n,o);let r=this.lowerDistanceGeodeticPtMeridional_(s,n,t,e,i);const u=this.lowerDistanceGeodeticPtMeridional_(s,o,t,e,i);return m=Math.min(m,a),r=Math.min(r,u),Math.min(m,r)}lowerDistanceGeodeticPtMeridional_(t,e,i,s,n){const o=this.m_b*this.m_b/this.m_a,m=v.phiToPhig(this.m_e2,this.m_unitToRad*e),a=v.phiToPhig(this.m_e2,this.m_unitToRad*s),r=v.phiToPhig(this.m_e2,this.m_unitToRad*n),u=this.m_peR1,c=this.m_peR2;_.geodeticDistance(o,0,this.m_unitToRad*i,a,this.m_unitToRad*t,m,u,null,null,0),_.geodeticDistance(o,0,this.m_unitToRad*i,r,this.m_unitToRad*t,m,c,null,null,0);const h=p(1,0,new M(this.m_unitToRad*t,m)),l=p(1,0,new M(this.m_unitToRad*i,a)),d=p(1,0,new M(this.m_unitToRad*i,r));let g=new T;g.setCrossProductVector(l,d);const x=l.dotProduct(d);if(g.length()<1.568e-10)return x>=0?Math.min(u.val,c.val):0;g=g.getUnitVector();let y=new T;if(y.setCrossProductVector(g,h),y.length()<1.568e-10){return Math.min(u.val,c.val)-1e-5*o}y=y.getUnitVector();let P=h.sub(g.mul(h.dotProduct(g)));{const e=new T;e.setCrossProductVector(l,P);const i=new T;i.setCrossProductVector(P,d);let s=g.dotProduct(e)>0&&g.dotProduct(i)>0;if(s||(P.negateThis(),e.setCrossProductVector(l,P),i.setCrossProductVector(P,d),s=g.dotProduct(e)>0&&g.dotProduct(i)>0),s){P=P.getUnitVector();const e=f(1,0,P),i=this.m_peR3;_.geodeticDistance(o,0,this.m_unitToRad*t,m,e.x,e.y,i,null,null,0);const s=Math.min(u.val,c.val);return Math.min(s,i.val)}}return Math.min(u.val,c.val)}}function O(t){return t.xmin===t.xmax&&t.ymin===t.ymax}function U(t,e){return e.xmax<t.xmin||e.xmin>t.xmax||e.ymax<t.ymin||e.ymin>t.ymax}function j(t,e){let i,s=0;return i=t.xmin-e.xmax,i>s&&(s=i),i=e.xmin-t.xmax,i>s&&(s=i),s}class V{}function L(t){return{outPoint:void 0===t?new M:t.clone()}}function H(t,e){t.outPoint.assign(e.outPoint)}function z(){return new w}class Q{m_ptDistFrom=new M;m_segStartPt=new M;m_segEndPt=new M;m_sr;m_distCurveType;m_segCurveType;m_a;m_eSquared;m_inputGCS;m_rpu;m_geodeticLength=new l;m_az12=new l;m_minGeodeticDist=new l;m_bIsPannablePcs;m_segStartPt3d=new T;m_segEndPt3d=new T;constructor(t,e,i,s,n=0,o=4){this.m_sr=s,this.m_distCurveType=n,this.m_segCurveType=o,this.m_inputGCS=this.m_sr.getGCS(),this.m_rpu=this.m_inputGCS.getUnit().getUnitToBaseFactor(),this.m_bIsPannablePcs=2===this.m_sr.getCoordinateSystemType()&&this.m_sr.isPannable();const m=G();this.m_inputGCS.querySpheroidData(m),this.m_a=m.majorSemiAxis,this.m_eSquared=m.e2,this.setPointDistFrom(t),this.setSegmentEndPoints(e,i)}setSegmentEndPoints(t,e){this.m_segStartPt.assign(t),this.m_segEndPt.assign(e),this.m_bIsPannablePcs||(this.m_segStartPt.mulThis(this.m_rpu),this.m_segEndPt.mulThis(this.m_rpu)),2===this.m_segCurveType&&(this.m_segStartPt3d.assign(p(this.m_a,this.m_eSquared,this.m_segStartPt)),this.m_segEndPt3d.assign(p(this.m_a,this.m_eSquared,this.m_segEndPt))),this.calculateAndUpdateSegmentLength()}setPointDistFrom(t){this.m_ptDistFrom.assign(t),this.m_ptDistFrom.scale(this.m_rpu)}setSegmentCurveType(t){this.m_segCurveType=t}setDistanceCurveType(t){this.m_distCurveType=t}makeFunctor(){return i=>{let s;switch(this.m_segCurveType){case 0:case 1:case 3:{const o={stack:[],error:void 0,hasError:!1};try{const e=t(o,new l,!1),n=t(o,new l,!1);_.geodeticCoordinate(this.m_a,this.m_eSquared,this.m_segStartPt.x,this.m_segStartPt.y,this.m_geodeticLength.val*i,this.m_az12.val,e,n,this.m_segCurveType),s=new M(e.val,n.val);break}catch(n){o.error=n,o.hasError=!0}finally{e(o)}}case 2:{const t=T.lerp(this.m_segStartPt3d,this.m_segEndPt3d,i);s=f(this.m_a,this.m_eSquared,t);break}case 4:s=M.lerp(this.m_segStartPt,this.m_segEndPt,i),this.m_bIsPannablePcs&&(g(this.m_sr,0,[s],1),s.mulThis(this.m_rpu));break;default:o("Invalid curve type")}return _.geodeticDistance(this.m_a,this.m_eSquared,this.m_ptDistFrom.x,this.m_ptDistFrom.y,s.x,s.y,this.m_minGeodeticDist,null,null,this.m_distCurveType),this.m_minGeodeticDist.val}}calculateAndUpdateSegmentLength(){switch(this.m_segCurveType){case 0:case 2:case 1:case 3:_.geodeticDistance(this.m_a,this.m_eSquared,this.m_segStartPt.x,this.m_segStartPt.y,this.m_segEndPt.x,this.m_segEndPt.y,this.m_geodeticLength,this.m_az12,null,this.m_segCurveType);break;case 4:this.m_geodeticLength.val=M.distance(this.m_segStartPt,this.m_segEndPt);break;default:o("Invalid curve type")}}[Symbol.dispose](){this.m_geodeticLength[Symbol.dispose](),this.m_az12[Symbol.dispose](),this.m_minGeodeticDist[Symbol.dispose]()}}function J(){return new V}class K{m_inputSR;m_distCurveType;m_progressTracker;m_maxDistance;m_maxDeviation;m_inputGCS;m_peGeogcs;m_a;m_eSquared;m_rpu;m_envHelper;m_boxGeomA=z();m_boxGeomB=z();m_envGeomA=new w;m_envGeomB=new w;m_progressCounter=0;m_bIsPannablePcs;m_transformPCS2GCS=null;m_segmentBoxesA=new Map;m_segmentBoxesB=new Map;m_boundaryPtsA=[];m_boundaryPtsB=[];m_scaleToRadians=new B;m_scaleToDegrees=new B;m_tolerance;[Symbol.dispose](){this.m_envHelper[Symbol.dispose]()}constructor(t,e,i,s,n){this.m_inputSR=t,this.m_distCurveType=e,this.m_progressTracker=i,this.m_maxDistance=s,this.m_maxDeviation=n,this.m_inputGCS=t.getGCS(),this.m_peGeogcs=this.m_inputGCS.getPECoordSys(),this.m_tolerance=0;const o=G();this.m_inputGCS.querySpheroidData(o),this.m_a=o.majorSemiAxis,this.m_eSquared=o.e2,this.m_rpu=this.m_inputGCS.getUnit().getUnitToBaseFactor(),this.m_envHelper=new X(this.m_a,this.m_eSquared,1),4===this.m_distCurveType&&(this.m_distCurveType=0),this.m_boxGeomA.setEmpty(),this.m_boxGeomB.setEmpty(),this.m_envGeomA.setEmpty(),this.m_envGeomB.setEmpty(),this.m_bIsPannablePcs=2===this.m_inputSR.getCoordinateSystemType()&&this.m_inputSR.isPannable()}progress(t=!1){}calculate(t,e,i,s){const n=L(),o=L();if(t.queryEnvelope(this.m_envGeomA),e.queryEnvelope(this.m_envGeomB),this.checkGeometriesIntersect(t,e,n,o))return i&&H(i,n),s&&H(s,o),0;const m=this.prepareGeometry(t);if(m.isEmpty())return Number.NaN;const a=this.prepareGeometry(e);if(a.isEmpty())return Number.NaN;this.m_tolerance=this.computeTolerance(m,a);const r=this._ExecuteBruteForce(m,a,n,o);return r>=this.m_maxDistance?Number.NaN:(i&&(this.prepareOutput(n),H(i,n)),s&&(this.prepareOutput(o),H(s,o)),r)}createDistanceFunctor(t,e,i){const s=new Q(t,e,i,this.m_inputSR,this.m_distCurveType);return this.m_bIsPannablePcs||1===this.m_inputSR.getCoordinateSystemType()||s.setSegmentCurveType(2),s}_NormalizeAndProject(t){if(this.m_inputSR.isPannable()&&(t=(new c).foldInto360Range(t,this.m_inputSR)),2===this.m_inputSR.getCoordinateSystemType()){const e=h(this.m_inputSR,this.m_inputGCS,null);t=(new c).execute(t,e,this.m_progressTracker)}return t}_ExecuteBruteForce(t,e,n,o){switch(t.getGeometryType()){case s.enumPoint:return this.calculateDistanceGeodeticPointGeometry(t,e,n,o);case s.enumMultiPoint:return this.calculateDistanceGeodeticMultipointGeometry(t,e,n,o);case s.enumPolyline:case s.enumPolygon:case s.enumEnvelope:return this.calculateDistanceGeodeticMultipathGeometry(t,e,n,o);default:i("")}}calculateDistanceGeodeticPointGeometry(t,e,n,o){switch(e.getGeometryType()){case s.enumPoint:return this.calculateDistanceGeodeticPointPoint(t,e,n,o);case s.enumMultiPoint:return this.calculateDistanceGeodeticPointMultipoint(t,e,n,o);case s.enumPolyline:case s.enumPolygon:return this.calculateDistanceGeodeticPointMultipath(t,e,n,o);default:i("")}}calculateDistanceGeodeticPointPoint(i,s,n,o){const m={stack:[],error:void 0,hasError:!1};try{const e=i.getXY();e.scale(this.m_rpu);const a=s.getXY();a.scale(this.m_rpu),n.outPoint.assign(e),o.outPoint.assign(a);const r=t(m,new l,!1);return _.geodeticDistance(this.m_a,this.m_eSquared,e.x,e.y,a.x,a.y,r,null,null,this.m_distCurveType),r.val}catch(a){m.error=a,m.hasError=!0}finally{e(m)}}calculateDistanceGeodeticPointMultipoint(i,s,n,o){const m={stack:[],error:void 0,hasError:!1};try{this.computeEnvelopesAndBoxes(i,s);const e=this.estimateMinimumDistance(n,o);let a=e<this.m_maxDistance?e:this.m_maxDistance;const r=i.getXY();r.scale(this.m_rpu),n.outPoint.assign(r);const u=p(this.m_a,this.m_eSquared,r),c=new M,h=s.getImpl(),d=t(m,new l,!1),g=h.getPointCount();for(let t=0;t<g;++t){h.queryXY(t,c),c.scale(this.m_rpu);const e=p(this.m_a,this.m_eSquared,c);if(!(T.distance(u,e)>a)&&(!(this.m_envHelper.minDistanceGeodesic(this.m_boxGeomA,this.m_boxGeomB)>a)&&(_.geodeticDistance(this.m_a,this.m_eSquared,r.x,r.y,c.x,c.y,d,null,null,this.m_distCurveType),d.val<a&&(a=d.val,o.outPoint=c,0===a))))return a}return a===this.m_maxDistance?Number.POSITIVE_INFINITY:a}catch(a){m.error=a,m.hasError=!0}finally{e(m)}}calculateDistanceGeodeticPointMultipath(i,s,o,m){const a={stack:[],error:void 0,hasError:!1};try{const e=new M,r=new M;e.assign(i.getXY()),r.assign(i.getXY()),o.outPoint.assign(r.mul(this.m_rpu)),this.m_bIsPannablePcs&&d(this.m_inputSR,[e],1,!1),this.computeEnvelopesAndBoxes(i,s);const u=this.estimateMinimumDistance(o,m);let c=u<this.m_maxDistance?u:this.m_maxDistance;const h=s.getImpl(),l=new M(0,0),_=new M(0,0),p=[1],g=this.canUseSpatialTree(i,s),x=J();g&&this.buildSpatialTree(x,s);const y=z();y.setCoords({xmin:r.x,ymin:r.y,xmax:r.x,ymax:r.y});const P=t(a,this.createDistanceFunctor(r,l,_),!1),S=h.querySegmentIterator();if(S.stripAttributes(),g)n(0);else for(;S.nextPath();)for(;S.hasNextSegment();){const t=S.nextSegment(),i=this.findOrComputeBoxSegment(S.getStartPointIndex(),t,this.m_segmentBoxesB);if(this.m_envHelper.minDistanceGeodesic(y,i)>c)continue;const s=this.calculateDistanceGeodeticPointSegment(e,r,t,p,P);if(s.second<c&&(this.updateOutputSegment(m,t,s.first),c=s.second,0===c))return 0}return c===this.m_maxDistance?Number.POSITIVE_INFINITY:c}catch(r){a.error=r,a.hasError=!0}finally{e(a)}}calculateDistanceGeodeticMultipointGeometry(t,e,n,o){switch(e.getGeometryType()){case s.enumPoint:return this.calculateDistanceGeodeticPointMultipoint(e,t,o,n);case s.enumMultiPoint:return this.calculateDistanceGeodeticMultipointMultipoint(t,e,n,o);case s.enumPolyline:case s.enumPolygon:case s.enumEnvelope:return this.calculateDistanceGeodeticMultipointMultipath(t,e,n,o);default:i("")}}calculateDistanceGeodeticMultipointMultipoint(i,s,n,o){const m={stack:[],error:void 0,hasError:!1};try{const e=t(m,new l,!1);this.computeEnvelopesAndBoxes(i,s);const a=this.estimateMinimumDistance(n,o);let r=a<this.m_maxDistance?a:this.m_maxDistance;const u=new M,c=new M,h=i.getImpl(),d=s.getImpl(),g=z(),x=h.getPointCount(),y=d.getPointCount();for(let t=0;t<x;++t){if(u.assign(h.getXY(t)),g.setCoords({xmin:u.x,ymin:u.y,xmax:u.x,ymax:u.y}),this.m_envHelper.minDistanceGeodesic(g,this.m_boxGeomB)>r)continue;u.scale(this.m_rpu);const i=p(this.m_a,this.m_eSquared,u);for(let t=0;t<y;++t){c.assign(d.getXY(t)),c.scale(this.m_rpu);const s=p(this.m_a,this.m_eSquared,c);if(!(T.distance(i,s)>=r)&&(_.geodeticDistance(this.m_a,this.m_eSquared,u.x,u.y,c.x,c.y,e,null,null,this.m_distCurveType),e.val<r&&(n.outPoint.assign(u),o.outPoint.assign(c),r=e.val,0===r)))return r}}return r===this.m_maxDistance?Number.POSITIVE_INFINITY:r}catch(a){m.error=a,m.hasError=!0}finally{e(m)}}calculateDistanceGeodeticMultipointMultipath(i,s,o,m){const a={stack:[],error:void 0,hasError:!1};try{const e=s.getImpl().querySegmentIterator();e.stripAttributes(),this.computeEnvelopesAndBoxes(i,s);const r=this.estimateMinimumDistance(o,m);let u=r<this.m_maxDistance?r:this.m_maxDistance;const c=new M,h=new M(0,0),l=new M(0,0),_=new M(0,0),p=[0],g=z(),x=t(a,this.createDistanceFunctor(h,l,_),!1),y=J(),P=this.canUseSpatialTree(i,s);P&&this.buildSpatialTree(y,s);const S=i.getPointCount();for(let t=0;t<S;++t)if(c.assign(i.getXY(t)),h.assign(i.getXY(t)),this.m_bIsPannablePcs&&d(this.m_inputSR,[c],1,!1),g.setCoords({xmin:h.x,ymin:h.y,xmax:h.x,ymax:h.y}),!(this.m_envHelper.minDistanceGeodesic(g,this.m_boxGeomB)>u))if(x.setPointDistFrom(h),P)n(0);else{for(;e.nextPath();)for(;e.hasNextSegment();){const t=e.nextSegment();if(this.m_envHelper.minDistanceGeodesic(g,this.findOrComputeBoxSegment(e.getStartPointIndex(),t,this.m_segmentBoxesB))>u)continue;const i=this.calculateDistanceGeodeticPointSegment(c,h,t,p,x);if(i.second<u&&(o.outPoint.assign(h.mul(this.m_rpu)),this.updateOutputSegment(m,t,i.first),u=i.second,0===u))return 0}e.resetToFirstPath()}return u===this.m_maxDistance?Number.POSITIVE_INFINITY:u}catch(r){a.error=r,a.hasError=!0}finally{e(a)}}calculateDistanceGeodeticMultipathGeometry(t,e,n,o){switch(e.getGeometryType()){case s.enumPoint:return this.calculateDistanceGeodeticPointMultipath(e,t,o,n);case s.enumMultiPoint:return this.calculateDistanceGeodeticMultipointMultipath(e,t,o,n);case s.enumPolyline:case s.enumPolygon:case s.enumEnvelope:return this.calculateDistanceGeodeticMultipathMultipath(t,e,n,o);default:i("")}}calculateDistanceGeodeticMultipathMultipath(t,e,i,s){const n=[t],o=[e],m=this.swapGeometries(n,o),a=n[0],r=o[0];this.computeEnvelopesAndBoxes(n[0],o[0]);const u=this.estimateMinimumDistance(i,s),c=this.calculateDistanceGeodeticMultipathMultipath_(a,r,i,s,u);return m&&(s.outPoint=E(i.outPoint,i.outPoint=s.outPoint)),c}calculateDistanceGeodeticMultipathMultipath_(i,s,o,m,a=Number.MAX_VALUE){const u={stack:[],error:void 0,hasError:!1};try{let e=a;const c=new M(0,0),h=new M,l=new M(0,0),_=new M,p=new M(0,0),d=new M,y=new M,P=new M,S=[new M],D=[0],f=[0],G=z(),v=z(),T=t(u,this.createDistanceFunctor(p,c,l),!1),b=J(),w=this.canUseSpatialTree(i,s);w&&this.buildSpatialTree(b,s);const E=s.querySegmentIterator();E.stripAttributes();const R=new r,C=A(i);for(let t=0;t<C.length;++t){const s=C[t];i.getSegmentBuffer(s,R,!0);const a=R.get();if(G.assign(this.findOrComputeBoxSegment(s,a,this.m_segmentBoxesA)),w)n(0);else{if(p.assign(a.getStartXY()),d.assign(a.getStartXY()),y.assign(a.getEndXY()),P.assign(a.getEndXY()),this.m_bIsPannablePcs&&(g(this.m_inputSR,0,[d],1),g(this.m_inputSR,0,[P],1)),this.m_envHelper.minDistanceGeodesic(G,this.m_boxGeomB)>e)continue;for(;E.nextPath();){for(;E.hasNextSegment();){const t=E.nextSegment();if(c.assign(t.getStartXY()),h.assign(t.getStartXY()),l.assign(t.getEndXY()),_.assign(t.getEndXY()),a.intersect(t,S,D,f,this.m_tolerance))return this.updateOutputSegment(o,a,D[0]),this.updateOutputSegment(m,t,f[0]),0;if(this.m_bIsPannablePcs&&(g(this.m_inputSR,0,[h],1),g(this.m_inputSR,0,[_],1)),v.assign(this.findOrComputeBoxPoint(E.getStartPointIndex(),h,_,this.m_segmentBoxesB)),this.m_envHelper.minDistanceGeodesic(G,v)>e)continue;T.setSegmentEndPoints(c,l),T.setPointDistFrom(d);let i=x(T.makeFunctor(),0,1,1e-10);if(i.second<e&&(o.outPoint.assign(d.mul(this.m_rpu)),this.updateOutputSegment(m,t,i.first),e=i.second,0===e))break;if(T.setPointDistFrom(P),i=x(T.makeFunctor(),0,1,1e-10),i.second<e&&(o.outPoint.assign(P.mul(this.m_rpu)),this.updateOutputSegment(m,t,i.first),e=i.second,0===e))break;if(T.setSegmentEndPoints(p,y),T.setPointDistFrom(h),i=x(T.makeFunctor(),0,1,1e-10),i.second<e&&(this.updateOutputSegment(o,a,i.first),m.outPoint.assign(h.mul(this.m_rpu)),e=i.second,0===e))break;if(T.setPointDistFrom(_),i=x(T.makeFunctor(),0,1,1e-10),i.second<e&&(this.updateOutputSegment(o,a,i.first),m.outPoint.assign(_.mul(this.m_rpu)),e=i.second,0===e))break}if(0===e)return 0}E.resetToFirstPath()}}return e===this.m_maxDistance?Number.POSITIVE_INFINITY:e}catch(c){u.error=c,u.hasError=!0}finally{e(u)}}calculateDistanceGeodeticPointSegment(t,e,i,s,n){const o=i.getStartXY(),m=i.getEndXY();return i.intersectPoint(t,s,this.m_tolerance)?R(s[0],0):(n.setPointDistFrom(e),n.setSegmentEndPoints(o,m),x(n.makeFunctor(),0,1,1e-10))}prepareGeometry(t){let e=t.clone();const i=t.getGeometryType();if(i===s.enumPoint||i===s.enumMultiPoint)return this._NormalizeAndProject(e);if(i===s.enumEnvelope&&(e=this.envelopeToPolygon(e)),this.m_inputSR.isPannable())return this.prepareGeometryPannable(e,4);if(2===this.m_inputSR.getCoordinateSystemType()){if(e=y(e,this.m_inputSR,0,null),e.isEmpty())return e;e=(new F).execute(e,this.m_inputSR,5e4,this.m_maxDeviation/2,0,null);const t=this.m_inputSR.getSRToGCSTransform();return(new c).execute(e,t,this.m_progressTracker)}const n=new w;e.queryLooseEnvelope(n);const o=this.m_inputSR.getPannableExtent();if(n.ymin<o.ymin||n.ymax>o.ymax){const t=new w(n.xmin-1,o.ymin,n.xmax+1,o.ymax);if(e=(new k).execute(e,t,this.m_inputSR,this.m_progressTracker),e.isEmpty())return e}return n.width()>2*o.width()?(e=P(e,-2*o.width(),2*o.width(),this.m_inputSR,!0,0,!0,this.m_progressTracker),e):e}prepareGeometryPannable(t,e){const i=new w;t.queryEnvelope(i);const s=this.m_inputSR.getPannableExtent();if(s.containsEnvelope(i))return t;const n=new C;s.queryIntervalX(n);const o=new C;return i.queryIntervalX(o),t=n.contains(o)?S(t,this.m_inputSR):(new c).foldInto360RangeGeodetic(t,this.m_inputSR,e)}prepareOutput(t){t.outPoint.scale(1/this.m_rpu),2===this.m_inputSR.getCoordinateSystemType()&&d(this.m_inputSR,[t.outPoint],1,!1)}updateOutputSegment(t,e,i){e.queryCoord2D(i,t.outPoint),this.m_bIsPannablePcs&&g(this.m_inputSR,0,[t.outPoint],1),t.outPoint.mulThis(this.m_rpu)}computeTolerance(t,e){t.queryEnvelope(this.m_envGeomA),e.queryEnvelope(this.m_envGeomB);const i=new w(this.m_envGeomA);return i.mergeEnvelope2D(this.m_envGeomB),b(null,i)}envelopeToPolygon(t){const e=new u;return e.addEnvelope(t,!1),e}computeEnvelopesAndBoxes(t,e){t.queryEnvelope(this.m_envGeomA),e.queryEnvelope(this.m_envGeomB),this.m_boxGeomA=this.computeBoxGeometry(t,this.m_boundaryPtsA,this.m_segmentBoxesA),this.m_boxGeomB=this.computeBoxGeometry(e,this.m_boundaryPtsB,this.m_segmentBoxesB)}computeBoxGeometry(t,e,i){switch(t.getGeometryType()){case s.enumPoint:return this.computeBoxPoint(t,e);case s.enumMultiPoint:return this.computeBoxMultiPoint(t,e);case s.enumPolyline:case s.enumPolygon:return this.computeBoxMultiPath(t,e,i);default:o("Invalid geometry type")}}computeBoxPoint(t,e){const i=t.getXY();e.length=0,e.push(i.mul(this.m_rpu));const s=z();return s.setCoords({xmin:i.x,ymin:i.y,xmax:i.x,ymax:i.y}),s}computeBoxMultiPoint(t,e){let i=!0;for(let n=0;n<t.getPointCount();++n){const s=t.getXY(n);if(i){e.length=0;for(let t=0;t<4;++t)e.push(s.clone());i=!1}s.x<e[0].x&&e[0].assign(s),s.y>e[1].y&&e[1].assign(s),s.x>e[2].x&&e[2].assign(s),s.y<e[3].y&&e[3].assign(s)}for(let n=0;n<e.length;++n)e[n].mulThis(this.m_rpu);const s=z();return t.queryEnvelope(s),s}computeBoxMultiPath(t,e,i){let s=!0;const n=z();n.setEmpty();const o=t.querySegmentIterator();for(o.stripAttributes();o.nextPath();)for(;o.hasNextSegment();){const t=o.nextSegment(),m=t.getStartXY(),a=t.getEndXY();if(this.m_bIsPannablePcs&&(g(this.m_inputSR,0,[m],1),g(this.m_inputSR,0,[a],1)),s){for(let t=0;t<4;++t)e.push(m.clone());s=!1}m.x<e[0].x&&e[0].assign(m),m.y>e[1].y&&e[1].assign(m),m.x>e[2].x&&e[2].assign(m),m.y<e[3].y&&e[3].assign(m),a.x<e[0].x&&e[0].assign(a),a.y>e[1].y&&e[1].assign(a),a.x>e[2].x&&e[2].assign(a),a.y<e[3].y&&e[3].assign(a);const r=this.findOrComputeBoxPoint(o.getStartPointIndex(),m,a,i);n.mergeEnvelope2D(r)}for(let m=0;m<e.length;++m)e[m].mulThis(this.m_rpu);return n}findOrComputeBoxSegment(t,e,i){if(!i.has(t)){let s=z();if(e.queryEnvelope(s),this.m_bIsPannablePcs){const t=M.construct(s.xmin,s.ymin),e=M.construct(s.xmax,s.ymax);g(this.m_inputSR,0,[t],1),g(this.m_inputSR,0,[e],1),s=this.m_envHelper.calculateBbox(t.x,t.y,e.x,e.y)}return i.set(t,s),s}return i.get(t)}findOrComputeBoxPoint(t,e,i,s){if(!s.has(t)){let n=z();return n.setCoords({xmin:e.x,ymin:e.y,xmax:i.x,ymax:i.y}),this.m_bIsPannablePcs&&(n=this.m_envHelper.calculateBbox(n.xmin,n.ymin,n.xmax,n.ymax)),s.set(t,n),n}return s.get(t)}estimateMinimumDistance(i,s){const n={stack:[],error:void 0,hasError:!1};try{const e=t=>p(this.m_a,this.m_eSquared,t),o=this.m_boundaryPtsA.map(e),m=this.m_boundaryPtsB.map(e);let a=Number.MAX_VALUE,r=0,u=0;for(let t=0;t<o.length;++t)for(let e=0;e<m.length;++e){const i=T.distance(o[t],m[e]);i<a&&(a=i,r=t,u=e)}i.outPoint.assign(this.m_boundaryPtsA[r]),s.outPoint.assign(this.m_boundaryPtsB[u]);const c=t(n,new l,!1);return _.geodeticDistance(this.m_a,this.m_eSquared,this.m_boundaryPtsA[r].x,this.m_boundaryPtsA[r].y,this.m_boundaryPtsB[u].x,this.m_boundaryPtsB[u].y,c,null,null,this.m_distCurveType),c.val}catch(o){n.error=o,n.hasError=!0}finally{e(n)}}swapGeometries(t,e){return m(t[0])>m(e[0])&&(e[0]=E(t[0],t[0]=e[0]),this.m_envGeomB=E(this.m_envGeomA,this.m_envGeomA=this.m_envGeomB),!0)}canUseSpatialTree(t,e){return!1}checkGeometriesIntersect(t,e,i,n){let o=t.getGeometryType(),m=e.getGeometryType();if(this.m_envGeomA.isIntersecting(this.m_envGeomB)){if(o===s.enumPoint&&2===e.getDimension()){const s=[0],o=[t.getXY()];if(D(e,o,1,this.m_tolerance,s),0!==s[0])return i.outPoint.assign(o[0]),n.outPoint.assign(o[0]),!0}else if(m===s.enumPoint&&2===t.getDimension()){const s=[2],o=[e.getXY()];if(D(t,o,1,this.m_tolerance,s),0!==s[0])return i.outPoint.assign(o[0]),n.outPoint.assign(o[0]),!0}if(o===s.enumMultiPoint&&2===e.getDimension())return this.multipointIntersectsArea(t,e,i,n);if(m===s.enumMultiPoint&&2===t.getDimension())return this.multipointIntersectsArea(e,t,n,i);let r,u,c=t,h=e;if(o===s.enumEnvelope&&(r=this.envelopeToPolygon(t),c=r,o=s.enumPolygon),m===s.enumEnvelope&&(u=this.envelopeToPolygon(e),h=u,m=s.enumPolygon),a(o)&&a(m)){const t=c.querySegmentIterator(),e=h.querySegmentIterator(),s=N(),o=N();if(q(c,h,t,e,s,o))return i.outPoint.assign(s.outPoint),n.outPoint.assign(s.outPoint),!0}}return!1}multipointIntersectsArea(t,e,i,s){const n=t.getPointCount();for(let o=0;o<n;++o){const n=[2],m=t.getXY(o);if(D(e,[m],1,this.m_tolerance,n),0!==n[0])return i.outPoint.assign(m),s.outPoint.assign(m),!0}return!1}getNearestNeighbourVisitor(t,e,i,s,o,m,a){return n(0),{}}buildSpatialTree(t,e){n(0)}}export{K as G,Q as a,L as m};
|
package/chunks/GeodeticUtils.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{__addDisposableResource as r,__disposeResources as t}from"tslib";import{t as s}from"./Geometry.js";import{m as a,P as e}from"./Point2D.js";import"./MultiPathImpl.js";import{h as o,r as n,
|
|
2
|
+
import{__addDisposableResource as r,__disposeResources as t}from"tslib";import{t as s}from"./Geometry.js";import{m as a,P as e}from"./Point2D.js";import"./MultiPathImpl.js";import{h as o,r as n,ai as i,O as l,aj as c,aE as m}from"./UnitFactory.js";function f(m,f,g,u,h,y){const N={stack:[],error:void 0,hasError:!1};try{4===u&&s("");const t=m,S=o(t),p=n();S.querySpheroidData(p);const T=p.e2,d=p.majorSemiAxis,j=S.getUnit().getUnitToBaseFactor(),v=r(N,new i,!1),x=r(N,new i,!1),w=r(N,new i,!1);if(f.isNAN()||g.isNAN())return Number.NaN;const A=a(e,2);A[0].assign(f),A[1].assign(g);const C=a(e,2),E=t.getGCS()!==t?t.getSRToGCSTransform():null;if(E){if(2!==(new l).transform(E,A,2,C))return Number.NaN}else C[0].assign(A[0]),C[1].assign(A[1]);return C[0].scale(j),C[1].scale(j),c.geodeticDistance(d,T,C[0].x,C[0].y,C[1].x,C[1].y,v,x,w,u),h[0]=x.val,y[0]=w.val,v.val}catch(S){N.error=S,N.hasError=!0}finally{t(N)}}function g(l,f,g,u,h,y){const N={stack:[],error:void 0,hasError:!1};try{4===y&&s("");const t=l,S=o(t),p=n();S.querySpheroidData(p);const T=p.e2,d=p.majorSemiAxis,j=S.getUnit().getUnitToBaseFactor(),v=r(N,new i,!1),x=r(N,new i,!1),w=t.getSRToGCSTransform(),A=t.getGCSToSRTransform(),C=a(e,100),E=a(e,100);let G=0;for(let r=0,s=0;r<g;){let t=g-r;t>C.length&&(t=C.length);for(let s=0;s<t;s++)C[s].assign(f[r+s]);if(m(w,C,t,E,null)>0){for(let r=0;r<t;r++){const t=E[r].clone();t.isNAN()?C[r].assign(t):(t.scale(j),c.geodeticCoordinate(d,T,t.x,t.y,u,h,v,x,y),t.x=v.val,t.y=x.val,t.scale(1/j),C[r].assign(t))}G+=m(A,C,t,E,null)}for(let r=0;r<t;r++)f[s+r].assign(E[r]);r+=t,s+=t}return G}catch(S){N.error=S,N.hasError=!0}finally{t(N)}}export{f as calculateDistanceAndAzimuth,g as movePointsByDistance};
|