@arcgis/core 5.2.0-next.69 → 5.2.0-next.70
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/Basemap.js +1 -1
- package/Ground.js +1 -1
- package/WebDocument2D.js +1 -1
- package/WebScene.js +1 -1
- package/applications/Components/analysisUtils.js +1 -1
- package/applications/Components/arcadeEditorUtils.js +1 -1
- package/applications/Components/testUtils.js +1 -1
- package/applications/Urban/meshUtils.js +1 -1
- package/arcade/arcadeCompiler.js +1 -1
- package/arcade/functions/geomasync.js +1 -1
- package/arcade/functions/geomsync.js +1 -1
- package/arcade/functions/knowledgegraph.js +1 -1
- package/arcade/functions/track.js +1 -1
- package/arcade/geometry/operators.js +1 -1
- package/arcade/geometry/operatorsWorker.js +1 -1
- package/arcade/geometry/rotate.js +2 -0
- package/arcade/geometry/unitConversion.js +1 -1
- package/arcgisGlobal.d.ts +1 -0
- package/assets/components/assets/icon/loadConfiguration16.json +1 -0
- package/assets/components/assets/icon/loadConfiguration24.json +1 -0
- package/assets/components/assets/icon/loadConfiguration32.json +1 -0
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/{bece22668622a9a6bfe2.js → 011281fe918c4f0aec5d.js} +1 -1
- package/assets/esri/core/workers/chunks/01c92e68fb17cf2d0e08.js +1 -0
- package/assets/esri/core/workers/chunks/02dd79beb13eff6be85e.js +1 -0
- package/assets/esri/core/workers/chunks/0623acb2bd14a61b65c9.js +29 -0
- package/assets/esri/core/workers/chunks/065e3353124fc5ac44ce.js +1 -0
- package/assets/esri/core/workers/chunks/06c9aac75a01d3af6d54.js +1 -0
- package/assets/esri/core/workers/chunks/073f1d5f89875c6aefb1.js +1 -0
- package/assets/esri/core/workers/chunks/{d583bcea4d1a21da9147.js → 0846855843f85661e974.js} +1 -1
- package/assets/esri/core/workers/chunks/{7a818499c1079906c2d7.js → 089f8c60e96d920a2cb2.js} +1 -1
- package/assets/esri/core/workers/chunks/09653bd2a31d293a10d9.js +2 -0
- package/assets/esri/core/workers/chunks/0ae0483b72f5e8d00d55.js +1 -0
- package/assets/esri/core/workers/chunks/0aedeb837399d3f92e4a.js +1 -0
- package/assets/esri/core/workers/chunks/0b18de5147d76b68896f.js +1 -0
- package/assets/esri/core/workers/chunks/{f5d809d30cbb56be852d.js → 0e333aced8b23aa49a0e.js} +1 -1
- package/assets/esri/core/workers/chunks/{dad39ddf0f8dfb0bef47.js → 0eaa8265a4cd64297545.js} +1 -1
- package/assets/esri/core/workers/chunks/{4e1b087453fc5e20e961.js → 118ccfa2d685764752ee.js} +1 -1
- package/assets/esri/core/workers/chunks/158d2ac0333d53556e33.js +1 -0
- package/assets/esri/core/workers/chunks/160b204cbf5bda2a29e9.js +1 -0
- package/assets/esri/core/workers/chunks/16cade1c2ddf44e336ee.js +1 -0
- package/assets/esri/core/workers/chunks/19233d0016e5b154c5ce.js +1 -0
- package/assets/esri/core/workers/chunks/19cb8963d5ec2246357b.js +1 -0
- package/assets/esri/core/workers/chunks/{0ae35b02dda9b9662560.js → 1ac8a7a129ba33e05a24.js} +1 -1
- package/assets/esri/core/workers/chunks/1b130af7d14eaae69d96.js +1 -0
- package/assets/esri/core/workers/chunks/1ca04ecf010e68863014.js +1 -0
- package/assets/esri/core/workers/chunks/1cc063aa2ddf44bbd515.js +1 -0
- package/assets/esri/core/workers/chunks/{c055c16379f5bb56e930.js → 1d92d53186debd52e753.js} +1 -1
- package/assets/esri/core/workers/chunks/{37a8cfec11057947b45f.js → 1dba93abe84d30f05d8d.js} +1 -1
- package/assets/esri/core/workers/chunks/1e0140556c2e3fa72545.js +1 -0
- package/assets/esri/core/workers/chunks/1e5cb72830c7f32f2961.js +1 -0
- package/assets/esri/core/workers/chunks/{510acf2e8781be9b0dba.js → 1f888f026b004447772c.js} +1 -1
- package/assets/esri/core/workers/chunks/2033e6d42453e4e67048.js +1 -0
- package/assets/esri/core/workers/chunks/24006cea112d657f053a.js +1 -0
- package/assets/esri/core/workers/chunks/{7b531feba4fd662575f9.js → 28924f31f5ba8ebdc60a.js} +1 -1
- package/assets/esri/core/workers/chunks/{893ffc38e1a43de5b63d.js → 28b09fe50b855a1d8a3f.js} +1 -1
- package/assets/esri/core/workers/chunks/{b9c7aa04861f545a559c.js → 2bcb7e43578124538c3c.js} +1 -1
- package/assets/esri/core/workers/chunks/2bdb9b5365869081c936.js +1 -0
- package/assets/esri/core/workers/chunks/{df89bf05c18f0c8e418b.js → 2cfe6f41865ffb3a4645.js} +1 -1
- package/assets/esri/core/workers/chunks/{63858dfcff1177e597e7.js → 2d1ae18a28491b00091d.js} +1 -1
- package/assets/esri/core/workers/chunks/2d3a18d56e2e5669c562.js +1 -0
- package/assets/esri/core/workers/chunks/2d45daacec0d5ed38782.js +1 -0
- package/assets/esri/core/workers/chunks/2f58e1f64df2da8259a2.js +1 -0
- package/assets/esri/core/workers/chunks/31669511cfddf116d991.js +1 -0
- package/assets/esri/core/workers/chunks/32f5112c848efec6c33b.js +1 -0
- package/assets/esri/core/workers/chunks/33e293836f5d28dc5d62.js +1 -0
- package/assets/esri/core/workers/chunks/{59a795eba31061dc357a.js → 359584a8fb5687a7d098.js} +1 -1
- package/assets/esri/core/workers/chunks/{9c5dff4f13102871786e.js → 36171c72a3c04b0d13ef.js} +1 -1
- package/assets/esri/core/workers/chunks/38660a8cc3623c854d88.js +1 -0
- package/assets/esri/core/workers/chunks/3978f00a03e97645b276.js +1 -0
- package/assets/esri/core/workers/chunks/3b14ed3184743df336a6.js +1 -0
- package/assets/esri/core/workers/chunks/{f82cd34a79c8aa58d40c.js → 3b3a8a6167f2e1eeb828.js} +2 -2
- package/assets/esri/core/workers/chunks/3d6b2d5ae647e140abaf.js +1 -0
- package/assets/esri/core/workers/chunks/3dc71e03a630dd50b28e.js +1 -0
- package/assets/esri/core/workers/chunks/3de6e54b6ed0feae1940.js +1 -0
- package/assets/esri/core/workers/chunks/3dff36f6de181d9dcdc5.js +1 -0
- package/assets/esri/core/workers/chunks/3fd022df127af32782ce.js +1 -0
- package/assets/esri/core/workers/chunks/40693ee558a1eb1e93f4.js +1 -0
- package/assets/esri/core/workers/chunks/4344ab1250a1c550bf8b.js +1 -0
- package/assets/esri/core/workers/chunks/4491dc227c28e2ab4f8e.js +1 -0
- package/assets/esri/core/workers/chunks/{909e88c27d80777b047c.js → 463747a822499dd933ef.js} +1 -1
- package/assets/esri/core/workers/chunks/4695cd6120f60b234d5c.js +1 -0
- package/assets/esri/core/workers/chunks/4823e77515f451628fad.js +1 -0
- package/assets/esri/core/workers/chunks/484b3e2a220c440ccbb4.js +1 -0
- package/assets/esri/core/workers/chunks/4c2794687aea172775a0.js +1 -0
- package/assets/esri/core/workers/chunks/{b5b698008b8f3f4d5d61.js → 4ce57dd39075e8fb357c.js} +1 -1
- package/assets/esri/core/workers/chunks/4da993c79b373b9d304e.js +2 -0
- package/assets/esri/core/workers/chunks/4da993c79b373b9d304e.js.LICENSE.txt +4 -0
- package/assets/esri/core/workers/chunks/4e129b9f5772a06e580c.js +1 -0
- package/assets/esri/core/workers/chunks/50e0dd74795978468625.js +1 -0
- package/assets/esri/core/workers/chunks/{0a98a13418f53082ca7a.js → 5459ba8fdeb2370bb52b.js} +1 -1
- package/assets/esri/core/workers/chunks/582a1d468089b9986416.js +1 -0
- package/assets/esri/core/workers/chunks/5e3d5347223f0111f40f.js +1 -0
- package/assets/esri/core/workers/chunks/{bfb626805405646a0419.js → 5eb29f0068f1c839d05e.js} +1 -1
- package/assets/esri/core/workers/chunks/5f201c77a09ae0df29d6.js +1 -0
- package/assets/esri/core/workers/chunks/{6d5038d4351fe29e2718.js → 5fb76575575fe8cfb1f0.js} +1 -1
- package/assets/esri/core/workers/chunks/6072c63a5da4366e9942.js +1 -0
- package/assets/esri/core/workers/chunks/6080e46fc79127500283.js +1 -0
- package/assets/esri/core/workers/chunks/623d5518bca227f643bd.js +1 -0
- package/assets/esri/core/workers/chunks/62811bca7ad2100c023c.js +1 -0
- package/assets/esri/core/workers/chunks/6357c7cac401aee9fe77.js +1 -0
- package/assets/esri/core/workers/chunks/{91c543443cd6768ad6ff.js → 6525c925bb91facb3575.js} +1 -1
- package/assets/esri/core/workers/chunks/67d3ff7fcefaa7d5d27f.js +1 -0
- package/assets/esri/core/workers/chunks/{b5571e93bc136dac8ee1.js → 67ebde34377f98d17cda.js} +1 -1
- package/assets/esri/core/workers/chunks/687cf21e027f49b44d22.js +1 -0
- package/assets/esri/core/workers/chunks/{6b0acd1a7dd74a7367e0.js → 694371f51c52a7a94da4.js} +1 -1
- package/assets/esri/core/workers/chunks/6a9002fcba11e2cf3f2e.js +1 -0
- package/assets/esri/core/workers/chunks/{f4e813ead56d963b16b8.js → 6b208bac120bcfecd9e4.js} +1 -1
- package/assets/esri/core/workers/chunks/6cd6d0cfd313f0475d98.js +1 -0
- package/assets/esri/core/workers/chunks/6f58cb9dffe8016397a2.js +1 -0
- package/assets/esri/core/workers/chunks/7260e63252fa5452dc22.js +1 -0
- package/assets/esri/core/workers/chunks/72dcd4bd1a28bf8605c5.js +1 -0
- package/assets/esri/core/workers/chunks/73f77f5a6907cb8d9a35.js +1 -0
- package/assets/esri/core/workers/chunks/77df0bb35d2688729479.js +1 -0
- package/assets/esri/core/workers/chunks/{09c43bcb09aad02e83a9.js → 7a143ca61c0a70306185.js} +1 -1
- package/assets/esri/core/workers/chunks/7ca9c908432b1afa0367.js +1 -0
- package/assets/esri/core/workers/chunks/{ec2e0b2e31fd53b81d0a.js → 7ddf9b2718dd047f15e6.js} +1 -1
- package/assets/esri/core/workers/chunks/7f208ef75ef2ce0d7cf9.js +1 -0
- package/assets/esri/core/workers/chunks/7f4a592bcf4ecb55949a.js +1 -0
- package/assets/esri/core/workers/chunks/7f91e45156bbe88f9a62.js +1 -0
- package/assets/esri/core/workers/chunks/864691186c449ca2c3db.js +1 -0
- package/assets/esri/core/workers/chunks/869d292a60747c93dc84.js +1 -0
- package/assets/esri/core/workers/chunks/{7e2794705b4e679fcb3f.js → 86a4057572755b403548.js} +1 -1
- package/assets/esri/core/workers/chunks/{99772ce7e628364434fa.js → 8c1bddc88cc5f4251021.js} +1 -1
- package/assets/esri/core/workers/chunks/8c76f31a363dd0c3354d.js +1 -0
- package/assets/esri/core/workers/chunks/8eecc6df6511c8830f5d.js +1 -0
- package/assets/esri/core/workers/chunks/{0da4816c11b45b4a6289.js → 8fea514aada1195c8f30.js} +1 -1
- package/assets/esri/core/workers/chunks/{7ebbb90d80600d9ba889.js → 913fb883455aeac8582b.js} +1 -1
- package/assets/esri/core/workers/chunks/927582ec15bff2acbb49.js +1 -0
- package/assets/esri/core/workers/chunks/{89132395eca329b9ab92.js → 9482a6d7baa24bbf5693.js} +1 -1
- package/assets/esri/core/workers/chunks/9684ab5e8254fdfcb7bb.js +1 -0
- package/assets/esri/core/workers/chunks/96d861265566854760cd.js +1 -0
- package/assets/esri/core/workers/chunks/98e6c1d035755a074d24.js +1 -0
- package/assets/esri/core/workers/chunks/9937920e7993814d0b2c.js +1 -0
- package/assets/esri/core/workers/chunks/{9d0bda096cdbd7e22f4b.js → 9bbff8237540409610b3.js} +1 -1
- package/assets/esri/core/workers/chunks/9dda9414104f585560a4.js +2 -0
- package/assets/esri/core/workers/chunks/{be291d920ebc68fde02b.js.LICENSE.txt → 9dda9414104f585560a4.js.LICENSE.txt} +0 -5
- package/assets/esri/core/workers/chunks/{1dc1bfb3425665f560e4.js → a486d99f9879f94151ba.js} +1 -1
- package/assets/esri/core/workers/chunks/{475c60ed8785d07911c6.js → a5c115fc53edb52ce1de.js} +1 -1
- package/assets/esri/core/workers/chunks/a62f1b8ed065b2a38f1a.js +1 -0
- package/assets/esri/core/workers/chunks/{830d1a7dee43422507ab.js → a739e617fc461014ad1f.js} +1 -1
- package/assets/esri/core/workers/chunks/aa21031c8f12ca438eaa.js +1 -0
- package/assets/esri/core/workers/chunks/ad27689b231e282b7620.js +1 -0
- package/assets/esri/core/workers/chunks/af6e8c961fd768fa7be3.js +1 -0
- package/assets/esri/core/workers/chunks/afeeb11b39e140303b5a.js +1 -0
- package/assets/esri/core/workers/chunks/b599b7dadce8b8bc88f6.js +1 -0
- package/assets/esri/core/workers/chunks/{873d8332e2149eb1b36a.js → b6c7b7b7f87dce5de811.js} +3 -3
- package/assets/esri/core/workers/chunks/b7d8817018b3d277c454.js +1 -0
- package/assets/esri/core/workers/chunks/{d90bc34d97bb21c29c40.js → b8cd81d8fcc78d272130.js} +1 -1
- package/assets/esri/core/workers/chunks/{450bc48a7389607bce1e.js → b984b808d383974ca3d8.js} +1 -1
- package/assets/esri/core/workers/chunks/b9953277d0cd4a01bdc6.js +1 -0
- package/assets/esri/core/workers/chunks/c02b3b8b71205f6ce290.js +1 -0
- package/assets/esri/core/workers/chunks/c03da138651ac53cadcb.js +2 -0
- package/assets/esri/core/workers/chunks/c21212c356f65244e34e.js +1 -0
- package/assets/esri/core/workers/chunks/{1fece9757de7c10d1e9f.js → c29df43817278f674707.js} +1 -1
- package/assets/esri/core/workers/chunks/{589b31cc5c663a288942.js → c6bf17b5ff6ec4b980a1.js} +1 -1
- package/assets/esri/core/workers/chunks/c715c585c42d8c2b86f5.js +1 -0
- package/assets/esri/core/workers/chunks/c7e9513f75b8ec205562.js +1 -0
- package/assets/esri/core/workers/chunks/c866b66ba72d96453899.js +1 -0
- package/assets/esri/core/workers/chunks/{5fde1234c5cccaee6763.js → c873383e7dae35dc1a61.js} +1 -1
- package/assets/esri/core/workers/chunks/c99dcc17fbd7acd2ad2e.js +1 -0
- package/assets/esri/core/workers/chunks/cae94d6805e0e8db3600.js +1 -0
- package/assets/esri/core/workers/chunks/cc5ec6e99aa09342c704.js +1 -0
- package/assets/esri/core/workers/chunks/cd4e5c948d1bfa9b9a2d.js +1 -0
- package/assets/esri/core/workers/chunks/{6501ee40bf25f9f75d02.js → ce481eeb27ea9c1782ae.js} +1 -1
- package/assets/esri/core/workers/chunks/{d214ac457ac970479536.js → cec1c87eb3749276ced4.js} +1 -1
- package/assets/esri/core/workers/chunks/cfe31b7d1c6c05fbd268.js +1 -0
- package/assets/esri/core/workers/chunks/d08f81d545930a79fb2e.js +1 -0
- package/assets/esri/core/workers/chunks/d0c1bc90e474f706211c.js +1 -0
- package/assets/esri/core/workers/chunks/d2faac81142586cf7509.js +1 -0
- package/assets/esri/core/workers/chunks/d607cf154218d20e4114.js +1 -0
- package/assets/esri/core/workers/chunks/{b94cd7eac5ff4a78dd5b.js → d7b6985984071e78c764.js} +1 -1
- package/assets/esri/core/workers/chunks/d901f8503a73277cfa58.js +1 -0
- package/assets/esri/core/workers/chunks/d93d0cb69f3a9a722510.js +1 -0
- package/assets/esri/core/workers/chunks/{9073b0f0ec93d6e243b9.js → da1c9257793c2817f40f.js} +1 -1
- package/assets/esri/core/workers/chunks/{94719ac469dadc4c05dc.js → dc0c3109b7558b4fe016.js} +1 -1
- package/assets/esri/core/workers/chunks/{dc7e4f7879debf557e46.js → de3d0973cff1e0858c52.js} +2 -2
- package/assets/esri/core/workers/chunks/{adce59e4111bae4225f7.js → e421dee5d8b030e79ffb.js} +1 -1
- package/assets/esri/core/workers/chunks/e602b91d8fdc36a92530.js +1 -0
- package/assets/esri/core/workers/chunks/{c13e55b9efb0b532f7ee.js → e61ab8ef30bbe788b9d7.js} +1 -1
- package/assets/esri/core/workers/chunks/e702abaeccef20b64a81.js +1 -0
- package/assets/esri/core/workers/chunks/{11a3aa43fb940c21f148.js → eb95464bd017fb839510.js} +1 -1
- package/assets/esri/core/workers/chunks/ebd619533be077059494.js +1 -0
- package/assets/esri/core/workers/chunks/ed564358cc7b3ee463a3.js +1 -0
- package/assets/esri/core/workers/chunks/ef2e0a014c982d9c7ca4.js +1 -0
- package/assets/esri/core/workers/chunks/f5cf338cecfc81f23128.js +1 -0
- package/assets/esri/core/workers/chunks/f6150b51a9430691a040.js +1 -0
- package/assets/esri/core/workers/chunks/{f4aed2b6e92bd0474069.js → f69329b85b362b349a8c.js} +1 -1
- package/assets/esri/core/workers/chunks/f721756a6c1593f96409.js +1 -0
- package/assets/esri/core/workers/chunks/fa19d5923276418096da.js +1 -0
- package/assets/esri/core/workers/chunks/fa5d27e47d47ff8fcb96.js +2 -0
- package/assets/esri/core/workers/chunks/fb12d3c63fcac8391e06.js +1 -0
- package/assets/esri/core/workers/chunks/fc9065d0cd6285fe0f0d.js +1 -0
- package/assets/esri/core/workers/chunks/{b526055794e64b0227ca.js → fd6107f95082e05f016a.js} +11 -11
- package/assets/esri/core/workers/chunks/fe10a95ebe1da2322af6.js +1 -0
- package/assets/esri/core/workers/chunks/fe71a0604f0928113419.js +1 -0
- package/assets/esri/core/workers/chunks/fec07a16b72cdcafc641.js +1 -0
- package/assets/esri/core/workers/chunks/fff23b2682590c4b21e3.js +1 -0
- package/assets/esri/layers/raster/formats/lerc-wasm.wasm +0 -0
- package/chunks/Bufferer-CclWhXVb.js +1 -1
- package/chunks/ColorMaterial.glsl.js +18 -5
- package/chunks/Component.glsl.js +42 -34
- package/chunks/Envelope.js +1 -1
- package/chunks/GeodeticDistanceCalculator-zRp89-dW.js +1 -1
- package/chunks/Geometry.js +1 -1
- package/chunks/GeometryCleaner-CIE8Wfmb.js +1 -1
- package/chunks/MultiPathImpl.js +1 -1
- package/chunks/OperatorAffineTransform.js +2 -0
- package/chunks/OperatorCentroid2D.js +2 -0
- package/chunks/OperatorCrosses.js +1 -1
- package/chunks/OperatorCut.js +1 -1
- package/chunks/OperatorGeneralize.js +1 -1
- package/chunks/OperatorGeodesicBuffer.js +1 -1
- package/chunks/OperatorGeodeticLength.js +1 -1
- package/chunks/OperatorGraphicBuffer.js +1 -1
- package/chunks/OperatorIntersects.js +1 -1
- package/chunks/OperatorMultiPartToSinglePart.js +1 -1
- package/chunks/OperatorOverlaps.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/SideCalculator2D-DX0718xq.js +1 -1
- package/chunks/SpatialReference.js +1 -1
- package/chunks/arcade.js +1 -1
- package/chunks/bundle.js +1 -1
- package/chunks/bundle2.js +1 -1
- package/chunks/centroidOperator.js +1 -1
- package/chunks/containsOperator.js +1 -1
- package/chunks/disjointOperator.js +1 -1
- package/chunks/equalsOperator.js +1 -1
- package/chunks/geodeticDistanceOperator.js +2 -0
- package/chunks/multiPartToSinglePartOperator.js +2 -0
- package/chunks/offsetOperator.js +2 -0
- package/config.js +1 -1
- package/core/imageUtils.js +1 -1
- package/core/workers/WorkerFallback.js +1 -1
- package/core/workers/registry.js +1 -1
- package/core/workers/workerFactory.js +1 -1
- package/core/workers/workers.js +1 -1
- package/editing/sharedTemplates/SharedTemplateProvider.js +1 -1
- package/editing/sharedTemplates/executor/builders/support/offsetUtils.js +1 -1
- package/editing/sharedTemplates/executor/createTemplateExecutor.js +1 -1
- package/editing/sharedTemplates/templateLoader.js +1 -1
- package/geometry/libtess.js +1 -1
- package/geometry/operators/affineTransformOperator.js +1 -1
- package/geometry/operators/centroidOperator.js +1 -1
- package/geometry/operators/geodeticDistanceOperator.js +1 -1
- package/geometry/operators/gx/operatorAffineTransform.js +1 -1
- package/geometry/operators/gx/operatorAutoComplete.js +1 -1
- package/geometry/operators/gx/operatorBuffer.js +1 -1
- package/geometry/operators/gx/operatorConvexHull.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/operatorLocateBetween.js +1 -1
- package/geometry/operators/gx/operatorOffset.js +1 -1
- package/geometry/operators/gx/operatorSinglePartToMultiPart.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/multiPartToSinglePartOperator.js +1 -1
- package/geometry/operators/offsetOperator.js +1 -1
- package/geometry/support/curves/densifyCurvedGeometry.js +1 -1
- package/geometry/support/meshUtils.js +1 -1
- package/interfaces.d.ts +3 -0
- package/kernel.js +1 -1
- package/layers/CSVLayer.js +1 -1
- package/layers/CatalogLayer.js +1 -1
- package/layers/ElevationLayer.js +1 -1
- package/layers/FeatureLayer.js +1 -1
- package/layers/GeoJSONLayer.js +1 -1
- package/layers/GroupLayer.js +1 -1
- package/layers/ImageryLayer.js +1 -1
- package/layers/ImageryTileLayer.js +1 -1
- package/layers/Layer.js +1 -1
- package/layers/MapImageLayer.js +1 -1
- package/layers/MediaLayer.js +1 -1
- package/layers/SceneLayer.js +1 -1
- package/layers/StreamLayer.js +1 -1
- package/layers/SubtypeGroupLayer.js +1 -1
- package/layers/WCSLayer.js +1 -1
- package/layers/WFSLayer.js +1 -1
- package/layers/graphics/data/QueryEngineResult.js +1 -1
- package/layers/graphics/data/queryUtils.js +1 -1
- package/layers/graphics/sources/FeatureLayerSource.js +1 -1
- package/layers/graphics/sources/MemorySource.js +1 -1
- package/layers/graphics/sources/connections/GeoEventConnection.js +1 -1
- package/layers/graphics/sources/support/sourceUtils.js +1 -1
- package/layers/knowledgeGraph/cypherUtils.js +1 -1
- package/layers/mixins/ArcGISImageService.js +1 -1
- package/layers/mixins/PortalLayer.js +1 -1
- package/layers/mixins/TiledImagery.js +1 -1
- package/layers/raster/datasets/FunctionRaster.js +1 -1
- package/layers/raster/datasets/pixelReader.js +1 -1
- package/layers/raster/functions/clipUtils.js +1 -1
- package/layers/raster/functions/rasterProjectionHelper.js +1 -1
- package/layers/support/Sublayer.js +1 -1
- package/layers/support/arcgisLayers.js +1 -1
- package/layers/support/featureLayerUtils.js +1 -1
- package/layers/support/fromPortalItem.js +1 -1
- package/layers/support/layersLoader.js +1 -1
- package/layers/support/vectorTileLayerLoader.js +1 -1
- package/libs/basisu/BasisUEncoder.js +1 -1
- package/libs/basisu/BasisUTranscoder.js +1 -1
- package/libs/dracoMeshDecoder/dracoMeshDecoder.js +1 -1
- package/libs/dxtEncoder/DXTEncoder.js +1 -1
- package/libs/i3s/I3SModule.js +1 -1
- package/libs/parquet/loadParquetModule.js +1 -1
- package/libs/text/loadTextModule.js +1 -1
- package/networks/UtilityNetwork.js +1 -1
- package/networks/support/utils.js +1 -1
- package/package.json +3 -3
- package/popup/FeatureContentCollection.js +1 -1
- package/popup/Features.js +1 -1
- package/portal/Portal.js +1 -1
- package/portal/PortalItem.js +1 -1
- package/portal/PortalItemResource.js +1 -1
- package/portal/PortalUser.js +1 -1
- package/renderers/support/DictionaryLoader.js +1 -1
- package/request/process.js +1 -1
- package/request/queue.js +1 -1
- package/request.js +1 -1
- package/rest/geoprocessor/utils.js +1 -1
- package/rest/knowledgeGraph/wasmInterface/knowledgeWasmAccess.js +1 -1
- package/rest/support/JobInfo.js +1 -1
- package/rest/utils.js +1 -1
- package/smartMapping/renderers/support/rendererUtils.js +1 -1
- package/smartMapping/support/adapters/InMemoryLayerAdapter.js +1 -1
- package/support/revision.js +1 -1
- package/support/tests/serviceMockDependencies.js +1 -1
- package/support/zipUtils.js +1 -1
- package/symbols/WebStyleSymbol.js +1 -1
- package/symbols/cim/CIMOperators.js +1 -1
- package/symbols/cim/cimAnalyzer.js +1 -1
- package/symbols/cim/defaultCIMValues.js +1 -1
- package/symbols/cim/effects/EffectCircularSector.js +2 -0
- package/symbols/cim/types.d.ts +42 -1
- package/symbols/cim/utils.js +1 -1
- package/symbols/support/symbolLayerUtils.js +1 -1
- package/symbols/support/symbolUtils.js +1 -1
- package/symbols/support/utils.js +1 -1
- package/undoredo/support/ServiceVersionInfo.js +1 -1
- package/versionManagement/VersionManagementService.js +1 -1
- package/views/2d/engine/Stage.js +1 -1
- package/views/2d/engine/vectorTiles/TileHandler.js +1 -1
- package/views/2d/engine/vectorTiles/TileHandler3D.js +1 -1
- package/views/2d/engine/vectorTiles/TileParser.js +1 -1
- package/views/2d/engine/vectorTiles/VTLPainter3D.js +1 -1
- package/views/2d/engine/vectorTiles/VectorTileContainer.js +1 -1
- package/views/2d/engine/vectorTiles/WorkerTile.js +1 -1
- package/views/2d/engine/vectorTiles/WorkerTileHandler.js +1 -1
- package/views/2d/engine/vectorTiles/style/GeoJSONVectorTileSource.js +2 -0
- package/views/2d/engine/vectorTiles/style/GeoJSONVectorTileSourceWorker.js +2 -0
- package/views/2d/engine/vectorTiles/style/RemoteVectorTileSource.js +2 -0
- package/views/2d/engine/vectorTiles/style/StyleLayer.js +1 -1
- package/views/2d/engine/vectorTiles/style/VectorTilePbfWriter.js +2 -0
- package/views/2d/engine/vectorTiles/style/VectorTileSource.js +1 -1
- package/views/2d/engine/vectorTiles/style/encodeVectorTileFeatures.js +2 -0
- package/views/2d/engine/webgl/GlyphMosaic.js +1 -1
- package/views/2d/engine/webgl/GlyphSDFCreator.js +1 -1
- package/views/2d/engine/webgl/GlyphSource.js +1 -1
- package/views/2d/engine/webgl/GlyphWorker.js +2 -0
- package/views/2d/engine/webgl/Painter.js +1 -1
- package/views/2d/engine/webgl/TextureManager.js +1 -1
- package/views/2d/engine/webgl/mesh/factories/ResourceProxy.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/createGraphicSymbolMeshSchemas.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/fill/FillMeshWriter.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/fill/OutlineFillMeshWriter.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/line/LineMeshWriter.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/mesh/MeshWriter.js +1 -1
- package/views/2d/layers/FeatureLikeLayerView2D.js +1 -1
- package/views/2d/layers/RouteLayerView2D.js +1 -1
- package/views/2d/layers/VectorTileLayerView2D.js +1 -1
- package/views/2d/layers/features/Processor.js +1 -1
- package/views/2d/layers/features/schema/processor/MatcherSchema.js +1 -1
- package/views/2d/layers/features/schema/processor/symbols/ComplexSymbolSchema.js +1 -1
- package/views/2d/layers/features/support/FeatureSetReaderVectorTileFeatureCursor.js +2 -0
- package/views/2d/layers/support/MediaLayerInteraction.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedConfiguration.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedEditTool.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedObserverManipulatedObject3D.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedSnappingController.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedSubTool.js +1 -1
- package/views/3d/analysis/Viewshed/viewshedToolManipulatorUtils.js +1 -1
- package/views/3d/interactive/manipulatorUtils.js +1 -1
- package/views/3d/interactive/visualElements/OutlineVisualElement.js +1 -1
- package/views/3d/interactive/visualElements/VerticesVisualElement.js +1 -1
- package/views/3d/layers/I3SMeshView3D.js +1 -1
- package/views/3d/layers/ImageryTileLayerView3D.js +1 -1
- package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
- package/views/3d/layers/SceneLayerWorker.js +1 -1
- package/views/3d/layers/VectorTileLayerView3D.js +1 -1
- package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
- package/views/3d/layers/graphics/Graphics3DFrustumVisibility.js +1 -1
- package/views/3d/layers/graphics/Graphics3DIconSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DScaleVisibility.js +1 -1
- package/views/3d/layers/graphics/Graphics3DSymbol.js +1 -1
- package/views/3d/layers/graphics/GraphicsDeconflictor.js +1 -1
- package/views/3d/layers/graphics/ObjectResourceCache.js +1 -1
- package/views/3d/layers/graphics/objectResourceUtils.js +1 -1
- package/views/3d/layers/i3s/I3SOverrides.js +1 -1
- package/views/3d/layers/i3s/I3SQueryEngine.js +1 -1
- package/views/3d/layers/support/FlowTileTree3DDebugger.js +1 -1
- package/views/3d/layers/support/TerrainTileTree3DDebugger.js +1 -1
- package/views/3d/state/ViewStateManager.js +1 -1
- package/views/3d/state/helpers/SceneIntersectionHelper.js +1 -1
- package/views/3d/support/CombinedElevationProvider.js +1 -1
- package/views/3d/support/viewpointUtils.js +1 -1
- package/views/3d/terrain/TerrainSurface.js +1 -1
- package/views/3d/terrain/TransparencyMode.js +2 -0
- package/views/3d/webgl-engine/collections/Component/ComponentObject.js +1 -1
- package/views/3d/webgl-engine/collections/Component/ComponentObjectCollection.js +1 -1
- package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
- package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterialInitParameters.js +1 -1
- package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterialRepository.js +1 -1
- package/views/3d/webgl-engine/collections/Component/Material/ComponentTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js +7 -7
- package/views/3d/webgl-engine/effects/smaa/SMAA.js +1 -1
- package/views/3d/webgl-engine/lib/Renderer.js +1 -1
- package/views/3d/webgl-engine/lib/ShadowAccumulator.js +1 -1
- package/views/3d/webgl-engine/materials/ColorMaterial.js +1 -1
- package/views/3d/webgl-engine/shaders/ColorMaterial.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/ColorMaterialTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/ColorMaterialTechniqueConfiguration.js +1 -1
- package/views/PopupView.js +1 -1
- package/views/SceneView.js +1 -1
- package/views/VideoView.js +1 -1
- package/views/View.js +1 -1
- package/views/analysis/ElevationProfile/elevationProfileGeometryUtils.js +1 -1
- package/views/draw/PointDrawAction.js +1 -1
- package/views/draw/PolygonDrawAction.js +1 -1
- package/views/draw/PolylineDrawAction.js +1 -1
- package/views/draw/SegmentDrawAction.js +1 -1
- package/views/draw/support/createSnappingVisualizer.js +1 -1
- package/views/interactive/snapping/SnappingManager.js +1 -1
- package/views/interactive/snapping/featureSources/FeatureServiceSnappingSource.js +1 -1
- package/views/layers/HighlightableLayerView.d.ts +2 -0
- package/views/layers/support/MapServiceLayerViewHelper.js +1 -1
- package/views/selection/SelectionOperation.js +1 -1
- package/views/support/GeometryWorker.js +1 -1
- package/views/support/GroundElevationSampler.js +1 -1
- package/webdoc/support/resourceUtils.js +1 -1
- package/webdoc/support/webdocLoadUtils.js +1 -1
- package/webdoc/support/webdocSaveUtils.js +1 -1
- package/webscene/Slide.js +1 -1
- package/webscene/spec-certification/api.js +1 -1
- package/webscene/spec-certification/spec.js +1 -1
- package/webscene/support/analysisUtils.js +1 -1
- package/widgets/BasemapLayerList.js +1 -1
- package/widgets/BatchAttributeForm/ValueChangeTransaction.js +1 -1
- package/widgets/BatchAttributeForm/expressions/ExpressionsManager.js +1 -1
- package/widgets/BatchAttributeForm/expressions/ExpressionsModel.js +1 -1
- package/widgets/BatchAttributeForm/templates/support/textElementTemplateUtils.js +1 -1
- package/widgets/BatchAttributeForm.js +1 -1
- package/widgets/CatalogLayerList.js +1 -1
- package/widgets/Editor/CreateFeaturesWorkflow.js +1 -1
- package/widgets/Editor/UpdateWorkflow.js +1 -1
- package/widgets/Editor/legacy/CreateFeaturesWorkflow.js +1 -1
- package/widgets/Editor/legacy/UpdateWorkflow.js +1 -1
- package/widgets/Editor/modelUploadUtils.js +1 -1
- package/widgets/Editor/support/mergeFeaturesUtils.js +1 -1
- package/widgets/Editor/support/splitFeatureUtils.js +1 -1
- package/widgets/Editor/workflowUtils.js +1 -1
- package/widgets/Editor.js +1 -1
- package/widgets/ElevationProfile/support/geometryUtils.js +1 -1
- package/widgets/ElevationProfile.js +1 -1
- package/widgets/Feature/FeatureMedia.js +1 -1
- package/widgets/Feature/FeatureRelationship/FeatureRelationshipViewModel.js +1 -1
- package/widgets/Feature/FeatureRelationship.js +1 -1
- package/widgets/Feature/FeatureUtilityNetworkAssociationList.js +1 -1
- package/widgets/Feature.js +1 -1
- package/widgets/FeatureForm/FeatureFormViewModel.js +1 -1
- package/widgets/FeatureForm/support/textManipulationUtils.js +1 -1
- package/widgets/FeatureForm.js +1 -1
- package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
- package/widgets/FeatureTable/Grid/GridViewModel.js +1 -1
- package/widgets/FeatureTable/Grid/types.d.ts +78 -4
- package/widgets/FeatureTable/support/FeatureStore.d.ts +675 -0
- package/widgets/FeatureTable/support/FeatureStore.js +1 -1
- package/widgets/FeatureTable/support/types.d.ts +28 -0
- package/widgets/Features/FeaturesViewModel.js +1 -1
- package/widgets/Features.js +1 -1
- package/widgets/FloorFilter/FloorFilterViewModel.js +1 -1
- package/widgets/LayerList/ListItemPanel.js +1 -1
- package/widgets/LayerList.js +1 -1
- package/widgets/Legend/support/ActiveLayerInfo.js +1 -1
- package/widgets/Legend/support/colorRampUtils.js +1 -1
- package/widgets/Legend/support/sizeRampUtils.js +1 -1
- package/widgets/Legend/support/utils.js +1 -1
- package/widgets/Measurement.js +1 -1
- package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
- package/widgets/OrientedImageryViewer/services/DepthImageService.js +1 -1
- package/widgets/OrientedImageryViewer/services/SuperimposeService.js +1 -1
- package/widgets/OrientedImageryViewer/support/NonPanoramicMedia.js +1 -1
- package/widgets/OrientedImageryViewer.js +1 -1
- package/widgets/PanoramicVideoViewer.js +1 -1
- package/widgets/PanoramicViewer/support/PanoramicMedia.js +1 -1
- package/widgets/PanoramicViewer/support/importUtils.js +1 -1
- package/widgets/PanoramicViewer.js +1 -1
- package/widgets/Print.js +1 -1
- package/widgets/Search/SearchViewModel.js +1 -1
- package/widgets/Search/support/layerSearchUtils.js +1 -1
- package/widgets/Search/support/locatorUtils.js +1 -1
- package/widgets/Sketch/SketchViewModel.js +1 -1
- package/widgets/Sketch/support/PluginManager.js +1 -1
- package/widgets/Sketch.js +1 -1
- package/widgets/support/Selector2D/selectorUtils.js +1 -1
- package/widgets/support/SnappingControls.js +1 -1
- package/widgets/support/symbolPreviewUtils.js +1 -1
- package/arcade/geometry/offset.js +0 -2
- package/assets/esri/core/workers/chunks/067b00498ae85f635f60.js +0 -1
- package/assets/esri/core/workers/chunks/0b20f92bae2b4c40d299.js +0 -1
- package/assets/esri/core/workers/chunks/0c582abc8d25249eb530.js +0 -1
- package/assets/esri/core/workers/chunks/0d6776055e9b34c14151.js +0 -1
- package/assets/esri/core/workers/chunks/0e6b6fcc55cc43ede1fc.js +0 -1
- package/assets/esri/core/workers/chunks/126f1f6b355723db6c4f.js +0 -1
- package/assets/esri/core/workers/chunks/149284464115981694ff.js +0 -1
- package/assets/esri/core/workers/chunks/181f330314c1989f642f.js +0 -1
- package/assets/esri/core/workers/chunks/1840d74ebae777a0200b.js +0 -1
- package/assets/esri/core/workers/chunks/1bfbdec791e19f5a2534.js +0 -1
- package/assets/esri/core/workers/chunks/1d38a710cf799cb0e5b3.js +0 -1
- package/assets/esri/core/workers/chunks/1d8280f63a6698e74f20.js +0 -1
- package/assets/esri/core/workers/chunks/1f48438b3055afeb710f.js +0 -1
- package/assets/esri/core/workers/chunks/25999b6f96ec305a7679.js +0 -1
- package/assets/esri/core/workers/chunks/28565756f884d0851003.js +0 -1
- package/assets/esri/core/workers/chunks/2a5a165848413764381b.js +0 -1
- package/assets/esri/core/workers/chunks/2e7a5bb740281ef59199.js +0 -1
- package/assets/esri/core/workers/chunks/2f87a49bdd00f899d81d.js +0 -1
- package/assets/esri/core/workers/chunks/302d91b7c480c6c9304b.js +0 -1
- package/assets/esri/core/workers/chunks/30c53a7e1ad5aa52f2f3.js +0 -1
- package/assets/esri/core/workers/chunks/3b493e8043ec1a2a5d96.js +0 -1
- package/assets/esri/core/workers/chunks/3ddd717ea12d9823eee2.js +0 -1
- package/assets/esri/core/workers/chunks/3f84ade6285560b692d1.js +0 -1
- package/assets/esri/core/workers/chunks/4129b27fcd4103cdc499.js +0 -1
- package/assets/esri/core/workers/chunks/41f7f3615d3ecb87c59a.js +0 -1
- package/assets/esri/core/workers/chunks/465a050fd838ee8eddf3.js +0 -1
- package/assets/esri/core/workers/chunks/46d8a1d6f7341ad20749.js +0 -1
- package/assets/esri/core/workers/chunks/48a0dfaabb9b4bce4191.js +0 -1
- package/assets/esri/core/workers/chunks/4addea2e35b0c845743e.js +0 -1
- package/assets/esri/core/workers/chunks/4ae626868e14bedd7fc5.js +0 -1
- package/assets/esri/core/workers/chunks/529ee4670940720e888b.js +0 -1
- package/assets/esri/core/workers/chunks/538bdf02c4dfb5ec72fe.js +0 -1
- package/assets/esri/core/workers/chunks/59d1708ae13c6e7e6e55.js +0 -1
- package/assets/esri/core/workers/chunks/5adf16c034a590b5e9f5.js +0 -1
- package/assets/esri/core/workers/chunks/5fb0e8f89b885e5e3742.js +0 -1
- package/assets/esri/core/workers/chunks/60f9b37dd738d884c48d.js +0 -1
- package/assets/esri/core/workers/chunks/62c8413f3bbc1378273d.js +0 -1
- package/assets/esri/core/workers/chunks/632ab11cdd4b0d9a5cc5.js +0 -1
- package/assets/esri/core/workers/chunks/663cf8bff17c894cd5f8.js +0 -1
- package/assets/esri/core/workers/chunks/6cc1120554bcb1b4899b.js +0 -1
- package/assets/esri/core/workers/chunks/6d1371b521c7f94fd77e.js +0 -1
- package/assets/esri/core/workers/chunks/6f102c90908c9900cdaa.js +0 -1
- package/assets/esri/core/workers/chunks/7278fdf6bfcdffa10a7f.js +0 -1
- package/assets/esri/core/workers/chunks/73cb499d7d68c59ba34e.js +0 -1
- package/assets/esri/core/workers/chunks/76bccc318d7cc33829a7.js +0 -1
- package/assets/esri/core/workers/chunks/777eafdb86b26b35c803.js +0 -1
- package/assets/esri/core/workers/chunks/7821aeba3e414b318a75.js +0 -1
- package/assets/esri/core/workers/chunks/7ac47a9ad244100bc3b1.js +0 -1
- package/assets/esri/core/workers/chunks/7b0ed52363704cfce129.js +0 -1
- package/assets/esri/core/workers/chunks/7c57354d026e27e056d4.js +0 -1
- package/assets/esri/core/workers/chunks/7dd672c25beb8813cc75.js +0 -2
- package/assets/esri/core/workers/chunks/7eb94fc75926bc739233.js +0 -1
- package/assets/esri/core/workers/chunks/7f125963555dc1ce63ad.js +0 -1
- package/assets/esri/core/workers/chunks/805c97b875d3066fb8df.js +0 -1
- package/assets/esri/core/workers/chunks/86ed75b7169b8ee43025.js +0 -1
- package/assets/esri/core/workers/chunks/88c3b60b403e2454b56e.js +0 -1
- package/assets/esri/core/workers/chunks/894343e415639df88243.js +0 -1
- package/assets/esri/core/workers/chunks/8b4759cef5ae5e43253b.js +0 -1
- package/assets/esri/core/workers/chunks/8ba4175f5e9a24ffecf7.js +0 -1
- package/assets/esri/core/workers/chunks/8e1d4867406753c5483c.js +0 -1
- package/assets/esri/core/workers/chunks/8e38c5e63aae42bdf5a4.js +0 -29
- package/assets/esri/core/workers/chunks/8f785b722b1a131bf370.js +0 -1
- package/assets/esri/core/workers/chunks/8f8db62f126e4a8c1bf7.js +0 -1
- package/assets/esri/core/workers/chunks/8f9874f42f21a4cb3acd.js +0 -1
- package/assets/esri/core/workers/chunks/90f4b81c6034253b70d7.js +0 -1
- package/assets/esri/core/workers/chunks/93ab247ff34694ac60eb.js +0 -1
- package/assets/esri/core/workers/chunks/9954149def644c371894.js +0 -1
- package/assets/esri/core/workers/chunks/9dfb7d120195991e9672.js +0 -1
- package/assets/esri/core/workers/chunks/9ed5e6b06afea6c85330.js +0 -1
- package/assets/esri/core/workers/chunks/a108f276659d5f25352c.js +0 -1
- package/assets/esri/core/workers/chunks/a504fa17d83facf1c01f.js +0 -1
- package/assets/esri/core/workers/chunks/a5fdb02b1714e93fa69e.js +0 -1
- package/assets/esri/core/workers/chunks/a9f616f22042b0dce8b9.js +0 -1
- package/assets/esri/core/workers/chunks/afd63c18ce4656271c8e.js +0 -1
- package/assets/esri/core/workers/chunks/b059dabb1c732829487c.js +0 -1
- package/assets/esri/core/workers/chunks/b318823aefcefad6fad5.js +0 -1
- package/assets/esri/core/workers/chunks/b378e504a5b1afc8d0ce.js +0 -1
- package/assets/esri/core/workers/chunks/b5397dc03fa0bd654ba6.js +0 -1
- package/assets/esri/core/workers/chunks/b7bcb31737b01d7736d0.js +0 -1
- package/assets/esri/core/workers/chunks/ba030767cf935f967454.js +0 -1
- package/assets/esri/core/workers/chunks/be291d920ebc68fde02b.js +0 -2
- package/assets/esri/core/workers/chunks/c10a0eebd935472d8fae.js +0 -1
- package/assets/esri/core/workers/chunks/c16e83e448a32d13048f.js +0 -1
- package/assets/esri/core/workers/chunks/c2db773201adca204f95.js +0 -1
- package/assets/esri/core/workers/chunks/c4c83b5129c279c3615b.js +0 -1
- package/assets/esri/core/workers/chunks/c7e391df714839484cd1.js +0 -1
- package/assets/esri/core/workers/chunks/cca095f0c623e037002d.js +0 -1
- package/assets/esri/core/workers/chunks/cded485ad893a7dd2948.js +0 -1
- package/assets/esri/core/workers/chunks/cf03d391d50a4c7aca4f.js +0 -1
- package/assets/esri/core/workers/chunks/cf8ce63711488f2e677c.js +0 -1
- package/assets/esri/core/workers/chunks/d198ecb1fe3690d6092f.js +0 -2
- package/assets/esri/core/workers/chunks/d2a51c797b2966cb95f3.js +0 -2
- package/assets/esri/core/workers/chunks/d303621c902330be5035.js +0 -1
- package/assets/esri/core/workers/chunks/d4d385d19e62ef1c286f.js +0 -1
- package/assets/esri/core/workers/chunks/d4f005dadba75422b401.js +0 -1
- package/assets/esri/core/workers/chunks/d5e15021928e95c11463.js +0 -1
- package/assets/esri/core/workers/chunks/d6500f6b2ff115d9eb09.js +0 -1
- package/assets/esri/core/workers/chunks/d9c78c2db04a06ee83ed.js +0 -1
- package/assets/esri/core/workers/chunks/dccb46c7dce68528c72b.js +0 -1
- package/assets/esri/core/workers/chunks/df174346a7e9b629a392.js +0 -1
- package/assets/esri/core/workers/chunks/e08c64e4ae5a68eae2be.js +0 -1
- package/assets/esri/core/workers/chunks/e1492d2404c3ed82931e.js +0 -1
- package/assets/esri/core/workers/chunks/e34ed3b818b2eb4116c5.js +0 -1
- package/assets/esri/core/workers/chunks/e7149d23615fee31ab7e.js +0 -1
- package/assets/esri/core/workers/chunks/ec774f5d6ea5c29536e5.js +0 -1
- package/assets/esri/core/workers/chunks/ed71a4e353715db0a6e9.js +0 -1
- package/assets/esri/core/workers/chunks/f029c12f1afee0e9b2a1.js +0 -1
- package/assets/esri/core/workers/chunks/f4eda59ec1e816ecc827.js +0 -1
- package/assets/esri/core/workers/chunks/f54eba484f40d5eeb590.js +0 -1
- package/assets/esri/core/workers/chunks/f622b27ebdf1c918fd6d.js +0 -1
- package/assets/esri/core/workers/chunks/f6a13f07a5f7b781a9a8.js +0 -1
- package/assets/esri/core/workers/chunks/f6f1122bed931f1d960b.js +0 -1
- package/assets/esri/core/workers/chunks/f8b8d3d2710c83acccf3.js +0 -1
- package/assets/esri/core/workers/chunks/f98bb3885bfc7f18f26c.js +0 -1
- package/assets/esri/core/workers/chunks/fc827f58db3194922056.js +0 -1
- package/chunks/ShadedColorMaterial.glsl.js +0 -13
- package/views/3d/webgl-engine/materials/ShadedColorMaterial.js +0 -2
- package/views/3d/webgl-engine/shaders/ShadedColorMaterial.glsl.js +0 -2
- package/views/3d/webgl-engine/shaders/ShadedColorMaterialTechnique.js +0 -2
- package/views/3d/webgl-engine/shaders/ShadedColorMaterialTechniqueConfiguration.js +0 -2
- /package/assets/esri/core/workers/chunks/{d198ecb1fe3690d6092f.js.LICENSE.txt → 09653bd2a31d293a10d9.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{f82cd34a79c8aa58d40c.js.LICENSE.txt → 3b3a8a6167f2e1eeb828.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{d2a51c797b2966cb95f3.js.LICENSE.txt → c03da138651ac53cadcb.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{7dd672c25beb8813cc75.js.LICENSE.txt → fa5d27e47d47ff8fcb96.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
+
import{G as r}from"./GeometryCursor.js";import{c as e}from"./Geometry.js";class t{getOperatorType(){return 10303}supportsCurves(){return!0}accelerateGeometry(r,e,t){return!1}canAccelerateGeometry(r){return!1}executeMany(r,e,t){return new n(r,e,t)}execute(r,e,t){const n=r.clone();return n.applyTransformation(e),n}}class n extends r{m_inputGeometryCursor;m_transformation;m_index;constructor(r,e,t){super(),this.m_index=-1,this.m_transformation=e.clone(),this.m_inputGeometryCursor=r}next(){let r;if(r=this.m_inputGeometryCursor.next()){e(r),this.m_index=this.m_inputGeometryCursor.getGeometryID();const t=r.clone();return t.applyTransformation(this.m_transformation),t}return null}getGeometryID(){return this.m_index}tock(){return!0}getRank(){return 1}}export{t as O};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
+
import{c as e}from"./Centroid-CA-TwbbN.js";class r{getOperatorType(){return 10205}accelerateGeometry(e,r,t){return!1}canAccelerateGeometry(e){return!1}supportsCurves(){return!0}execute(r,t){return e(r)}}export{r as O};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{
|
|
2
|
+
import{v as e,w as r}from"./SpatialReference.js";class t extends e{getOperatorType(){return 6}execute(e,t,a,s){return r(e,t,a,16,s)}}export{t as O};
|
package/chunks/OperatorCut.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{G as t}from"./GeometryCursor.js";import{G as e,d as s,g as r}from"./Geometry.js";import{a as n,P as o,E as m,n as i}from"./MultiPathImpl.js";import{g as c,c as u}from"./Envelope.js";import{l,k as a,n as h,T as d,
|
|
2
|
+
import{G as t}from"./GeometryCursor.js";import{G as e,d as s,g as r}from"./Geometry.js";import{a as n,P as o,E as m,n as i}from"./MultiPathImpl.js";import{g as c,c as u}from"./Envelope.js";import{l,k as a,n as h,T as d,D as p,C as y}from"./SpatialReference.js";var _=y;function g(t,e){return{m_geometry:t,m_side:e}}function f(t,e,s,r,n,o){if(e.isEmpty()){const t=g(e,0);return void n.push(t)}if(s.isEmpty()){const t=g(e,0);return void n.push(t)}const i=[],c=new m;{const m=c.createGeometryUserIndex(),u=c.addGeometry(e),y=c.addGeometry(s),f=new d(o);let C=0,E=null;if(c.hasCurves()){E=new _;const t=c.getEnvelope2D(o);C=l(r.total());const e=a(r.total(),t);h(c,e,r.total(),12e3,E,null,o)}c.dbgVerifyCurves(),f.setEditShapeCrackAndCluster(c,r),f.cut(t,m,u,y,i);for(const t of i){null!==E&&E.stitchCurves(c,t,C,!1);const e=g(c.getGeometry(t),p(c.getGeometryUserIndex(t,m)));n.push(e)}null!==E&&E.clearStitcher(c)}}function C(t,e,s,r,n,c){if(e.isEmpty()){const t=g(e,0);return void n.push(t)}if(s.isEmpty()){const t=g(e,0);return void n.push(t)}const u=[],p=new m;{const t=p.createGeometryUserIndex(),y=p.addGeometry(e),f=p.addGeometry(s),C=new d(c);let E=0,G=null;if(p.hasCurves()){G=new _;const t=p.getEnvelope2D(c);E=l(r.total());const e=a(r.total(),t);h(p,e,r.total(),12e3,G,null,c)}p.dbgVerifyCurves(),C.setEditShapeCrackAndCluster(p,r),C.cut(!1,t,y,f,u),null!==G&&G.stitchCurves(p,i,E,!0);let v=p.getGeometry(y);const w=new o,x=new o,k=[];for(let e=0;e<u.length;e++){let s=null;{const n=new m,o=n.addGeometry(v),d=n.addGeometry(p.getGeometry(u[e]));if(n.hasCurves()){const t=n.getEnvelope2D(c);E=l(r.total());const e=a(r.total(),t);h(n,e,r.total(),12e3,G,null,c)}C.setEditShapeCrackAndCluster(n,r);const y=C.intersection(o,d);if(null!==G&&G.stitchCurves(n,i,E,!0),s=n.getGeometry(y),s.isEmpty())continue;const _=p.getGeometryUserIndex(u[e],t);2===_?w.add(s,!1):1===_?x.add(s,!1):k.push(s)}{const t=new m,s=t.addGeometry(v),n=t.addGeometry(p.getGeometry(u[e]));if(t.hasCurves()){const e=t.getEnvelope2D(c);E=l(r.total());const s=a(r.total(),e);h(t,s,r.total(),12e3,G,null,c)}C.setEditShapeCrackAndCluster(t,r);const o=C.difference(s,n);null!==G&&G.stitchCurves(t,i,E,!0);v=t.getGeometry(o)}}if(!v.isEmpty()&&u.length>0&&k.push(v),w.isEmpty()&&x.isEmpty())return;if(!w.isEmpty()){const t=g(w,1);n.push(t)}if(!x.isEmpty()){const t=g(x,2);n.push(t)}for(let e=0,s=k.length;e<s;++e){const t=g(k[e],3);n.push(t)}}}class E{getOperatorType(){return 10005}accelerateGeometry(t,e,s){return!1}canAccelerateGeometry(t){return!1}supportsCurves(){return!0}execute(t,e,s,r,n){return new G(t,e,s,r,n)}}class G extends t{m_bConsiderTouch;m_cuttee;m_cutter;m_tolerance;m_cutIndex=-1;m_cuts=[];m_progressTracker;constructor(t,e,s,r,o){super(),this.m_progressTracker=o,this.m_cuttee=e.clone(),this.m_cutter=new n({copy:s}),this.m_bConsiderTouch=t;const m=c(e,s);this.m_tolerance=u(r,m,!0)}next(){return-1===this.m_cutIndex&&this.generateCuts(),++this.m_cutIndex<this.m_cuts.length?this.m_cuts[this.m_cutIndex]:null}getGeometryID(){return this.m_cutIndex}tock(){return!0}getRank(){return 1}generateCuts(){switch(this.m_cuttee.getGeometryType()){case e.enumPolyline:this.generatePolylineCuts();break;case e.enumPolygon:this.generatePolygonCuts()}}generatePolylineCuts(){const t=new n,e=new n,r=new n;this.m_cuts.length=0,this.m_cuts.push(t),this.m_cuts.push(e);const o=[];f(this.m_bConsiderTouch,this.m_cuttee,this.m_cutter,this.m_tolerance,o,this.m_progressTracker);for(let n=0;n<o.length;n++){const m=o[n];1===m.m_side?t.add(m.m_geometry,!1):2===m.m_side||4===m.m_side?e.add(m.m_geometry,!1):3===m.m_side?this.m_cuts.push(m.m_geometry):0===m.m_side?r.add(m.m_geometry,!1):s("")}r.isEmpty()||t.isEmpty()&&e.isEmpty()&&!(this.m_cuts.length>=3)||this.m_cuts.push(r),t.isEmpty()&&e.isEmpty()&&this.m_cuts.length<3&&(this.m_cuts.length=0)}generatePolygonCuts(){const t=new o,e=new o,n=new o;this.m_cuts.length=0,this.m_cuts.push(t),this.m_cuts.push(e);const m=[];C(this.m_bConsiderTouch,this.m_cuttee,this.m_cutter,this.m_tolerance,m,this.m_progressTracker);for(let r=0;r<m.length;r++){const o=m[r];1===o.m_side?t.add(o.m_geometry,!1):2===o.m_side?e.add(o.m_geometry,!1):3===o.m_side?this.m_cuts.push(o.m_geometry):0===o.m_side?n.add(o.m_geometry,!1):s("")}r(n.isEmpty()||1===m.length),t.isEmpty()&&e.isEmpty()&&this.m_cuts.length<3&&(this.m_cuts.length=0)}}export{E as O};
|
|
@@ -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{G as s}from"./GeometryCursor.js";import{a as i,c as r,
|
|
2
|
+
import{__addDisposableResource as t,__disposeResources as e}from"tslib";import{G as s}from"./GeometryCursor.js";import{a as i,c as r,f as a,G as n,h as m,j as l,t as h}from"./Geometry.js";import{P as o,a as c,L as u}from"./MultiPathImpl.js";import{P as _}from"./Envelope.js";import{h as g,P as p,c as k}from"./Point2D.js";import{O as f}from"./OperatorDensify.js";class P{getOperatorType(){return 10204}supportsCurves(){return!0}accelerateGeometry(t,e,s){return!1}canAccelerateGeometry(t){return!1}executeMany(t,e,s,i){return new y(t,e,s,i)}execute(t,e,s,r){t||i("null param is not allowed.");return new y(null,e,s,r).generalize(t)}}class y extends s{m_progressTracker;m_geoms;m_pline=null;m_point=new _;m_xy;m_stack=[];m_resultstack=[];m_maxDeviation;m_bRemoveDegenerateParts;m_callCount=0;constructor(t,e,s,i){super(),this.m_progressTracker=i,this.m_geoms=t,this.m_maxDeviation=e,this.m_bRemoveDegenerateParts=s}tock(){return!0}getRank(){return 1}next(){const t=this.m_geoms.next();return null===t?null:(r(t),this.generalize(t))}getGeometryID(){return this.m_geoms.getGeometryID()}generalize(s){const i=s.getGeometryType();if(a(i))return s;if(i===n.enumEnvelope){const t=new o({vd:s.getDescription()});return t.addEnvelope(s,!1),this.generalize(t)}if(m(i)){const t=new c({vd:s.getDescription()});return t.addSegment(s,!0),this.generalize(t)}if(l(i)||h(""),s.isEmpty()||this.m_maxDeviation<=0)return s;const r=(new f).execute(s,0,.05*this.m_maxDeviation,0,this.m_progressTracker);s.hasNonLinearSegments()&&(this.m_maxDeviation*=.95);const _=r,p=s.createInstance();if(p.getGeometryType()===n.enumPolygon){p.setFillRule(s.getFillRule())}this.m_xy=_.getAttributeStreamRef(0);{const s={stack:[],error:void 0,hasError:!1};try{const e=new u;this.m_pline=e,t(s,g(()=>{this.m_pline=null},!1),!1);for(let t=0,s=_.getPathCount();t<s;t++)this.generalizePath(_.getImpl(),t,p.getImpl())}catch(k){s.error=k,s.hasError=!0}finally{e(s)}}return this.m_resultstack.length=0,this.m_stack.length=0,p}generalizePath(t,e,s){if(t.getPathSize(e)<2)return;this.m_resultstack.length=0,this.m_stack.length=0;const i=t.getPathStart(e),r=t.getPathEnd(e)-1,a=t.isClosedPath(e),n=t.isClosedPathInXYPlane(e);let m=0,l=-1;this.m_stack.push(a?i:r),this.m_stack.push(i);let h=!1,o=!1;for(!this.m_bRemoveDegenerateParts&&n&&(h=!0,o=!0);this.m_stack.length>1;){const e=this.m_stack.at(-1);this.m_stack.pop();const s=this.m_stack.at(-1);let i=t.getXY(e);this.m_pline.setStartXY(i),i=t.getXY(s),this.m_pline.setEndXY(i);const a=[Number.NaN];let n=this.findGreatestDistance(e,s,r,a);n>=0&&(h?h=!1:(o&&a[0]>m&&(m=a[0],l=n),a[0]<=this.m_maxDeviation&&(n=-1))),n>=0?(this.m_stack.push(n),this.m_stack.push(e)):this.m_resultstack.push(e)}a||this.m_resultstack.push(this.m_stack[0]);const c=this.m_resultstack.length;if(c===t.getPathSize(e)&&c===this.m_stack.length)s.addPath(t,e,!0);else if(this.m_resultstack.length>0){if(this.m_bRemoveDegenerateParts&&this.m_resultstack.length<=2){if(a||1===this.m_resultstack.length)return;if(p.distance(t.getXY(this.m_resultstack[0]),t.getXY(this.m_resultstack[1]))<=this.m_maxDeviation)return}if(o&&l>=0&&m<=this.m_maxDeviation){const t=this.m_resultstack.at(-1)>l;this.m_resultstack.push(l),t&&(this.m_resultstack[this.m_resultstack.length-2]=k(this.m_resultstack[this.m_resultstack.length-1],this.m_resultstack[this.m_resultstack.length-1]=this.m_resultstack[this.m_resultstack.length-2]))}for(let e=0,i=this.m_resultstack.length;e<i;e++)t.getPointByVal(this.m_resultstack[e],this.m_point),0===e?s.startPathPoint(this.m_point):s.lineToPoint(this.m_point);if(a){for(let t=this.m_resultstack.length;t<3;t++)s.lineToPoint(this.m_point);s.closePathWithLine()}}}findGreatestDistance(t,e,s,i){let r=e-1;e<=t&&(r=s);let a=-1,n=0;const m=new p;for(let l=t+1;l<=r;l++){this.m_xy.queryPoint2D(2*l,m);const t=m.x,e=m.y,s=this.m_pline.getClosestCoordinate(m,!1);m.assign(this.m_pline.getCoord2D(s)),m.x-=t,m.y-=e;const i=m.length();i>n&&(a=l,n=i),this.m_callCount++}return i[0]=n,a}}export{P as O};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{G as e}from"./GeometryCursor.js";import{d as t,t as s,a as n,c as i,i as r,G as o,l as m,m as a,j as h,n as c,o as u}from"./Geometry.js";import{Envelope2D as l}from"./Envelope2D.js";import{t as _,a as f,M as d,N as g,O as p,Q as P,R as x,u as b,S as y,U as w,V as C,B as v,f as S,W as D,X as I,Y as G,Z as T,_ as M,$ as N,a0 as k,a1 as A,a2 as E,a3 as q,a4 as R,a5 as z}from"./SpatialReference.js";import{__addDisposableResource as X,__disposeResources as B}from"tslib";import{P as O,a as Y,E as j}from"./MultiPathImpl.js";import{f as F,c as W,P as U,e as J,h as H,j as V,s as L}from"./Envelope.js";import{T as Q}from"./Transformation2D.js";import{d as Z,m as $,P as K,S as ee,l as te,n as se}from"./Point2D.js";import{c as ne}from"./OperatorClip.js";import{c as ie}from"./GeometryCleaner-CIE8Wfmb.js";import{O as re}from"./OperatorDensify.js";import{S as oe}from"./SimpleGeometryCursor.js";function me(e,t,s,m,a,h){m<Number.MAX_VALUE&&m>-Number.MAX_VALUE||n("Geodesic_bufferer.buffer - bad distance"),i(e);const c=ie(e),u=c.getGeometryType();if(r(u)){const e=c.getPointCount(),n=8e6;if(Math.abs(m)>n&&(e>50||u!==o.enumMultiPoint&&4===s&&e>2)){let e=c;const i=m>0?1:-1,r=7e6;let o=m,u=1;do{u++,o=(Math.abs(o)-r)*i}while(Math.abs(o)>n);o=m;for(let n=0;n<u-1;n++)e=he(e,t,s,r*i,a,u,h),o=(Math.abs(o)-r)*i;return e=he(e,t,s,o,a,u,h),e}}return he(c,t,s,m,a,1,h)}class ae{m_sr=null;m_gcs=null;m_transform=null;m_progressTracker;m_a=0;m_eSquared=0;m_rpu=0;m_radTolerance=0;m_q90=0;m_gcs90=0;m_gcs180=0;m_gcs360=0;m_gcs60=0;m_ellipticToGeodesicMaxRatio=0;m_curveType=0;m_bShapePreserving=!1;m_distance=0;m_absDistance=0;m_convergenceOffset=0;m_cornerStep=0;m_segmentStep=0;constructor(e){this.m_progressTracker=e}bufferPolygon(e){const t=new O,s=new we(this,e,t);return this.processGnomonicBufferPiecesCursor(!0,s)}bufferPolyline(e){const t=new we(this,e,null);return this.processGnomonicBufferPiecesCursor(!0,t)}bufferMultiPoint(e){const t=new Ce(this,e);return this.processGnomonicBufferPiecesCursor(!1,t)}bufferPoint(e){const t=e.getXY();t.scale(this.m_rpu);let s=new O;if(this.bufferPoint2D(t,!1,s)){const e=J(null,s,!0);s=b(s,e,!0,!0,-1,this.m_progressTracker,0,!1)}return s=(new p).foldInto360RangeGeodetic(s,this.m_gcs,2),s}processGnomonicBufferPiecesCursor(e,t){const s=t;let n=s.getGnomonic();const i=y(w());let r=new C,o=(new _).executeMany(r,i,this.m_progressTracker,2);const m=Z(6,!1),a=$(l,6);this.initializeGrid(m,a);const h=[null,null,null,null,null,null],c=[null,null,null,null,null,null],u=[null,null,null,null,null,null];let f,d,g;for(;null!==(f=s.next());){if(d=s.getGnomonic(),d!==n){if(null!==n){let t=o.next();if(r=null,o=null,null!=t){const s=J(i,t,!0),r=F(s);t=n.unproject(t,r,this.m_progressTracker),this.putInGridCursors(e,t,i,!0,m,a,h,c,u)}}null!==d&&(r=new C,o=(new _).executeMany(r,i,this.m_progressTracker,2)),n=d}if(s.isRunningInGnomonic()){if(d.project(f),s.needsSimplify()){const e=J(null,f,!0);f=b(f,e,!0,!0,-1,this.m_progressTracker,0,!1)}r.tick(be(f)),o.tock()}else this.putInGridCursors(e,f,i,!0,m,a,h,c,u)}let P=!1;for(let l=0;l<6;l++)if(null!=u[l]){P=!0;break}if(P){let t=!1;const l=[null,null,null,null,null,null];if(e){const n=s.m_densified;if(s.m_densified=null,null!==n){const s=new Q;s.scale(1/this.m_rpu,1/this.m_rpu),n.applyTransformation(s),this.m_distance>0?this.putInGridCursors(e,n,i,!1,m,a,h,c,u):(this.processInGrid(e,n,!1,m,a,h,l),t=!0)}}const f=new C,d=(new _).executeMany(f,this.m_gcs,this.m_progressTracker,2);if(null!==o){let t=o.next();r=null,o=null;const s=J(i,t,!0),l=F(s);t=n.unproject(t,l,this.m_progressTracker),this.putInGridCursors(e,t,i,!0,m,a,h,c,u)}for(let e=0;e<6;e++)if(null!=u[e]){let s=u[e].next();u[e]=null,c[e]=null,t&&null!==l[e]&&(s=(new v).execute(l[e],s,i,this.m_progressTracker));const n=J(i,s,!0),r=F(n);s=h[e].unproject(s,r,this.m_progressTracker),s=(new S).execute(s,this.m_gcs,!0,this.m_progressTracker),f.tick(be(s)),d.tock()}g=d.next()}else{let t,m=!1;if(e){let e=s.m_densified;if(s.m_densified=null,null!==e){const s=new Q;s.scale(1/this.m_rpu,1/this.m_rpu),e.applyTransformation(s),d.project(e);const n=J(null,e,!0);e=b(e,n,!1,!0,-1,this.m_progressTracker,0,!1),this.m_distance>0?(r.tick(be(e)),o.tock()):(t=e,m=!0)}}let a=o.next();r=null,o=null,m&&(a=(new v).execute(t,a,i,this.m_progressTracker));const h=J(i,a,!0),c=F(h);g=n.unproject(a,c,this.m_progressTracker),g=(new S).execute(g,this.m_gcs,!0,this.m_progressTracker)}return g=(new p).foldInto360RangeGeodetic(g,this.m_gcs,2),g}putInGridCursors(e,t,s,n,i,r,o,m,a){const h=[null,null,null,null,null,null];this.processInGrid(e,t,n,i,r,o,h);for(let c=0;c<6;c++)null!==h[c]&&(null===m[c]&&(m[c]=new C,a[c]=(new _).executeMany(m[c],s,this.m_progressTracker,2)),m[c].tick(be(h[c])),a[c].tock())}processInGrid(e,t,s,n,i,r,o){const m=.01,a=this.insertGeodeticPointsAlongGrid(t,i,m);for(let h=0;h<6;h++){if(n[h])continue;const e=i[h].clone();e.inflateCoords(m,m);const c=H(t,e),u=W(null,c,!1).total();let l=ne(a,e,u,Number.NaN,this.m_progressTracker);if(null!==l&&!l.isEmpty()){if(l===a&&(l=l.clone()),null===r[h]){const e=new K;h<3?e.setCoords(0,1):e.setCoords(0,-1);const t=new K;t.setAdd(i[h].getCenter(),e),r[h]=xe(this.m_gcs,t)}r[h].project(l);const e=J(null,l,!0);l=b(l,e,s,!0,-1,this.m_progressTracker,0,!1),o[h]=l}}}insertGeodeticPointsAlongGrid(e,t,s){const n=l.construct(t[3].xmin,t[3].ymin,t[2].xmax,t[2].ymax),i=D(this.m_gcs,n,e,!0,this.m_progressTracker),r=new j,o=r.addGeometry(i);return I(r,o,this.m_gcs,0,2,!0,t[0].xmax+s),I(r,o,this.m_gcs,0,2,!0,t[1].xmax+s),I(r,o,this.m_gcs,0,2,!1,t[1].ymin+s),0!==s&&(I(r,o,this.m_gcs,0,2,!0,t[0].xmax-s),I(r,o,this.m_gcs,0,2,!0,t[1].xmax-s),I(r,o,this.m_gcs,0,2,!1,t[1].ymin-s)),r.getGeometry(o)}initializeGrid(e,t){for(let s=0;s<6;s++)e[s]=!1;t[0].setCoords({xmin:-this.m_gcs180,ymin:0,xmax:-this.m_gcs60,ymax:this.m_gcs90}),t[1].setCoords({xmin:-this.m_gcs60,ymin:0,xmax:this.m_gcs60,ymax:this.m_gcs90}),t[2].setCoords({xmin:this.m_gcs60,ymin:0,xmax:this.m_gcs180,ymax:this.m_gcs90}),t[3].setCoords({xmin:-this.m_gcs180,ymin:-this.m_gcs90,xmax:-this.m_gcs60,ymax:0}),t[4].setCoords({xmin:-this.m_gcs60,ymin:-this.m_gcs90,xmax:this.m_gcs60,ymax:0}),t[5].setCoords({xmin:this.m_gcs60,ymin:-this.m_gcs90,xmax:this.m_gcs180,ymax:0})}checkAndPrepSegmentForCrossingAzimuthsOrPoleWrap(e,t,s,n,i,r){const o=e[0],m=e.at(-1),a=o.y<m.y?o.y:m.y,h=o.y>m.y?o.y:m.y,c=d.q(this.m_a,this.m_eSquared,a),u=d.q(this.m_a,this.m_eSquared,h);if(this.m_q90-(c+t+this.m_absDistance)>.001&&this.m_q90+(u-t-this.m_absDistance)>.001)return!1;const l=s-te,_=n+te,f=l-Math.PI,g=l+Math.PI,p=_+Math.PI,P=[Number.NaN],x=[Number.NaN],b=[Number.NaN],y=[Number.NaN];let w=!1;if(le(this.m_a,this.m_eSquared,this.m_rpu,this.m_absDistance,o,l,f,m,_,P,x),le(this.m_a,this.m_eSquared,this.m_rpu,this.m_absDistance,m,p,_,o,f,b,y),(_<P[0]&&P[0]<p||_<x[0]&&x[0]<p)&&(w=!0),w||(f<b[0]&&b[0]<l||f<y[0]&&y[0]<l)&&(w=!0),!w&&i)return!1;const C=[];for(let d=e.length-1;d>=0;d--)C.push(e[d]);r.setEmpty(),r.addPathPoint2D(null,0,!0);let v=0;v=ce(this.m_a,this.m_eSquared,this.m_rpu,this.m_absDistance,this.m_curveType,e,l,_,i,v,r),v=ue(this.m_a,this.m_eSquared,this.m_rpu,this.m_absDistance,m,_,p,this.m_cornerStep,i,v,r,P[0],x[0]),v=ce(this.m_a,this.m_eSquared,this.m_rpu,this.m_absDistance,this.m_curveType,C,p,g,i,v,r),v=ue(this.m_a,this.m_eSquared,this.m_rpu,this.m_absDistance,o,f,l,this.m_cornerStep,i,v,r,b[0],y[0]);let S=!1;return i||(S=this.checkAndPrepForPole(r)),w||S}bufferPoint2D(e,t,s){s.setEmpty(),s.addPathPoint2D(null,0,!0);const n=0;ue(this.m_a,this.m_eSquared,this.m_rpu,this.m_absDistance,e,-this.m_cornerStep,2*Math.PI,this.m_cornerStep,t,n,s);let i=!1;return t||(i=this.checkAndPrepForPole(s)),i}checkAndPrepForPole(e){const t=this.checkAndPrepForPoleTouch(e),s=this.checkAndPrepForPoleWrap(e);return t||s}checkAndPrepForPoleTouch(e){const t=new l;return e.queryEnvelope(t),!(!G(t.ymax,this.m_gcs90)&&!G(t.ymin,-this.m_gcs90))&&(this.prepPoleTouch(e),!0)}checkAndPrepForPoleWrap(e){const t=e.getXY(0),s=e.getXY(e.getPointCount()-1);return Math.abs(t.x-s.x)>this.m_gcs180?(this.prepSinglePoleWrap(e),!0):this.checkAndPrepForDoublePoleWrap(e)}checkAndPrepForDoublePoleWrap(e){return e.calculateArea2D()<0&&(this.prepDoublePoleWrap(e),!0)}prepPoleTouch(e){const t=new O;t.insertPath2D(-1,null,0,0,!0);const s=e.getPathStart(0),n=e.getPathEnd(0),i=n-s;let r=-1;for(r=s;r<n;r++){const t=e.getXY(r),s=G(t.y,this.m_gcs90),n=G(t.y,-this.m_gcs90);if(!s&&!n)break}let o=r,m=!1,a=Number.NaN;do{const n=e.getXY(o),r=G(n.y,this.m_gcs90),h=G(n.y,-this.m_gcs90),c=s+(o+1-s)%i;if(r||h){let s=K.construct(a,n.y);t.insertPoint2D(0,-1,s);const i=e.getXY(c),r=G(i.y,this.m_gcs90),o=G(i.y,-this.m_gcs90);r||o||(s=K.construct(i.x,n.y),m?t.setXY(t.getPointCount()-1,s):t.insertPoint2D(0,-1,s)),m=!0}else t.insertPoint2D(0,-1,n),a=n.x,m=!1;o=c}while(o!==r);e.setEmpty(),e.add(t,!1)}prepSinglePoleWrap(e){const t=new O,s=new O,n=new Q,i=e.getXY(e.getPathStart(0)),r=e.getXY(e.getPathEnd(0)-1),o=this.m_gcs360,m=this.m_gcs180,a=new l;a.setCoords({xmin:-this.m_gcs180,ymin:-this.m_gcs90,xmax:this.m_gcs180,ymax:this.m_gcs90});const h=new l;e.queryEnvelope(h);const c=Math.ceil(h.width()/o);let u,_;i.x>r.x?(u=-o,_=this.m_gcs90):(u=o,_=-this.m_gcs90),n.setShiftCoords(u,0),t.addPath(e,0,!0),s.add(t,!1);const f=new U;for(let l=0;l<c;l++)s.applyTransformation(n),s.getPointByVal(0,f),t.lineToPoint(f),t.addSegmentsFromPath(s,0,0,s.getSegmentCount()-1,!1);const d=t.getXY(0),g=t.getXY(t.getPointCount()-1);d.y=_,g.y=_,t.lineTo(g);const p=new K;for(p.setCoordsPoint2D(g),p.x-=.5*u;Math.abs(p.x-d.x)>m;)t.lineTo(p),p.x-=.5*u;t.lineTo(d);const P=a.getCenterX(),x=new l;t.queryEnvelope(x);let b=0;const y=x.getCenter().x;y-P>m?b=-Math.ceil((y-P-m)/o):P-y>m&&(b=Math.ceil((P-y-m)/o)),0!==b&&(n.setShiftCoords(b*o,0),t.applyTransformation(n));const w=new j,C=w.addGeometry(t);I(w,C,this.m_gcs,0,2,!0,a.xmin),I(w,C,this.m_gcs,0,2,!0,a.xmax);const v=w.getGeometry(C),S=H(v,a);S.inflateCoords(0,1);const D=W(null,S,!0).total(),G=ne(v,a,D,Number.NaN,this.m_progressTracker);e.setEmpty(),e.add(G,!1)}prepDoublePoleWrap(e){const t=this.m_gcs360,s=this.m_gcs180,n=new l;n.setCoords({xmin:-this.m_gcs180,ymin:-this.m_gcs90,xmax:this.m_gcs180,ymax:this.m_gcs90});const i=n.getCenter().x,r=new l;e.queryPathEnvelope(0,r);let o,m=0,a=r.getCenter().x;if(a-i>s?m=-Math.ceil((a-i-s)/t):i-a>s&&(m=Math.ceil((i-a-s)/t)),0!==m){const s=new Q;s.setShiftCoords(m*t,0),e.getImpl().applyTransformationToPath(s,0),e.queryPathEnvelope(0,r),a=r.getCenter().x}const h=new l;n.containsExclusiveEnvelope(r)?(o=!1,h.setCoords({env2D:n})):(o=!0,h.setCoords({env2D:n}),h.xmin-=t,h.xmax+=t);let c=e.createInstance();c.addPathPoint2D(null,0,!0);const u=new K;if(u.setCoords(h.xmin,h.ymin),c.insertPoint2D(0,-1,u),u.setCoords(h.xmin,h.ymax),c.insertPoint2D(0,-1,u),u.setCoords(.5*(h.xmin+h.xmax),h.ymax),c.insertPoint2D(0,-1,u),u.setCoords(h.xmax,h.ymax),c.insertPoint2D(0,-1,u),u.setCoords(h.xmax,h.ymin),c.insertPoint2D(0,-1,u),u.setCoords(.5*(h.xmin+h.xmax),h.ymin),c.insertPoint2D(0,-1,u),o){c.addPath(e,0,!0);const s=new Q;a<i?s.setShiftCoords(t,0):s.setShiftCoords(-t,0),e.getImpl().applyTransformationToPath(s,0),c.addPath(e,0,!0);const r=new j,o=r.addGeometry(c);I(r,o,this.m_gcs,0,2,!0,n.xmin),I(r,o,this.m_gcs,0,2,!0,n.xmax),c=r.getGeometry(o);const m=H(c,n);m.inflateCoords(0,1);const h=W(null,m,!0).total();c=ne(c,n,h,Number.NaN,this.m_progressTracker)}else c.addPath(e,0,!0);e.setEmpty(),e.add(c,!1)}setMinCornerStep(){const e={stack:[],error:void 0,hasError:!1};try{let s=Math.min(Math.PI*this.m_a-this.m_absDistance,this.m_absDistance);s=Math.min(s,.125*this.m_a*Math.PI);const n=new K;n.setCoords(0,10*this.m_rpu);const i=0;let r=45*this.m_rpu;const o=X(e,new ee(new T,new T),!1),m=X(e,new ee(new T,new T),!1),a=X(e,new ee(new T,new T),!1),h=X(e,new ee(new T,new T),!1),c=new K,u=new K,l=new K,_=new K;for(M.geodesicCoordinate(this.m_a,this.m_eSquared,n.x,n.y,s,i,o.at(0),o.at(1)),c.setCoords(o.at(0).val,o.at(1).val),M.geodesicCoordinate(this.m_a,this.m_eSquared,n.x,n.y,s,r,m.at(0),m.at(1)),u.setCoords(m.at(0).val,m.at(1).val);;){const e={stack:[],error:void 0,hasError:!1};try{const t=.5*(i+r);M.geodesicCoordinate(this.m_a,this.m_eSquared,n.x,n.y,s,t,a.at(0),a.at(1)),l.setCoords(a.at(0).val,a.at(1).val);const o=X(e,new T,!1),f=X(e,new T,!1);M.geodeticDistance(this.m_a,this.m_eSquared,c.x,c.y,u.x,u.y,o,f,null,2),M.geodeticCoordinate(this.m_a,this.m_eSquared,c.x,c.y,.5*o.val,f.val,h.at(0),h.at(1),2),_.setCoords(h.at(0).val,h.at(1).val);const d=X(e,new T,!1);M.geodeticDistance(this.m_a,this.m_eSquared,l.x,l.y,_.x,_.y,d,null,null,2);if(d.val<=this.m_convergenceOffset)break;r*=.9,M.geodesicCoordinate(this.m_a,this.m_eSquared,n.x,n.y,s,r,m.at(0),m.at(1)),u.setCoords(m.at(0).val,m.at(1).val)}catch(t){e.error=t,e.hasError=!0}finally{B(e)}}const f=r-i,d=2*Math.PI/Math.ceil(2*Math.PI/f);this.m_cornerStep=d}catch(s){e.error=s,e.hasError=!0}finally{B(e)}}setMinSegmentStep(){const e={stack:[],error:void 0,hasError:!1};try{let n=Math.min(Math.PI*this.m_a-this.m_absDistance,this.m_absDistance);n=Math.min(n,.125*this.m_a*Math.PI);const i=new K,r=new K;i.setCoords(0,10*this.m_rpu),r.setCoords(10*this.m_rpu,10*this.m_rpu);const o=X(e,new T,!1),m=X(e,new T,!1),a=X(e,new T,!1);M.geodeticDistance(this.m_a,this.m_eSquared,i.x,i.y,r.x,r.y,a,o,m,this.m_curveType);const h=X(e,new ee(new T,new T),!1),c=X(e,new ee(new T,new T),!1),u=new K,l=X(e,new T,!1),_=X(e,new ee(new T,new T),!1),f=X(e,new ee(new T,new T),!1),d=X(e,new ee(new T,new T),!1),g=X(e,new ee(new T,new T),!1),p=new K,P=new K,x=new K,b=new K,y=0;let w=1;const C=o.val,v=m.val,S=C-.5*Math.PI,D=v+.5*Math.PI,I=a.val;for(M.geodesicCoordinate(this.m_a,this.m_eSquared,i.x,i.y,n,S,_.at(0),_.at(1)),p.setCoords(_.at(0).val,_.at(1).val),M.geodesicCoordinate(this.m_a,this.m_eSquared,r.x,r.y,n,D,f.at(0),f.at(1)),P.setCoords(f.at(0).val,f.at(1).val);;){const e={stack:[],error:void 0,hasError:!1};try{const s=.5*(y+w);M.geodeticCoordinate(this.m_a,this.m_eSquared,i.x,i.y,s*I,C,h.at(0),h.at(1),this.m_curveType),u.setCoords(h.at(0).val,h.at(1).val),M.geodeticDistance(this.m_a,this.m_eSquared,i.x,i.y,u.x,u.y,null,null,l,this.m_curveType);const o=l.val+.5*Math.PI;M.geodesicCoordinate(this.m_a,this.m_eSquared,u.x,u.y,n,o,d.at(0),d.at(1)),x.setCoords(d.at(0).val,d.at(1).val);const m=X(e,new T,!1),a=X(e,new T,!1);M.geodeticDistance(this.m_a,this.m_eSquared,p.x,p.y,P.x,P.y,m,a,null,2),M.geodeticCoordinate(this.m_a,this.m_eSquared,p.x,p.y,.5*m.val,a.val,g.at(0),g.at(1),2),b.setCoords(g.at(0).val,g.at(1).val);const _=X(e,new T,!1);M.geodeticDistance(this.m_a,this.m_eSquared,x.x,x.y,b.x,b.y,_,null,null,2);if(_.val<=this.m_convergenceOffset)break;{const e={stack:[],error:void 0,hasError:!1};try{w*=.9,M.geodeticCoordinate(this.m_a,this.m_eSquared,i.x,i.y,w*I,C,c.at(0),c.at(1),this.m_curveType),r.setCoords(c.at(0).val,c.at(1).val);const t=X(e,new T,!1);M.geodeticDistance(this.m_a,this.m_eSquared,i.x,i.y,r.x,r.y,null,null,t,this.m_curveType);const s=t.val+.5*Math.PI;M.geodesicCoordinate(this.m_a,this.m_eSquared,r.x,r.y,n,s,f.at(0),f.at(1)),P.setCoords(f.at(0).val,f.at(1).val)}catch(t){e.error=t,e.hasError=!0}finally{B(e)}}}catch(s){e.error=s,e.hasError=!0}finally{B(e)}}let G=w*I;G>1e5&&(G=1e5),this.m_segmentStep=G}catch(n){e.error=n,e.hasError=!0}finally{B(e)}}setConvergenceOffset(){let e;e=this.m_absDistance>5e4?100:this.m_absDistance>1e4?10:1,this.m_absDistance/e<500&&(e=this.m_absDistance/500),e<.01&&(e=.01),this.m_convergenceOffset=e}}function he(e,t,s,n,i,r,_){if(e.isEmpty())return new O({vd:e.getDescription()});let b=e;if(m(b)){const e=10*t.getTolerance(0);b=(new re).execute(b,0,e,0,_,12e3)}const y=new ae(_);y.m_sr=t,y.m_gcs=t.getGCS(),y.m_transform=f(t,y.m_gcs,null);const w=N();y.m_gcs.querySpheroidData(w);const C=new l;b.queryEnvelope(C),y.m_a=w.majorSemiAxis,y.m_eSquared=w.e2,y.m_rpu=y.m_gcs.getUnit().getUnitToBaseFactor(),y.m_gcs90=.5*Math.PI/y.m_rpu,y.m_gcs180=Math.PI/y.m_rpu,y.m_gcs360=2*Math.PI/y.m_rpu,y.m_gcs60=y.m_gcs360/6,y.m_q90=d.q90(y.m_a,y.m_eSquared),y.m_ellipticToGeodesicMaxRatio=.5*y.m_a*Math.PI/y.m_q90;const v=y.m_gcs.getTolerance(0);y.m_radTolerance=v*y.m_rpu,4===s?(y.m_curveType=2,y.m_bShapePreserving=!0):(y.m_curveType=s,y.m_bShapePreserving=!1),y.m_distance=n,y.m_absDistance=Math.abs(n),Number.isNaN(i)||i<=0?y.setConvergenceOffset():y.m_convergenceOffset=Math.max(i,.001),y.m_convergenceOffset/=r;let S,D=b.getGeometryType();if(a(D)){const e=new Y({vd:b.getDescription()});e.addSegment(b,!0),S=e,D=o.enumPolyline}else if(D===o.enumEnvelope){const e=b,t=new l;e.queryEnvelope(t);const s=F(W(y.m_sr,C,!0));if(t.minDimension()<=s)if(0===t.maxDimension()){const t=new U({vd:b.getDescription()});e.getCenter(t),S=t,D=o.enumPoint}else{const t=new Y({vd:b.getDescription()});t.addEnvelope(e,!1),S=t,D=o.enumPolyline}else{const t=new O({vd:b.getDescription()});t.addEnvelope(e,!1),S=t,D=o.enumPolygon}}else S=b;if(y.setMinCornerStep(),h(D)||y.setMinSegmentStep(),y.m_absDistance<=.5*y.m_convergenceOffset)return D!==o.enumPolygon?new O({vd:S.getDescription()}):y.m_bShapePreserving?S:g(S,y.m_sr,y.m_curveType,y.m_segmentStep,-1,_);if(y.m_distance<0&&D!==o.enumPolygon)return new O({vd:S.getDescription()});if(y.m_bShapePreserving&&c(D)){const e=g(S,t,4,Number.NaN,y.m_convergenceOffset,_);S=(new p).execute(e,y.m_transform,_)}else S=(new p).execute(S,y.m_transform,_);if(S=P(S,y.m_gcs),S.isEmpty())return new O({vd:S.getDescription()});!y.m_bShapePreserving&&c(D)&&(S=x(y.m_rpu,S)),S=fe(S,y.m_gcs);let I=new O;switch(D){case o.enumPolygon:I=y.bufferPolygon(S);break;case o.enumPolyline:I=y.bufferPolyline(S);break;case o.enumMultiPoint:I=y.bufferMultiPoint(S);break;case o.enumPoint:I=y.bufferPoint(S);break;default:u("")}const G=(new p).execute(I,y.m_transform.getInverse(),_);return G.mergeVertexDescription(S.getDescription()),G}function ce(e,t,s,n,i,r,o,m,a,h,c){const u={stack:[],error:void 0,hasError:!1};try{const l=new K;l.setNAN(),a||c.getPointCount()>0&&(l.setCoordsPoint2D(c.getXY(c.getPointCount()-1)),l.scale(s));const _=X(u,new T,!1),f=X(u,new ee(new T,new T),!1),d=new K,g=new K,p=r.at(-1),P=1/s;for(let s=0;s<r.length;s++){const u=r[s];let x;0===s?x=o:s===r.length-1?x=m:(M.geodeticDistance(e,t,p.x,p.y,u.x,u.y,null,null,_,i),x=_.val-.5*Math.PI),M.geodesicCoordinate(e,t,u.x,u.y,n,x,f.at(0),f.at(1)),a?g.setCoords(f.at(0).val,f.at(1).val):(d.setCoords(f.at(0).val,f.at(1).val),h=_e(u.x,d.x,l.x,h),g.setCoords(h+d.x,d.y),l.setCoordsPoint2D(g)),g.scale(P),c.insertPoint2D(0,-1,g)}return h}catch(l){u.error=l,u.hasError=!0}finally{B(u)}}function ue(e,t,s,n,i,r,o,m,a,h,c,u=Number.NaN,l=Number.NaN){const _={stack:[],error:void 0,hasError:!1};try{if(o-r<m)return h;const f=X(_,new ee(new T,new T),!1),d=new K,g=new K,p=new K;g.setNAN(),a||c.getPointCount()>0&&(g.setCoordsPoint2D(c.getXY(c.getPointCount()-1)),g.scale(s));let P=Math.ceil(r/m),x=P++*m;x===r&&(x=P++*m);let b=r;const y=1/s;for(;x<o+m&&(b<u&&u<x?(x=u,P--):b<l&&l<x&&(x=l,P--),!(x>=o));)M.geodesicCoordinate(e,t,i.x,i.y,n,x,f.at(0),f.at(1)),a?p.setCoords(f.at(0).val,f.at(1).val):(d.setCoords(f.at(0).val,f.at(1).val),h=_e(i.x,d.x,g.x,h),p.setCoords(h+d.x,d.y),g.setCoordsPoint2D(p)),p.scale(y),c.insertPoint2D(0,-1,p),b=x,x=P++*m;return h}catch(f){_.error=f,_.hasError=!0}finally{B(_)}}function le(e,t,s,n,i,r,o,m,a,h,c){const u={stack:[],error:void 0,hasError:!1};try{const s=new K,l=new K,_=X(u,new ee(new T,new T),!1);M.geodesicCoordinate(e,t,i.x,i.y,n,r,_.at(0),_.at(1)),s.setCoords(_.at(0).val,_.at(1).val),M.geodesicCoordinate(e,t,i.x,i.y,n,o,_.at(0),_.at(1)),l.setCoords(_.at(0).val,_.at(1).val);const f=X(u,new T,!1);for(M.geodeticDistance(e,t,m.x,m.y,s.x,s.y,null,f,null,0),h[0]=f.val,M.geodeticDistance(e,t,m.x,m.y,l.x,l.y,null,f,null,0),c[0]=f.val;h[0]<=c[0];)h[0]+=se;for(;h[0]>c[0];)h[0]-=se;for(;h[0]>=a;)h[0]-=se,c[0]-=se;for(;h[0]<a;)h[0]+=se,c[0]+=se}catch(l){u.error=l,u.hasError=!0}finally{B(u)}}function _e(e,t,s,n){if(Number.isNaN(s)){for(;n+t-e>Math.PI;)n-=se;for(;e-(n+t)>Math.PI;)n+=se;return n}return n+t-s>Math.PI?n-=se:s-(n+t)>Math.PI&&(n+=se),n}function fe(e,t){const s=e.getGeometryType();let n;if(n=c(s)?e.getPathCount():s===o.enumMultiPoint?e.getPointCount():1,1===n)return e;const i=[],r=[];for(let o=0;o<n;o++){i.push(o);const n=new K;if(c(s)){const t=new l;e.queryPathEnvelope(o,t),n.assign(t.getCenter())}else n.assign(e.getXY(o));const m=t.toGeohash(n);r.push(m)}i.sort((e,t)=>r[e]<r[t]?-1:r[e]>r[t]?1:0);const m=e.createInstance();for(let o=0;o<n;o++){const t=i[o];c(s)?m.addPath(e,t,!0):m.addPoints(e,t,t+1)}return m}function de(e,t,s,n,i,r){const o={stack:[],error:void 0,hasError:!1};try{if(n>=r)return!1;const m=s[0],a=s.at(-1),h=X(o,new T,!1),c=X(o,new T,!1),u=X(o,new T,!1);M.greatEllipticDistance(e,t,i.x,i.y,m.x,m.y,h,null,null),M.greatEllipticDistance(e,t,i.x,i.y,a.x,a.y,c,null,null),M.greatEllipticDistance(e,t,m.x,m.y,a.x,a.y,u,null,null);let l=Math.min(h.val,c.val)+u.val,_=l+n;if(_<r)return!0;const f=X(o,new T,!1);l=Math.max(h.val,c.val);for(let n=1;n<s.length-1;n++){const r=s[n];M.greatEllipticDistance(e,t,i.x,i.y,r.x,r.y,f,null,null),f.val>l&&(l=f.val)}return _=l+n,_<r}catch(m){o.error=m,o.hasError=!0}finally{B(o)}}function ge(e,t,s,n,i,r,o,m){let a;if(n.length%2==0){const e=n.length>>1,t=n[e],s=n[e-1];a=K.lerp(t,s,.5)}else{a=n[n.length-1>>1].clone()}const h=a.clone(),c=k(e,t,h,75/180*Math.PI);return!!de(e,t,n,i,h,c)&&(null!==r&&(r.setCoordsPoint2D(a),r.scale(1/s)),null!==o&&o.setCoordsPoint2D(h),null!==m&&(m[0]=c),!0)}function pe(e,t,s,n,i,r){const o={stack:[],error:void 0,hasError:!1};try{if(n>=r)return!1;const m=X(o,new T,!1);M.greatEllipticDistance(e,t,i.x,i.y,s.x,s.y,m,null,null);return m.val+n<r}catch(m){o.error=m,o.hasError=!0}finally{B(o)}}function Pe(e,t,s,n,i,r,o,m){const a=k(e,t,n,75/180*Math.PI);return!!pe(e,t,n,i,n,a)&&(null!==r&&(r.setCoordsPoint2D(n),r.scale(1/s)),null!==o&&o.setCoordsPoint2D(n),null!==m&&(m[0]=a),!0)}function xe(e,t){return new z(e,t)}function be(e){return V(e,0)||L(e,0),e}class ye{m_bRunningInGnomonic=!1;m_bNeedsSimplify=!1;m_gnomonic=null;m_gnomonicCenterRad=new K;m_minGnomonicRadius=Number.NaN;m_progressTracker;constructor(e){this.m_progressTracker=e}isRunningInGnomonic(){return this.m_bRunningInGnomonic}needsSimplify(){return this.m_bNeedsSimplify}getGnomonic(){return this.m_gnomonic}}class we extends ye{m_bufferer;m_multiPath;m_segIter=null;m_bNextSegmentCannotJoin=!1;m_currentDensifiedDelta=[0];m_currentBufferedDelta=0;m_lastAzimuth=0;m_startAzimuth=[0];m_endAzimuth=[0];m_numWinds=0;m_debugCounter=0;m_bufferHelper=new O;m_densifiedPoints=[];m_densified;constructor(e,t,s){super(e.m_progressTracker),this.m_bufferer=e,this.m_multiPath=t,this.m_densified=s,this.m_bNeedsSimplify=!0;const n=new l;this.m_multiPath.queryEnvelope(n);const i=n.getCenter(),r=i.clone();r.scale(this.m_bufferer.m_rpu),this.m_gnomonic=xe(this.m_bufferer.m_gcs,i),this.m_gnomonicCenterRad=r.clone(),this.m_minGnomonicRadius=k(this.m_bufferer.m_a,this.m_bufferer.m_eSquared,r,75/180*Math.PI)}next(){let e;if(this.m_bNextSegmentCannotJoin)return this.m_bNextSegmentCannotJoin=!1,this.m_segIter.nextSegment(),e=this.m_bufferHelper.clone(),e;if(null===this.m_segIter){if(this.m_segIter=this.m_multiPath.getImpl().querySegmentIterator(),!this.m_segIter.nextPath())return null;null!==this.m_densified&&this.m_densified.addPathPoint2D(null,0,!0)}if(!this.m_segIter.hasNextSegment()){if(!this.m_segIter.nextPath())return null;null!=this.m_densified&&this.m_densified.addPathPoint2D(null,0,!0)}let t=null;this.m_currentBufferedDelta=0,this.m_currentDensifiedDelta=[0],this.m_numWinds=0,this.m_lastAzimuth=Number.NaN,this.m_bNextSegmentCannotJoin=!1,this.m_densifiedPoints.length=0;const s=16;let n=0;const i=new K,r=new K;for(;this.m_segIter.hasNextSegment()&&this.m_numWinds<s;){const e=this.m_segIter.nextSegment();if(i.setCoordsPoint2D(e.getStartXY()),r.setCoordsPoint2D(e.getEndXY()),i.scale(this.m_bufferer.m_rpu),r.scale(this.m_bufferer.m_rpu),A(i,r))i.x=r.x;else if(E(i,r))r.x=i.x;else{let e=-1,t=-1;const s=this.m_segIter.getPathIndex(),n=this.m_multiPath.getPathStart(s),o=this.m_multiPath.getPathEnd(s);if(e=this.m_segIter.getStartPointIndex()-1,t=this.m_segIter.getEndPointIndex()+1,e<n&&(e=this.m_multiPath.isClosedPath(s)?o-1:-1),t>o-1&&(t=this.m_multiPath.isClosedPath(s)?n:-1),-1!==e){const t=this.m_multiPath.getXY(e);t.scale(this.m_bufferer.m_rpu),E(t,i)&&(i.x=t.x)}if(-1!==t){const e=this.m_multiPath.getXY(t);e.scale(this.m_bufferer.m_rpu),A(r,e)&&(r.x=e.x)}}this.m_densifiedPoints.length=0;const s=q(this.m_bufferer.m_a,this.m_bufferer.m_eSquared,this.m_bufferer.m_curveType,i,r,this.m_bufferer.m_segmentStep,Number.NaN,this.m_bufferer.m_radTolerance,this.m_startAzimuth,this.m_endAzimuth,this.m_densifiedPoints,this.m_currentDensifiedDelta);if(0===n)this.m_bRunningInGnomonic=this.isSegmentBufferInCurrentGnomonic(this.m_densifiedPoints),this.m_bRunningInGnomonic||(this.m_bRunningInGnomonic=this.tryUpdateGnomonic(this.m_densifiedPoints));else if(this.m_bRunningInGnomonic){if(!this.isSegmentBufferInCurrentGnomonic(this.m_densifiedPoints)){this.m_segIter.previousSegment(),this.m_segIter.previousSegment(),this.m_segIter.nextSegment();break}}else{if(ge(this.m_bufferer.m_a,this.m_bufferer.m_eSquared,this.m_bufferer.m_rpu,this.m_densifiedPoints,this.m_bufferer.m_absDistance*this.m_bufferer.m_ellipticToGeodesicMaxRatio,null,null,null)){this.m_segIter.previousSegment(),this.m_segIter.previousSegment(),this.m_segIter.nextSegment();break}}if(0===s||R(i,r)?(this.m_bufferHelper.setEmpty(),this.m_bufferer.bufferPoint2D(i,this.m_bRunningInGnomonic,this.m_bufferHelper),this.m_bNextSegmentCannotJoin=!0):(this.m_bufferHelper.setEmpty(),this.m_bNextSegmentCannotJoin=this.checkAndPrepSegmentForCrossingAzimuthsOrPoleWrap(s,this.m_bufferHelper)),this.m_bNextSegmentCannotJoin){this.m_segIter.previousSegment(),this.m_segIter.hasPreviousSegment()?(this.m_segIter.previousSegment(),this.m_segIter.nextSegment()):this.m_segIter.resetToFirstSegment(),null!=this.m_densified&&this.m_densified.insertPointsFromPoints(this.m_densified.getPathCount()-1,-1,this.m_densifiedPoints,0,this.m_densifiedPoints.length-1,!0);break}null!=this.m_densified&&this.m_densified.insertPointsFromPoints(this.m_densified.getPathCount()-1,-1,this.m_densifiedPoints,0,this.m_densifiedPoints.length-1,!0),null===t&&(t=new O,t.addPathPoint2D(null,0,!0)),this.addJoinAndBufferLeftSide(t),n++}if(this.m_currentDensifiedDelta=[0],n>0){const e=this.m_segIter.getStartPointIndex(),s=this.m_segIter.getPathIndex();for(;n>0;){if(this.m_segIter.previousSegment(),i.setCoordsPoint2D(this.m_multiPath.getXY(this.m_segIter.getStartPointIndex())),r.setCoordsPoint2D(this.m_multiPath.getXY(this.m_segIter.getEndPointIndex())),i.scale(this.m_bufferer.m_rpu),r.scale(this.m_bufferer.m_rpu),this.m_bRunningInGnomonic)if(A(i,r))i.x=r.x;else if(E(i,r))r.x=i.x;else{let e=-1,t=-1;const s=this.m_segIter.getPathIndex(),n=this.m_multiPath.getPathStart(s),o=this.m_multiPath.getPathEnd(s);if(e=this.m_segIter.getStartPointIndex()-1,t=this.m_segIter.getEndPointIndex()+1,e<n&&(e=this.m_multiPath.isClosedPath(s)?o-1:-1),t>o-1&&(t=this.m_multiPath.isClosedPath(s)?n:-1),-1!==e){const t=this.m_multiPath.getXY(e);t.scale(this.m_bufferer.m_rpu),E(t,i)&&(i.x=t.x)}if(-1!==t){const e=this.m_multiPath.getXY(t);e.scale(this.m_bufferer.m_rpu),A(r,e)&&(r.x=e.x)}}this.m_densifiedPoints.length=0,q(this.m_bufferer.m_a,this.m_bufferer.m_eSquared,this.m_bufferer.m_curveType,r,i,this.m_bufferer.m_segmentStep,Number.NaN,this.m_bufferer.m_radTolerance,this.m_startAzimuth,this.m_endAzimuth,this.m_densifiedPoints,this.m_currentDensifiedDelta),this.addJoinAndBufferLeftSide(t),n--}return i.setCoordsPoint2D(this.m_multiPath.getXY(this.m_segIter.getStartPointIndex())),i.scale(this.m_bufferer.m_rpu),this.m_currentBufferedDelta=ue(this.m_bufferer.m_a,this.m_bufferer.m_eSquared,this.m_bufferer.m_rpu,this.m_bufferer.m_absDistance,i,this.m_lastAzimuth+.5*Math.PI,this.m_lastAzimuth+1.5*Math.PI,this.m_bufferer.m_cornerStep,this.m_bRunningInGnomonic,this.m_currentBufferedDelta,t),this.m_segIter.resetToVertex(e,s),this.m_segIter.nextSegment(),t}return this.m_bNextSegmentCannotJoin=!1,this.m_segIter.nextSegment(),e=this.m_bufferHelper.clone(),e}isSegmentBufferInCurrentGnomonic(e){return null!==this.m_gnomonic&&de(this.m_bufferer.m_a,this.m_bufferer.m_eSquared,e,this.m_bufferer.m_absDistance*this.m_bufferer.m_ellipticToGeodesicMaxRatio,this.m_gnomonicCenterRad,this.m_minGnomonicRadius)}tryUpdateGnomonic(e){const t=new K,s=new K,n=[0];return ge(this.m_bufferer.m_a,this.m_bufferer.m_eSquared,this.m_bufferer.m_rpu,e,this.m_bufferer.m_absDistance*this.m_bufferer.m_ellipticToGeodesicMaxRatio,t,s,n)?(this.m_gnomonicCenterRad.setCoordsPoint2D(s),this.m_minGnomonicRadius=n[0],this.m_gnomonic=xe(this.m_bufferer.m_gcs,t),!0):(this.m_gnomonic=null,!1)}checkAndPrepSegmentForCrossingAzimuthsOrPoleWrap(e,t){return this.m_bufferer.checkAndPrepSegmentForCrossingAzimuthsOrPoleWrap(this.m_densifiedPoints,e,this.m_startAzimuth[0],this.m_endAzimuth[0],this.m_bRunningInGnomonic,t)}addJoinAndBufferLeftSide(e){const t=this.m_densifiedPoints[0];let s=Number.NaN,n=this.m_startAzimuth[0]-te;const i=this.m_endAzimuth[0]+te;let r=!1;if(!Number.isNaN(this.m_lastAzimuth)){this.m_lastAzimuth>=this.m_startAzimuth[0]?(s=this.m_lastAzimuth+te,n=s+Math.PI-(this.m_lastAzimuth-this.m_startAzimuth[0])):(s=this.m_lastAzimuth+te,n=s+Math.PI-(se-(this.m_startAzimuth[0]-this.m_lastAzimuth))),r=!(this.m_lastAzimuth>=this.m_startAzimuth[0]&&this.m_lastAzimuth-this.m_startAzimuth[0]<=Math.PI)&&!(this.m_lastAzimuth<this.m_startAzimuth[0]&&this.m_startAzimuth[0]-this.m_lastAzimuth>=Math.PI);let i=!1;if(Math.abs(n-s)<=.5*this.m_bufferer.m_cornerStep&&(r||(i=!0)),i){if(e.removePointFromPath(0,e.getPointCount()-1),!this.m_bRunningInGnomonic){const t=new K;t.setCoordsPoint2D(e.getXY(e.getPointCount()-1)),t.scale(this.m_bufferer.m_rpu),t.x-this.m_currentBufferedDelta<-Math.PI?this.m_currentBufferedDelta-=se:t.x-this.m_currentBufferedDelta>Math.PI&&(this.m_currentBufferedDelta+=se)}n=.5*(n+s)}else if(r){const s=new K;s.setCoordsPoint2D(t),s.scale(1/this.m_bufferer.m_rpu),e.insertPoint2D(0,-1,s)}else ue(this.m_bufferer.m_a,this.m_bufferer.m_eSquared,this.m_bufferer.m_rpu,this.m_bufferer.m_absDistance,this.m_densifiedPoints[0],s,n,this.m_bufferer.m_cornerStep,this.m_bRunningInGnomonic,this.m_currentBufferedDelta,e)}this.m_startAzimuth[0]!==this.m_lastAzimuth&&this.m_numWinds++,ce(this.m_bufferer.m_a,this.m_bufferer.m_eSquared,this.m_bufferer.m_rpu,this.m_bufferer.m_absDistance,this.m_bufferer.m_curveType,this.m_densifiedPoints,n,i,this.m_bRunningInGnomonic,this.m_currentBufferedDelta,e),this.m_lastAzimuth=this.m_endAzimuth[0]}}class Ce extends ye{m_bufferer;m_multiPoint;m_pointIndex=-1;constructor(e,t){super(e.m_progressTracker),this.m_bufferer=e,this.m_multiPoint=t,this.m_bNeedsSimplify=!1;const s=new l;this.m_multiPoint.queryEnvelope(s);const n=s.getCenter(),i=n.clone();i.scale(this.m_bufferer.m_rpu),this.m_gnomonic=xe(this.m_bufferer.m_gcs,n),this.m_gnomonicCenterRad=i.clone(),this.m_minGnomonicRadius=k(this.m_bufferer.m_a,this.m_bufferer.m_eSquared,i,75/180*Math.PI)}next(){if(this.m_bNeedsSimplify=!1,++this.m_pointIndex===this.m_multiPoint.getPointCount())return null;const e=this.m_multiPoint.getXY(this.m_pointIndex);e.scale(this.m_bufferer.m_rpu),this.m_bRunningInGnomonic=this.isPointBufferInCurrentGnomonic(e),this.m_bRunningInGnomonic||(this.m_bRunningInGnomonic=this.tryUpdateGnomonic(e));const t=new O,s=this.m_bufferer.bufferPoint2D(e,this.m_bRunningInGnomonic,t);return this.m_bNeedsSimplify=s,t}isPointBufferInCurrentGnomonic(e){return null!==this.m_gnomonic&&pe(this.m_bufferer.m_a,this.m_bufferer.m_eSquared,e,this.m_bufferer.m_absDistance*this.m_bufferer.m_ellipticToGeodesicMaxRatio,this.m_gnomonicCenterRad,this.m_minGnomonicRadius)}tryUpdateGnomonic(e){const t=new K,s=new K,n=[0];return Pe(this.m_bufferer.m_a,this.m_bufferer.m_eSquared,this.m_bufferer.m_rpu,e,this.m_bufferer.m_absDistance*this.m_bufferer.m_ellipticToGeodesicMaxRatio,t,s,n)?(this.m_gnomonicCenterRad.setCoordsPoint2D(s),this.m_minGnomonicRadius=n[0],this.m_gnomonic=xe(this.m_bufferer.m_gcs,t),!0):(this.m_gnomonic=null,!1)}}class ve{getOperatorType(){return 10110}supportsCurves(){return!0}accelerateGeometry(e,t,s){return!1}canAccelerateGeometry(e){return!1}executeMany(e,t,s,n,i,r,o,m){if(o){const o=new Se(e,t,s,n,i,!1,r,m);return(new _).executeMany(o,t,m)}return new Se(e,t,s,n,i,!1,r,m)}execute(e,s,n,i,r,o,m){const a=new oe([e]),h=[i],c=this.executeMany(a,s,n,h,r,!1,o,m).next();return c||t("geodesic buffer null output"),c}}class Se extends e{m_inputGeoms;m_spatialReference;m_curveType;m_progressTracker;m_distances;m_convergenceOffset;m_currentUnionEnvelope2D=new l;m_bOutlineOnly;m_bUnion;m_index=-1;m_dindex=-1;constructor(e,t,i,r,o,m,a,h){super(),this.m_progressTracker=h,m&&s(""),t||n("");0===t.getCoordinateSystemType()&&n(""),this.m_inputGeoms=e,this.m_spatialReference=t,this.m_curveType=i,this.m_distances=r,this.m_convergenceOffset=o,this.m_bOutlineOnly=m,this.m_bUnion=a}next(){let e;for(;e=this.m_inputGeoms.next();)return i(e),this.m_index=this.m_inputGeoms.getGeometryID(),this.m_dindex+1<this.m_distances.length&&this.m_dindex++,this.geodesicBuffer(e,this.m_distances[this.m_dindex]);return null}getGeometryID(){return this.m_index}tock(){return!0}getRank(){return 1}geodesicBuffer(e,t){return me(e,this.m_spatialReference,this.m_curveType,t,this.m_convergenceOffset,this.m_progressTracker)}}export{ve as OperatorGeodesicBuffer};
|
|
2
|
+
import{G as e}from"./GeometryCursor.js";import{d as t,t as s,a as n,c as i,i as r,G as o,n as m,h as a,f as h,j as c,o as u}from"./Geometry.js";import{Envelope2D as l}from"./Envelope2D.js";import{z as _,a as f,M as d,N as g,O as p,Q as P,R as x,H as b,S as y,U as w,V as C,x as v,f as S,W as D,X as I,Y as G,Z as T,_ as M,$ as N,a0 as k,a1 as A,a2 as E,a3 as q,a4 as R,a5 as z}from"./SpatialReference.js";import{__addDisposableResource as X,__disposeResources as B}from"tslib";import{P as O,a as Y,E as j}from"./MultiPathImpl.js";import{f as F,c as W,P as U,e as J,h as H,j as V,s as L}from"./Envelope.js";import{T as Q}from"./Transformation2D.js";import{d as Z,m as $,P as K,S as ee,l as te,n as se}from"./Point2D.js";import{c as ne}from"./OperatorClip.js";import{c as ie}from"./GeometryCleaner-CIE8Wfmb.js";import{O as re}from"./OperatorDensify.js";import{S as oe}from"./SimpleGeometryCursor.js";function me(e,t,s,m,a,h){m<Number.MAX_VALUE&&m>-Number.MAX_VALUE||n("Geodesic_bufferer.buffer - bad distance"),i(e);const c=ie(e),u=c.getGeometryType();if(r(u)){const e=c.getPointCount(),n=8e6;if(Math.abs(m)>n&&(e>50||u!==o.enumMultiPoint&&4===s&&e>2)){let e=c;const i=m>0?1:-1,r=7e6;let o=m,u=1;do{u++,o=(Math.abs(o)-r)*i}while(Math.abs(o)>n);o=m;for(let n=0;n<u-1;n++)e=he(e,t,s,r*i,a,u,h),o=(Math.abs(o)-r)*i;return e=he(e,t,s,o,a,u,h),e}}return he(c,t,s,m,a,1,h)}class ae{m_sr=null;m_gcs=null;m_transform=null;m_progressTracker;m_a=0;m_eSquared=0;m_rpu=0;m_radTolerance=0;m_q90=0;m_gcs90=0;m_gcs180=0;m_gcs360=0;m_gcs60=0;m_ellipticToGeodesicMaxRatio=0;m_curveType=0;m_bShapePreserving=!1;m_distance=0;m_absDistance=0;m_convergenceOffset=0;m_cornerStep=0;m_segmentStep=0;constructor(e){this.m_progressTracker=e}bufferPolygon(e){const t=new O,s=new we(this,e,t);return this.processGnomonicBufferPiecesCursor(!0,s)}bufferPolyline(e){const t=new we(this,e,null);return this.processGnomonicBufferPiecesCursor(!0,t)}bufferMultiPoint(e){const t=new Ce(this,e);return this.processGnomonicBufferPiecesCursor(!1,t)}bufferPoint(e){const t=e.getXY();t.scale(this.m_rpu);let s=new O;if(this.bufferPoint2D(t,!1,s)){const e=J(null,s,!0);s=b(s,e,!0,!0,-1,this.m_progressTracker,0,!1)}return s=(new p).foldInto360RangeGeodetic(s,this.m_gcs,2),s}processGnomonicBufferPiecesCursor(e,t){const s=t;let n=s.getGnomonic();const i=y(w());let r=new C,o=(new _).executeMany(r,i,this.m_progressTracker,2);const m=Z(6,!1),a=$(l,6);this.initializeGrid(m,a);const h=[null,null,null,null,null,null],c=[null,null,null,null,null,null],u=[null,null,null,null,null,null];let f,d,g;for(;null!==(f=s.next());){if(d=s.getGnomonic(),d!==n){if(null!==n){let t=o.next();if(r=null,o=null,null!=t){const s=J(i,t,!0),r=F(s);t=n.unproject(t,r,this.m_progressTracker),this.putInGridCursors(e,t,i,!0,m,a,h,c,u)}}null!==d&&(r=new C,o=(new _).executeMany(r,i,this.m_progressTracker,2)),n=d}if(s.isRunningInGnomonic()){if(d.project(f),s.needsSimplify()){const e=J(null,f,!0);f=b(f,e,!0,!0,-1,this.m_progressTracker,0,!1)}r.tick(be(f)),o.tock()}else this.putInGridCursors(e,f,i,!0,m,a,h,c,u)}let P=!1;for(let l=0;l<6;l++)if(null!=u[l]){P=!0;break}if(P){let t=!1;const l=[null,null,null,null,null,null];if(e){const n=s.m_densified;if(s.m_densified=null,null!==n){const s=new Q;s.scale(1/this.m_rpu,1/this.m_rpu),n.applyTransformation(s),this.m_distance>0?this.putInGridCursors(e,n,i,!1,m,a,h,c,u):(this.processInGrid(e,n,!1,m,a,h,l),t=!0)}}const f=new C,d=(new _).executeMany(f,this.m_gcs,this.m_progressTracker,2);if(null!==o){let t=o.next();r=null,o=null;const s=J(i,t,!0),l=F(s);t=n.unproject(t,l,this.m_progressTracker),this.putInGridCursors(e,t,i,!0,m,a,h,c,u)}for(let e=0;e<6;e++)if(null!=u[e]){let s=u[e].next();u[e]=null,c[e]=null,t&&null!==l[e]&&(s=(new v).execute(l[e],s,i,this.m_progressTracker));const n=J(i,s,!0),r=F(n);s=h[e].unproject(s,r,this.m_progressTracker),s=(new S).execute(s,this.m_gcs,!0,this.m_progressTracker),f.tick(be(s)),d.tock()}g=d.next()}else{let t,m=!1;if(e){let e=s.m_densified;if(s.m_densified=null,null!==e){const s=new Q;s.scale(1/this.m_rpu,1/this.m_rpu),e.applyTransformation(s),d.project(e);const n=J(null,e,!0);e=b(e,n,!1,!0,-1,this.m_progressTracker,0,!1),this.m_distance>0?(r.tick(be(e)),o.tock()):(t=e,m=!0)}}let a=o.next();r=null,o=null,m&&(a=(new v).execute(t,a,i,this.m_progressTracker));const h=J(i,a,!0),c=F(h);g=n.unproject(a,c,this.m_progressTracker),g=(new S).execute(g,this.m_gcs,!0,this.m_progressTracker)}return g=(new p).foldInto360RangeGeodetic(g,this.m_gcs,2),g}putInGridCursors(e,t,s,n,i,r,o,m,a){const h=[null,null,null,null,null,null];this.processInGrid(e,t,n,i,r,o,h);for(let c=0;c<6;c++)null!==h[c]&&(null===m[c]&&(m[c]=new C,a[c]=(new _).executeMany(m[c],s,this.m_progressTracker,2)),m[c].tick(be(h[c])),a[c].tock())}processInGrid(e,t,s,n,i,r,o){const m=.01,a=this.insertGeodeticPointsAlongGrid(t,i,m);for(let h=0;h<6;h++){if(n[h])continue;const e=i[h].clone();e.inflateCoords(m,m);const c=H(t,e),u=W(null,c,!1).total();let l=ne(a,e,u,Number.NaN,this.m_progressTracker);if(null!==l&&!l.isEmpty()){if(l===a&&(l=l.clone()),null===r[h]){const e=new K;h<3?e.setCoords(0,1):e.setCoords(0,-1);const t=new K;t.setAdd(i[h].getCenter(),e),r[h]=xe(this.m_gcs,t)}r[h].project(l);const e=J(null,l,!0);l=b(l,e,s,!0,-1,this.m_progressTracker,0,!1),o[h]=l}}}insertGeodeticPointsAlongGrid(e,t,s){const n=l.construct(t[3].xmin,t[3].ymin,t[2].xmax,t[2].ymax),i=D(this.m_gcs,n,e,!0,this.m_progressTracker),r=new j,o=r.addGeometry(i);return I(r,o,this.m_gcs,0,2,!0,t[0].xmax+s),I(r,o,this.m_gcs,0,2,!0,t[1].xmax+s),I(r,o,this.m_gcs,0,2,!1,t[1].ymin+s),0!==s&&(I(r,o,this.m_gcs,0,2,!0,t[0].xmax-s),I(r,o,this.m_gcs,0,2,!0,t[1].xmax-s),I(r,o,this.m_gcs,0,2,!1,t[1].ymin-s)),r.getGeometry(o)}initializeGrid(e,t){for(let s=0;s<6;s++)e[s]=!1;t[0].setCoords({xmin:-this.m_gcs180,ymin:0,xmax:-this.m_gcs60,ymax:this.m_gcs90}),t[1].setCoords({xmin:-this.m_gcs60,ymin:0,xmax:this.m_gcs60,ymax:this.m_gcs90}),t[2].setCoords({xmin:this.m_gcs60,ymin:0,xmax:this.m_gcs180,ymax:this.m_gcs90}),t[3].setCoords({xmin:-this.m_gcs180,ymin:-this.m_gcs90,xmax:-this.m_gcs60,ymax:0}),t[4].setCoords({xmin:-this.m_gcs60,ymin:-this.m_gcs90,xmax:this.m_gcs60,ymax:0}),t[5].setCoords({xmin:this.m_gcs60,ymin:-this.m_gcs90,xmax:this.m_gcs180,ymax:0})}checkAndPrepSegmentForCrossingAzimuthsOrPoleWrap(e,t,s,n,i,r){const o=e[0],m=e.at(-1),a=o.y<m.y?o.y:m.y,h=o.y>m.y?o.y:m.y,c=d.q(this.m_a,this.m_eSquared,a),u=d.q(this.m_a,this.m_eSquared,h);if(this.m_q90-(c+t+this.m_absDistance)>.001&&this.m_q90+(u-t-this.m_absDistance)>.001)return!1;const l=s-te,_=n+te,f=l-Math.PI,g=l+Math.PI,p=_+Math.PI,P=[Number.NaN],x=[Number.NaN],b=[Number.NaN],y=[Number.NaN];let w=!1;if(le(this.m_a,this.m_eSquared,this.m_rpu,this.m_absDistance,o,l,f,m,_,P,x),le(this.m_a,this.m_eSquared,this.m_rpu,this.m_absDistance,m,p,_,o,f,b,y),(_<P[0]&&P[0]<p||_<x[0]&&x[0]<p)&&(w=!0),w||(f<b[0]&&b[0]<l||f<y[0]&&y[0]<l)&&(w=!0),!w&&i)return!1;const C=[];for(let d=e.length-1;d>=0;d--)C.push(e[d]);r.setEmpty(),r.addPathPoint2D(null,0,!0);let v=0;v=ce(this.m_a,this.m_eSquared,this.m_rpu,this.m_absDistance,this.m_curveType,e,l,_,i,v,r),v=ue(this.m_a,this.m_eSquared,this.m_rpu,this.m_absDistance,m,_,p,this.m_cornerStep,i,v,r,P[0],x[0]),v=ce(this.m_a,this.m_eSquared,this.m_rpu,this.m_absDistance,this.m_curveType,C,p,g,i,v,r),v=ue(this.m_a,this.m_eSquared,this.m_rpu,this.m_absDistance,o,f,l,this.m_cornerStep,i,v,r,b[0],y[0]);let S=!1;return i||(S=this.checkAndPrepForPole(r)),w||S}bufferPoint2D(e,t,s){s.setEmpty(),s.addPathPoint2D(null,0,!0);const n=0;ue(this.m_a,this.m_eSquared,this.m_rpu,this.m_absDistance,e,-this.m_cornerStep,2*Math.PI,this.m_cornerStep,t,n,s);let i=!1;return t||(i=this.checkAndPrepForPole(s)),i}checkAndPrepForPole(e){const t=this.checkAndPrepForPoleTouch(e),s=this.checkAndPrepForPoleWrap(e);return t||s}checkAndPrepForPoleTouch(e){const t=new l;return e.queryEnvelope(t),!(!G(t.ymax,this.m_gcs90)&&!G(t.ymin,-this.m_gcs90))&&(this.prepPoleTouch(e),!0)}checkAndPrepForPoleWrap(e){const t=e.getXY(0),s=e.getXY(e.getPointCount()-1);return Math.abs(t.x-s.x)>this.m_gcs180?(this.prepSinglePoleWrap(e),!0):this.checkAndPrepForDoublePoleWrap(e)}checkAndPrepForDoublePoleWrap(e){return e.calculateArea2D()<0&&(this.prepDoublePoleWrap(e),!0)}prepPoleTouch(e){const t=new O;t.insertPath2D(-1,null,0,0,!0);const s=e.getPathStart(0),n=e.getPathEnd(0),i=n-s;let r=-1;for(r=s;r<n;r++){const t=e.getXY(r),s=G(t.y,this.m_gcs90),n=G(t.y,-this.m_gcs90);if(!s&&!n)break}let o=r,m=!1,a=Number.NaN;do{const n=e.getXY(o),r=G(n.y,this.m_gcs90),h=G(n.y,-this.m_gcs90),c=s+(o+1-s)%i;if(r||h){let s=K.construct(a,n.y);t.insertPoint2D(0,-1,s);const i=e.getXY(c),r=G(i.y,this.m_gcs90),o=G(i.y,-this.m_gcs90);r||o||(s=K.construct(i.x,n.y),m?t.setXY(t.getPointCount()-1,s):t.insertPoint2D(0,-1,s)),m=!0}else t.insertPoint2D(0,-1,n),a=n.x,m=!1;o=c}while(o!==r);e.setEmpty(),e.add(t,!1)}prepSinglePoleWrap(e){const t=new O,s=new O,n=new Q,i=e.getXY(e.getPathStart(0)),r=e.getXY(e.getPathEnd(0)-1),o=this.m_gcs360,m=this.m_gcs180,a=new l;a.setCoords({xmin:-this.m_gcs180,ymin:-this.m_gcs90,xmax:this.m_gcs180,ymax:this.m_gcs90});const h=new l;e.queryEnvelope(h);const c=Math.ceil(h.width()/o);let u,_;i.x>r.x?(u=-o,_=this.m_gcs90):(u=o,_=-this.m_gcs90),n.setShiftCoords(u,0),t.addPath(e,0,!0),s.add(t,!1);const f=new U;for(let l=0;l<c;l++)s.applyTransformation(n),s.getPointByVal(0,f),t.lineToPoint(f),t.addSegmentsFromPath(s,0,0,s.getSegmentCount()-1,!1);const d=t.getXY(0),g=t.getXY(t.getPointCount()-1);d.y=_,g.y=_,t.lineTo(g);const p=new K;for(p.setCoordsPoint2D(g),p.x-=.5*u;Math.abs(p.x-d.x)>m;)t.lineTo(p),p.x-=.5*u;t.lineTo(d);const P=a.getCenterX(),x=new l;t.queryEnvelope(x);let b=0;const y=x.getCenter().x;y-P>m?b=-Math.ceil((y-P-m)/o):P-y>m&&(b=Math.ceil((P-y-m)/o)),0!==b&&(n.setShiftCoords(b*o,0),t.applyTransformation(n));const w=new j,C=w.addGeometry(t);I(w,C,this.m_gcs,0,2,!0,a.xmin),I(w,C,this.m_gcs,0,2,!0,a.xmax);const v=w.getGeometry(C),S=H(v,a);S.inflateCoords(0,1);const D=W(null,S,!0).total(),G=ne(v,a,D,Number.NaN,this.m_progressTracker);e.setEmpty(),e.add(G,!1)}prepDoublePoleWrap(e){const t=this.m_gcs360,s=this.m_gcs180,n=new l;n.setCoords({xmin:-this.m_gcs180,ymin:-this.m_gcs90,xmax:this.m_gcs180,ymax:this.m_gcs90});const i=n.getCenter().x,r=new l;e.queryPathEnvelope(0,r);let o,m=0,a=r.getCenter().x;if(a-i>s?m=-Math.ceil((a-i-s)/t):i-a>s&&(m=Math.ceil((i-a-s)/t)),0!==m){const s=new Q;s.setShiftCoords(m*t,0),e.getImpl().applyTransformationToPath(s,0),e.queryPathEnvelope(0,r),a=r.getCenter().x}const h=new l;n.containsExclusiveEnvelope(r)?(o=!1,h.setCoords({env2D:n})):(o=!0,h.setCoords({env2D:n}),h.xmin-=t,h.xmax+=t);let c=e.createInstance();c.addPathPoint2D(null,0,!0);const u=new K;if(u.setCoords(h.xmin,h.ymin),c.insertPoint2D(0,-1,u),u.setCoords(h.xmin,h.ymax),c.insertPoint2D(0,-1,u),u.setCoords(.5*(h.xmin+h.xmax),h.ymax),c.insertPoint2D(0,-1,u),u.setCoords(h.xmax,h.ymax),c.insertPoint2D(0,-1,u),u.setCoords(h.xmax,h.ymin),c.insertPoint2D(0,-1,u),u.setCoords(.5*(h.xmin+h.xmax),h.ymin),c.insertPoint2D(0,-1,u),o){c.addPath(e,0,!0);const s=new Q;a<i?s.setShiftCoords(t,0):s.setShiftCoords(-t,0),e.getImpl().applyTransformationToPath(s,0),c.addPath(e,0,!0);const r=new j,o=r.addGeometry(c);I(r,o,this.m_gcs,0,2,!0,n.xmin),I(r,o,this.m_gcs,0,2,!0,n.xmax),c=r.getGeometry(o);const m=H(c,n);m.inflateCoords(0,1);const h=W(null,m,!0).total();c=ne(c,n,h,Number.NaN,this.m_progressTracker)}else c.addPath(e,0,!0);e.setEmpty(),e.add(c,!1)}setMinCornerStep(){const e={stack:[],error:void 0,hasError:!1};try{let s=Math.min(Math.PI*this.m_a-this.m_absDistance,this.m_absDistance);s=Math.min(s,.125*this.m_a*Math.PI);const n=new K;n.setCoords(0,10*this.m_rpu);const i=0;let r=45*this.m_rpu;const o=X(e,new ee(new T,new T),!1),m=X(e,new ee(new T,new T),!1),a=X(e,new ee(new T,new T),!1),h=X(e,new ee(new T,new T),!1),c=new K,u=new K,l=new K,_=new K;for(M.geodesicCoordinate(this.m_a,this.m_eSquared,n.x,n.y,s,i,o.at(0),o.at(1)),c.setCoords(o.at(0).val,o.at(1).val),M.geodesicCoordinate(this.m_a,this.m_eSquared,n.x,n.y,s,r,m.at(0),m.at(1)),u.setCoords(m.at(0).val,m.at(1).val);;){const e={stack:[],error:void 0,hasError:!1};try{const t=.5*(i+r);M.geodesicCoordinate(this.m_a,this.m_eSquared,n.x,n.y,s,t,a.at(0),a.at(1)),l.setCoords(a.at(0).val,a.at(1).val);const o=X(e,new T,!1),f=X(e,new T,!1);M.geodeticDistance(this.m_a,this.m_eSquared,c.x,c.y,u.x,u.y,o,f,null,2),M.geodeticCoordinate(this.m_a,this.m_eSquared,c.x,c.y,.5*o.val,f.val,h.at(0),h.at(1),2),_.setCoords(h.at(0).val,h.at(1).val);const d=X(e,new T,!1);M.geodeticDistance(this.m_a,this.m_eSquared,l.x,l.y,_.x,_.y,d,null,null,2);if(d.val<=this.m_convergenceOffset)break;r*=.9,M.geodesicCoordinate(this.m_a,this.m_eSquared,n.x,n.y,s,r,m.at(0),m.at(1)),u.setCoords(m.at(0).val,m.at(1).val)}catch(t){e.error=t,e.hasError=!0}finally{B(e)}}const f=r-i,d=2*Math.PI/Math.ceil(2*Math.PI/f);this.m_cornerStep=d}catch(s){e.error=s,e.hasError=!0}finally{B(e)}}setMinSegmentStep(){const e={stack:[],error:void 0,hasError:!1};try{let n=Math.min(Math.PI*this.m_a-this.m_absDistance,this.m_absDistance);n=Math.min(n,.125*this.m_a*Math.PI);const i=new K,r=new K;i.setCoords(0,10*this.m_rpu),r.setCoords(10*this.m_rpu,10*this.m_rpu);const o=X(e,new T,!1),m=X(e,new T,!1),a=X(e,new T,!1);M.geodeticDistance(this.m_a,this.m_eSquared,i.x,i.y,r.x,r.y,a,o,m,this.m_curveType);const h=X(e,new ee(new T,new T),!1),c=X(e,new ee(new T,new T),!1),u=new K,l=X(e,new T,!1),_=X(e,new ee(new T,new T),!1),f=X(e,new ee(new T,new T),!1),d=X(e,new ee(new T,new T),!1),g=X(e,new ee(new T,new T),!1),p=new K,P=new K,x=new K,b=new K,y=0;let w=1;const C=o.val,v=m.val,S=C-.5*Math.PI,D=v+.5*Math.PI,I=a.val;for(M.geodesicCoordinate(this.m_a,this.m_eSquared,i.x,i.y,n,S,_.at(0),_.at(1)),p.setCoords(_.at(0).val,_.at(1).val),M.geodesicCoordinate(this.m_a,this.m_eSquared,r.x,r.y,n,D,f.at(0),f.at(1)),P.setCoords(f.at(0).val,f.at(1).val);;){const e={stack:[],error:void 0,hasError:!1};try{const s=.5*(y+w);M.geodeticCoordinate(this.m_a,this.m_eSquared,i.x,i.y,s*I,C,h.at(0),h.at(1),this.m_curveType),u.setCoords(h.at(0).val,h.at(1).val),M.geodeticDistance(this.m_a,this.m_eSquared,i.x,i.y,u.x,u.y,null,null,l,this.m_curveType);const o=l.val+.5*Math.PI;M.geodesicCoordinate(this.m_a,this.m_eSquared,u.x,u.y,n,o,d.at(0),d.at(1)),x.setCoords(d.at(0).val,d.at(1).val);const m=X(e,new T,!1),a=X(e,new T,!1);M.geodeticDistance(this.m_a,this.m_eSquared,p.x,p.y,P.x,P.y,m,a,null,2),M.geodeticCoordinate(this.m_a,this.m_eSquared,p.x,p.y,.5*m.val,a.val,g.at(0),g.at(1),2),b.setCoords(g.at(0).val,g.at(1).val);const _=X(e,new T,!1);M.geodeticDistance(this.m_a,this.m_eSquared,x.x,x.y,b.x,b.y,_,null,null,2);if(_.val<=this.m_convergenceOffset)break;{const e={stack:[],error:void 0,hasError:!1};try{w*=.9,M.geodeticCoordinate(this.m_a,this.m_eSquared,i.x,i.y,w*I,C,c.at(0),c.at(1),this.m_curveType),r.setCoords(c.at(0).val,c.at(1).val);const t=X(e,new T,!1);M.geodeticDistance(this.m_a,this.m_eSquared,i.x,i.y,r.x,r.y,null,null,t,this.m_curveType);const s=t.val+.5*Math.PI;M.geodesicCoordinate(this.m_a,this.m_eSquared,r.x,r.y,n,s,f.at(0),f.at(1)),P.setCoords(f.at(0).val,f.at(1).val)}catch(t){e.error=t,e.hasError=!0}finally{B(e)}}}catch(s){e.error=s,e.hasError=!0}finally{B(e)}}let G=w*I;G>1e5&&(G=1e5),this.m_segmentStep=G}catch(n){e.error=n,e.hasError=!0}finally{B(e)}}setConvergenceOffset(){let e;e=this.m_absDistance>5e4?100:this.m_absDistance>1e4?10:1,this.m_absDistance/e<500&&(e=this.m_absDistance/500),e<.01&&(e=.01),this.m_convergenceOffset=e}}function he(e,t,s,n,i,r,_){if(e.isEmpty())return new O({vd:e.getDescription()});let b=e;if(m(b)){const e=10*t.getTolerance(0);b=(new re).execute(b,0,e,0,_,12e3)}const y=new ae(_);y.m_sr=t,y.m_gcs=t.getGCS(),y.m_transform=f(t,y.m_gcs,null);const w=N();y.m_gcs.querySpheroidData(w);const C=new l;b.queryEnvelope(C),y.m_a=w.majorSemiAxis,y.m_eSquared=w.e2,y.m_rpu=y.m_gcs.getUnit().getUnitToBaseFactor(),y.m_gcs90=.5*Math.PI/y.m_rpu,y.m_gcs180=Math.PI/y.m_rpu,y.m_gcs360=2*Math.PI/y.m_rpu,y.m_gcs60=y.m_gcs360/6,y.m_q90=d.q90(y.m_a,y.m_eSquared),y.m_ellipticToGeodesicMaxRatio=.5*y.m_a*Math.PI/y.m_q90;const v=y.m_gcs.getTolerance(0);y.m_radTolerance=v*y.m_rpu,4===s?(y.m_curveType=2,y.m_bShapePreserving=!0):(y.m_curveType=s,y.m_bShapePreserving=!1),y.m_distance=n,y.m_absDistance=Math.abs(n),Number.isNaN(i)||i<=0?y.setConvergenceOffset():y.m_convergenceOffset=Math.max(i,.001),y.m_convergenceOffset/=r;let S,D=b.getGeometryType();if(a(D)){const e=new Y({vd:b.getDescription()});e.addSegment(b,!0),S=e,D=o.enumPolyline}else if(D===o.enumEnvelope){const e=b,t=new l;e.queryEnvelope(t);const s=F(W(y.m_sr,C,!0));if(t.minDimension()<=s)if(0===t.maxDimension()){const t=new U({vd:b.getDescription()});e.getCenter(t),S=t,D=o.enumPoint}else{const t=new Y({vd:b.getDescription()});t.addEnvelope(e,!1),S=t,D=o.enumPolyline}else{const t=new O({vd:b.getDescription()});t.addEnvelope(e,!1),S=t,D=o.enumPolygon}}else S=b;if(y.setMinCornerStep(),h(D)||y.setMinSegmentStep(),y.m_absDistance<=.5*y.m_convergenceOffset)return D!==o.enumPolygon?new O({vd:S.getDescription()}):y.m_bShapePreserving?S:g(S,y.m_sr,y.m_curveType,y.m_segmentStep,-1,_);if(y.m_distance<0&&D!==o.enumPolygon)return new O({vd:S.getDescription()});if(y.m_bShapePreserving&&c(D)){const e=g(S,t,4,Number.NaN,y.m_convergenceOffset,_);S=(new p).execute(e,y.m_transform,_)}else S=(new p).execute(S,y.m_transform,_);if(S=P(S,y.m_gcs),S.isEmpty())return new O({vd:S.getDescription()});!y.m_bShapePreserving&&c(D)&&(S=x(y.m_rpu,S)),S=fe(S,y.m_gcs);let I=new O;switch(D){case o.enumPolygon:I=y.bufferPolygon(S);break;case o.enumPolyline:I=y.bufferPolyline(S);break;case o.enumMultiPoint:I=y.bufferMultiPoint(S);break;case o.enumPoint:I=y.bufferPoint(S);break;default:u("")}const G=(new p).execute(I,y.m_transform.getInverse(),_);return G.mergeVertexDescription(S.getDescription()),G}function ce(e,t,s,n,i,r,o,m,a,h,c){const u={stack:[],error:void 0,hasError:!1};try{const l=new K;l.setNAN(),a||c.getPointCount()>0&&(l.setCoordsPoint2D(c.getXY(c.getPointCount()-1)),l.scale(s));const _=X(u,new T,!1),f=X(u,new ee(new T,new T),!1),d=new K,g=new K,p=r.at(-1),P=1/s;for(let s=0;s<r.length;s++){const u=r[s];let x;0===s?x=o:s===r.length-1?x=m:(M.geodeticDistance(e,t,p.x,p.y,u.x,u.y,null,null,_,i),x=_.val-.5*Math.PI),M.geodesicCoordinate(e,t,u.x,u.y,n,x,f.at(0),f.at(1)),a?g.setCoords(f.at(0).val,f.at(1).val):(d.setCoords(f.at(0).val,f.at(1).val),h=_e(u.x,d.x,l.x,h),g.setCoords(h+d.x,d.y),l.setCoordsPoint2D(g)),g.scale(P),c.insertPoint2D(0,-1,g)}return h}catch(l){u.error=l,u.hasError=!0}finally{B(u)}}function ue(e,t,s,n,i,r,o,m,a,h,c,u=Number.NaN,l=Number.NaN){const _={stack:[],error:void 0,hasError:!1};try{if(o-r<m)return h;const f=X(_,new ee(new T,new T),!1),d=new K,g=new K,p=new K;g.setNAN(),a||c.getPointCount()>0&&(g.setCoordsPoint2D(c.getXY(c.getPointCount()-1)),g.scale(s));let P=Math.ceil(r/m),x=P++*m;x===r&&(x=P++*m);let b=r;const y=1/s;for(;x<o+m&&(b<u&&u<x?(x=u,P--):b<l&&l<x&&(x=l,P--),!(x>=o));)M.geodesicCoordinate(e,t,i.x,i.y,n,x,f.at(0),f.at(1)),a?p.setCoords(f.at(0).val,f.at(1).val):(d.setCoords(f.at(0).val,f.at(1).val),h=_e(i.x,d.x,g.x,h),p.setCoords(h+d.x,d.y),g.setCoordsPoint2D(p)),p.scale(y),c.insertPoint2D(0,-1,p),b=x,x=P++*m;return h}catch(f){_.error=f,_.hasError=!0}finally{B(_)}}function le(e,t,s,n,i,r,o,m,a,h,c){const u={stack:[],error:void 0,hasError:!1};try{const s=new K,l=new K,_=X(u,new ee(new T,new T),!1);M.geodesicCoordinate(e,t,i.x,i.y,n,r,_.at(0),_.at(1)),s.setCoords(_.at(0).val,_.at(1).val),M.geodesicCoordinate(e,t,i.x,i.y,n,o,_.at(0),_.at(1)),l.setCoords(_.at(0).val,_.at(1).val);const f=X(u,new T,!1);for(M.geodeticDistance(e,t,m.x,m.y,s.x,s.y,null,f,null,0),h[0]=f.val,M.geodeticDistance(e,t,m.x,m.y,l.x,l.y,null,f,null,0),c[0]=f.val;h[0]<=c[0];)h[0]+=se;for(;h[0]>c[0];)h[0]-=se;for(;h[0]>=a;)h[0]-=se,c[0]-=se;for(;h[0]<a;)h[0]+=se,c[0]+=se}catch(l){u.error=l,u.hasError=!0}finally{B(u)}}function _e(e,t,s,n){if(Number.isNaN(s)){for(;n+t-e>Math.PI;)n-=se;for(;e-(n+t)>Math.PI;)n+=se;return n}return n+t-s>Math.PI?n-=se:s-(n+t)>Math.PI&&(n+=se),n}function fe(e,t){const s=e.getGeometryType();let n;if(n=c(s)?e.getPathCount():s===o.enumMultiPoint?e.getPointCount():1,1===n)return e;const i=[],r=[];for(let o=0;o<n;o++){i.push(o);const n=new K;if(c(s)){const t=new l;e.queryPathEnvelope(o,t),n.assign(t.getCenter())}else n.assign(e.getXY(o));const m=t.toGeohash(n);r.push(m)}i.sort((e,t)=>r[e]<r[t]?-1:r[e]>r[t]?1:0);const m=e.createInstance();for(let o=0;o<n;o++){const t=i[o];c(s)?m.addPath(e,t,!0):m.addPoints(e,t,t+1)}return m}function de(e,t,s,n,i,r){const o={stack:[],error:void 0,hasError:!1};try{if(n>=r)return!1;const m=s[0],a=s.at(-1),h=X(o,new T,!1),c=X(o,new T,!1),u=X(o,new T,!1);M.greatEllipticDistance(e,t,i.x,i.y,m.x,m.y,h,null,null),M.greatEllipticDistance(e,t,i.x,i.y,a.x,a.y,c,null,null),M.greatEllipticDistance(e,t,m.x,m.y,a.x,a.y,u,null,null);let l=Math.min(h.val,c.val)+u.val,_=l+n;if(_<r)return!0;const f=X(o,new T,!1);l=Math.max(h.val,c.val);for(let n=1;n<s.length-1;n++){const r=s[n];M.greatEllipticDistance(e,t,i.x,i.y,r.x,r.y,f,null,null),f.val>l&&(l=f.val)}return _=l+n,_<r}catch(m){o.error=m,o.hasError=!0}finally{B(o)}}function ge(e,t,s,n,i,r,o,m){let a;if(n.length%2==0){const e=n.length>>1,t=n[e],s=n[e-1];a=K.lerp(t,s,.5)}else{a=n[n.length-1>>1].clone()}const h=a.clone(),c=k(e,t,h,75/180*Math.PI);return!!de(e,t,n,i,h,c)&&(null!==r&&(r.setCoordsPoint2D(a),r.scale(1/s)),null!==o&&o.setCoordsPoint2D(h),null!==m&&(m[0]=c),!0)}function pe(e,t,s,n,i,r){const o={stack:[],error:void 0,hasError:!1};try{if(n>=r)return!1;const m=X(o,new T,!1);M.greatEllipticDistance(e,t,i.x,i.y,s.x,s.y,m,null,null);return m.val+n<r}catch(m){o.error=m,o.hasError=!0}finally{B(o)}}function Pe(e,t,s,n,i,r,o,m){const a=k(e,t,n,75/180*Math.PI);return!!pe(e,t,n,i,n,a)&&(null!==r&&(r.setCoordsPoint2D(n),r.scale(1/s)),null!==o&&o.setCoordsPoint2D(n),null!==m&&(m[0]=a),!0)}function xe(e,t){return new z(e,t)}function be(e){return V(e,0)||L(e,0),e}class ye{m_bRunningInGnomonic=!1;m_bNeedsSimplify=!1;m_gnomonic=null;m_gnomonicCenterRad=new K;m_minGnomonicRadius=Number.NaN;m_progressTracker;constructor(e){this.m_progressTracker=e}isRunningInGnomonic(){return this.m_bRunningInGnomonic}needsSimplify(){return this.m_bNeedsSimplify}getGnomonic(){return this.m_gnomonic}}class we extends ye{m_bufferer;m_multiPath;m_segIter=null;m_bNextSegmentCannotJoin=!1;m_currentDensifiedDelta=[0];m_currentBufferedDelta=0;m_lastAzimuth=0;m_startAzimuth=[0];m_endAzimuth=[0];m_numWinds=0;m_debugCounter=0;m_bufferHelper=new O;m_densifiedPoints=[];m_densified;constructor(e,t,s){super(e.m_progressTracker),this.m_bufferer=e,this.m_multiPath=t,this.m_densified=s,this.m_bNeedsSimplify=!0;const n=new l;this.m_multiPath.queryEnvelope(n);const i=n.getCenter(),r=i.clone();r.scale(this.m_bufferer.m_rpu),this.m_gnomonic=xe(this.m_bufferer.m_gcs,i),this.m_gnomonicCenterRad=r.clone(),this.m_minGnomonicRadius=k(this.m_bufferer.m_a,this.m_bufferer.m_eSquared,r,75/180*Math.PI)}next(){let e;if(this.m_bNextSegmentCannotJoin)return this.m_bNextSegmentCannotJoin=!1,this.m_segIter.nextSegment(),e=this.m_bufferHelper.clone(),e;if(null===this.m_segIter){if(this.m_segIter=this.m_multiPath.getImpl().querySegmentIterator(),!this.m_segIter.nextPath())return null;null!==this.m_densified&&this.m_densified.addPathPoint2D(null,0,!0)}if(!this.m_segIter.hasNextSegment()){if(!this.m_segIter.nextPath())return null;null!=this.m_densified&&this.m_densified.addPathPoint2D(null,0,!0)}let t=null;this.m_currentBufferedDelta=0,this.m_currentDensifiedDelta=[0],this.m_numWinds=0,this.m_lastAzimuth=Number.NaN,this.m_bNextSegmentCannotJoin=!1,this.m_densifiedPoints.length=0;const s=16;let n=0;const i=new K,r=new K;for(;this.m_segIter.hasNextSegment()&&this.m_numWinds<s;){const e=this.m_segIter.nextSegment();if(i.setCoordsPoint2D(e.getStartXY()),r.setCoordsPoint2D(e.getEndXY()),i.scale(this.m_bufferer.m_rpu),r.scale(this.m_bufferer.m_rpu),A(i,r))i.x=r.x;else if(E(i,r))r.x=i.x;else{let e=-1,t=-1;const s=this.m_segIter.getPathIndex(),n=this.m_multiPath.getPathStart(s),o=this.m_multiPath.getPathEnd(s);if(e=this.m_segIter.getStartPointIndex()-1,t=this.m_segIter.getEndPointIndex()+1,e<n&&(e=this.m_multiPath.isClosedPath(s)?o-1:-1),t>o-1&&(t=this.m_multiPath.isClosedPath(s)?n:-1),-1!==e){const t=this.m_multiPath.getXY(e);t.scale(this.m_bufferer.m_rpu),E(t,i)&&(i.x=t.x)}if(-1!==t){const e=this.m_multiPath.getXY(t);e.scale(this.m_bufferer.m_rpu),A(r,e)&&(r.x=e.x)}}this.m_densifiedPoints.length=0;const s=q(this.m_bufferer.m_a,this.m_bufferer.m_eSquared,this.m_bufferer.m_curveType,i,r,this.m_bufferer.m_segmentStep,Number.NaN,this.m_bufferer.m_radTolerance,this.m_startAzimuth,this.m_endAzimuth,this.m_densifiedPoints,this.m_currentDensifiedDelta);if(0===n)this.m_bRunningInGnomonic=this.isSegmentBufferInCurrentGnomonic(this.m_densifiedPoints),this.m_bRunningInGnomonic||(this.m_bRunningInGnomonic=this.tryUpdateGnomonic(this.m_densifiedPoints));else if(this.m_bRunningInGnomonic){if(!this.isSegmentBufferInCurrentGnomonic(this.m_densifiedPoints)){this.m_segIter.previousSegment(),this.m_segIter.previousSegment(),this.m_segIter.nextSegment();break}}else{if(ge(this.m_bufferer.m_a,this.m_bufferer.m_eSquared,this.m_bufferer.m_rpu,this.m_densifiedPoints,this.m_bufferer.m_absDistance*this.m_bufferer.m_ellipticToGeodesicMaxRatio,null,null,null)){this.m_segIter.previousSegment(),this.m_segIter.previousSegment(),this.m_segIter.nextSegment();break}}if(0===s||R(i,r)?(this.m_bufferHelper.setEmpty(),this.m_bufferer.bufferPoint2D(i,this.m_bRunningInGnomonic,this.m_bufferHelper),this.m_bNextSegmentCannotJoin=!0):(this.m_bufferHelper.setEmpty(),this.m_bNextSegmentCannotJoin=this.checkAndPrepSegmentForCrossingAzimuthsOrPoleWrap(s,this.m_bufferHelper)),this.m_bNextSegmentCannotJoin){this.m_segIter.previousSegment(),this.m_segIter.hasPreviousSegment()?(this.m_segIter.previousSegment(),this.m_segIter.nextSegment()):this.m_segIter.resetToFirstSegment(),null!=this.m_densified&&this.m_densified.insertPointsFromPoints(this.m_densified.getPathCount()-1,-1,this.m_densifiedPoints,0,this.m_densifiedPoints.length-1,!0);break}null!=this.m_densified&&this.m_densified.insertPointsFromPoints(this.m_densified.getPathCount()-1,-1,this.m_densifiedPoints,0,this.m_densifiedPoints.length-1,!0),null===t&&(t=new O,t.addPathPoint2D(null,0,!0)),this.addJoinAndBufferLeftSide(t),n++}if(this.m_currentDensifiedDelta=[0],n>0){const e=this.m_segIter.getStartPointIndex(),s=this.m_segIter.getPathIndex();for(;n>0;){if(this.m_segIter.previousSegment(),i.setCoordsPoint2D(this.m_multiPath.getXY(this.m_segIter.getStartPointIndex())),r.setCoordsPoint2D(this.m_multiPath.getXY(this.m_segIter.getEndPointIndex())),i.scale(this.m_bufferer.m_rpu),r.scale(this.m_bufferer.m_rpu),this.m_bRunningInGnomonic)if(A(i,r))i.x=r.x;else if(E(i,r))r.x=i.x;else{let e=-1,t=-1;const s=this.m_segIter.getPathIndex(),n=this.m_multiPath.getPathStart(s),o=this.m_multiPath.getPathEnd(s);if(e=this.m_segIter.getStartPointIndex()-1,t=this.m_segIter.getEndPointIndex()+1,e<n&&(e=this.m_multiPath.isClosedPath(s)?o-1:-1),t>o-1&&(t=this.m_multiPath.isClosedPath(s)?n:-1),-1!==e){const t=this.m_multiPath.getXY(e);t.scale(this.m_bufferer.m_rpu),E(t,i)&&(i.x=t.x)}if(-1!==t){const e=this.m_multiPath.getXY(t);e.scale(this.m_bufferer.m_rpu),A(r,e)&&(r.x=e.x)}}this.m_densifiedPoints.length=0,q(this.m_bufferer.m_a,this.m_bufferer.m_eSquared,this.m_bufferer.m_curveType,r,i,this.m_bufferer.m_segmentStep,Number.NaN,this.m_bufferer.m_radTolerance,this.m_startAzimuth,this.m_endAzimuth,this.m_densifiedPoints,this.m_currentDensifiedDelta),this.addJoinAndBufferLeftSide(t),n--}return i.setCoordsPoint2D(this.m_multiPath.getXY(this.m_segIter.getStartPointIndex())),i.scale(this.m_bufferer.m_rpu),this.m_currentBufferedDelta=ue(this.m_bufferer.m_a,this.m_bufferer.m_eSquared,this.m_bufferer.m_rpu,this.m_bufferer.m_absDistance,i,this.m_lastAzimuth+.5*Math.PI,this.m_lastAzimuth+1.5*Math.PI,this.m_bufferer.m_cornerStep,this.m_bRunningInGnomonic,this.m_currentBufferedDelta,t),this.m_segIter.resetToVertex(e,s),this.m_segIter.nextSegment(),t}return this.m_bNextSegmentCannotJoin=!1,this.m_segIter.nextSegment(),e=this.m_bufferHelper.clone(),e}isSegmentBufferInCurrentGnomonic(e){return null!==this.m_gnomonic&&de(this.m_bufferer.m_a,this.m_bufferer.m_eSquared,e,this.m_bufferer.m_absDistance*this.m_bufferer.m_ellipticToGeodesicMaxRatio,this.m_gnomonicCenterRad,this.m_minGnomonicRadius)}tryUpdateGnomonic(e){const t=new K,s=new K,n=[0];return ge(this.m_bufferer.m_a,this.m_bufferer.m_eSquared,this.m_bufferer.m_rpu,e,this.m_bufferer.m_absDistance*this.m_bufferer.m_ellipticToGeodesicMaxRatio,t,s,n)?(this.m_gnomonicCenterRad.setCoordsPoint2D(s),this.m_minGnomonicRadius=n[0],this.m_gnomonic=xe(this.m_bufferer.m_gcs,t),!0):(this.m_gnomonic=null,!1)}checkAndPrepSegmentForCrossingAzimuthsOrPoleWrap(e,t){return this.m_bufferer.checkAndPrepSegmentForCrossingAzimuthsOrPoleWrap(this.m_densifiedPoints,e,this.m_startAzimuth[0],this.m_endAzimuth[0],this.m_bRunningInGnomonic,t)}addJoinAndBufferLeftSide(e){const t=this.m_densifiedPoints[0];let s=Number.NaN,n=this.m_startAzimuth[0]-te;const i=this.m_endAzimuth[0]+te;let r=!1;if(!Number.isNaN(this.m_lastAzimuth)){this.m_lastAzimuth>=this.m_startAzimuth[0]?(s=this.m_lastAzimuth+te,n=s+Math.PI-(this.m_lastAzimuth-this.m_startAzimuth[0])):(s=this.m_lastAzimuth+te,n=s+Math.PI-(se-(this.m_startAzimuth[0]-this.m_lastAzimuth))),r=!(this.m_lastAzimuth>=this.m_startAzimuth[0]&&this.m_lastAzimuth-this.m_startAzimuth[0]<=Math.PI)&&!(this.m_lastAzimuth<this.m_startAzimuth[0]&&this.m_startAzimuth[0]-this.m_lastAzimuth>=Math.PI);let i=!1;if(Math.abs(n-s)<=.5*this.m_bufferer.m_cornerStep&&(r||(i=!0)),i){if(e.removePointFromPath(0,e.getPointCount()-1),!this.m_bRunningInGnomonic){const t=new K;t.setCoordsPoint2D(e.getXY(e.getPointCount()-1)),t.scale(this.m_bufferer.m_rpu),t.x-this.m_currentBufferedDelta<-Math.PI?this.m_currentBufferedDelta-=se:t.x-this.m_currentBufferedDelta>Math.PI&&(this.m_currentBufferedDelta+=se)}n=.5*(n+s)}else if(r){const s=new K;s.setCoordsPoint2D(t),s.scale(1/this.m_bufferer.m_rpu),e.insertPoint2D(0,-1,s)}else ue(this.m_bufferer.m_a,this.m_bufferer.m_eSquared,this.m_bufferer.m_rpu,this.m_bufferer.m_absDistance,this.m_densifiedPoints[0],s,n,this.m_bufferer.m_cornerStep,this.m_bRunningInGnomonic,this.m_currentBufferedDelta,e)}this.m_startAzimuth[0]!==this.m_lastAzimuth&&this.m_numWinds++,ce(this.m_bufferer.m_a,this.m_bufferer.m_eSquared,this.m_bufferer.m_rpu,this.m_bufferer.m_absDistance,this.m_bufferer.m_curveType,this.m_densifiedPoints,n,i,this.m_bRunningInGnomonic,this.m_currentBufferedDelta,e),this.m_lastAzimuth=this.m_endAzimuth[0]}}class Ce extends ye{m_bufferer;m_multiPoint;m_pointIndex=-1;constructor(e,t){super(e.m_progressTracker),this.m_bufferer=e,this.m_multiPoint=t,this.m_bNeedsSimplify=!1;const s=new l;this.m_multiPoint.queryEnvelope(s);const n=s.getCenter(),i=n.clone();i.scale(this.m_bufferer.m_rpu),this.m_gnomonic=xe(this.m_bufferer.m_gcs,n),this.m_gnomonicCenterRad=i.clone(),this.m_minGnomonicRadius=k(this.m_bufferer.m_a,this.m_bufferer.m_eSquared,i,75/180*Math.PI)}next(){if(this.m_bNeedsSimplify=!1,++this.m_pointIndex===this.m_multiPoint.getPointCount())return null;const e=this.m_multiPoint.getXY(this.m_pointIndex);e.scale(this.m_bufferer.m_rpu),this.m_bRunningInGnomonic=this.isPointBufferInCurrentGnomonic(e),this.m_bRunningInGnomonic||(this.m_bRunningInGnomonic=this.tryUpdateGnomonic(e));const t=new O,s=this.m_bufferer.bufferPoint2D(e,this.m_bRunningInGnomonic,t);return this.m_bNeedsSimplify=s,t}isPointBufferInCurrentGnomonic(e){return null!==this.m_gnomonic&&pe(this.m_bufferer.m_a,this.m_bufferer.m_eSquared,e,this.m_bufferer.m_absDistance*this.m_bufferer.m_ellipticToGeodesicMaxRatio,this.m_gnomonicCenterRad,this.m_minGnomonicRadius)}tryUpdateGnomonic(e){const t=new K,s=new K,n=[0];return Pe(this.m_bufferer.m_a,this.m_bufferer.m_eSquared,this.m_bufferer.m_rpu,e,this.m_bufferer.m_absDistance*this.m_bufferer.m_ellipticToGeodesicMaxRatio,t,s,n)?(this.m_gnomonicCenterRad.setCoordsPoint2D(s),this.m_minGnomonicRadius=n[0],this.m_gnomonic=xe(this.m_bufferer.m_gcs,t),!0):(this.m_gnomonic=null,!1)}}class ve{getOperatorType(){return 10110}supportsCurves(){return!0}accelerateGeometry(e,t,s){return!1}canAccelerateGeometry(e){return!1}executeMany(e,t,s,n,i,r,o,m){if(o){const o=new Se(e,t,s,n,i,!1,r,m);return(new _).executeMany(o,t,m)}return new Se(e,t,s,n,i,!1,r,m)}execute(e,s,n,i,r,o,m){const a=new oe([e]),h=[i],c=this.executeMany(a,s,n,h,r,!1,o,m).next();return c||t("geodesic buffer null output"),c}}class Se extends e{m_inputGeoms;m_spatialReference;m_curveType;m_progressTracker;m_distances;m_convergenceOffset;m_currentUnionEnvelope2D=new l;m_bOutlineOnly;m_bUnion;m_index=-1;m_dindex=-1;constructor(e,t,i,r,o,m,a,h){super(),this.m_progressTracker=h,m&&s(""),t||n("");0===t.getCoordinateSystemType()&&n(""),this.m_inputGeoms=e,this.m_spatialReference=t,this.m_curveType=i,this.m_distances=r,this.m_convergenceOffset=o,this.m_bOutlineOnly=m,this.m_bUnion=a}next(){let e;for(;e=this.m_inputGeoms.next();)return i(e),this.m_index=this.m_inputGeoms.getGeometryID(),this.m_dindex+1<this.m_distances.length&&this.m_dindex++,this.geodesicBuffer(e,this.m_distances[this.m_dindex]);return null}getGeometryID(){return this.m_index}tock(){return!0}getRank(){return 1}geodesicBuffer(e,t){return me(e,this.m_spatialReference,this.m_curveType,t,this.m_convergenceOffset,this.m_progressTracker)}}export{ve as OperatorGeodesicBuffer};
|
|
@@ -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{a as r,c as n,G as o,
|
|
2
|
+
import{__addDisposableResource as e,__disposeResources as t}from"tslib";import{a as r,c as n,G as o,h as a}from"./Geometry.js";import{O as s}from"./OperatorShapePreservingLength.js";import{c as i,a as c}from"./MultiPathImpl.js";import{E as m}from"./Point2D.js";import{Q as l,af as u,ag as g,O as p,Z as f,_ as y,$ as h}from"./SpatialReference.js";import{O as x}from"./OperatorDensify.js";class S{getOperatorType(){return 10311}supportsCurves(){return!0}accelerateGeometry(e,t,r){return!1}canAccelerateGeometry(e){return!1}execute(e,t,f,y){if(4===f)return(new s).execute(e,t,y);if(0===t.getCoordinateSystemType()&&r(""),n(e),e.isEmpty()||e.getDimension()<1)return 0;const S=t.getGCS(),d=h();S.querySpheroidData(d);const P=d.majorSemiAxis,E=d.e2,G=S.getUnit().getUnitToBaseFactor();let j;const v=e.getGeometryType();if(v===o.enumPolygon?j=e.getBoundary():v===o.enumEnvelope?j=i(e):a(v)?(j=new c({vd:e.getDescription()}),j.addSegment(e,!0)):j=e,j.hasNonLinearSegments()){j=(new x).execute(j,0,t.getTolerance(0),0,y)}if(S!==t){const r=t.getSRToGCSTransform();if(t.isPannable()){j=l(j,t),v===o.enumPolyline&&j===e&&(j=e.clone());const r=new m;t.getPannableExtent().queryIntervalX(r);for(let e=0,t=j.getPointCount();e<t;e++){const t=j.getXY(e);t.x=u(t.x,r),j.setXY(e,t)}}const n=j.createInstance();j=g(r,j,n,y)?n:(new p).execute(j,r,y)}return this._ExecuteMultiPathGeodeticLength(j,f,P,E,G)}_ExecuteMultiPathGeodeticLength(r,n,o,a,s){const i={stack:[],error:void 0,hasError:!1};try{const t=e(i,new f,!1);let c=0;const m=r.querySegmentIterator();for(;m.nextPath();)for(;m.hasNextSegment();){const e=m.nextSegment(),r=e.getStartXY(),i=e.getEndXY();r.scale(s),i.scale(s),y.geodeticDistance(o,a,r.x,r.y,i.x,i.y,t,null,null,n),c+=t.val}return c}catch(c){i.error=c,i.hasError=!0}finally{t(i)}}}export{S as OperatorGeodeticLength};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{G as e}from"./GeometryCursor.js";import{c as t}from"./Geometry.js";import{
|
|
2
|
+
import{G as e}from"./GeometryCursor.js";import{c as t}from"./Geometry.js";import{z as r}from"./SpatialReference.js";import{Envelope2D as i}from"./Envelope2D.js";import{B as s}from"./Bufferer-CclWhXVb.js";class m{getOperatorType(){return 10111}supportsCurves(){return!0}accelerateGeometry(e,t,r){return!1}canAccelerateGeometry(e){return!1}executeMany(e,t,i,s,m,a,o,_,c,u,h){if(c){const c=new n(e,t,i,s,m,a,o,_,h);return(new r).executeMany(c,t,h,2)}return new n(e,t,i,s,m,a,o,_,h)}}class n extends e{m_inputGeoms;m_spatialReference;m_progressTracker;m_bufferer;m_distances;m_maxDeviation;m_miterLimit;m_maxVerticesInFullCircle;m_joins;m_caps;m_currentUnionEnvelope2D=new i;m_index=-1;m_dindex=-1;constructor(e,t,r,i,m,n,a,o,_){super(),this.m_progressTracker=_,this.m_bufferer=new s(_),this.m_inputGeoms=e,this.m_spatialReference=t,this.m_distances=r,this.m_maxDeviation=a,this.m_maxVerticesInFullCircle=o,this.m_joins=i,this.m_caps=m,this.m_miterLimit=n}tock(){return!0}getRank(){return 1}next(){{let e;for(;e=this.m_inputGeoms.next();)return t(e),this.m_index=this.m_inputGeoms.getGeometryID(),this.m_dindex+1<this.m_distances.length&&this.m_dindex++,this.buffer(e,this.m_distances[this.m_dindex]);return null}}getGeometryID(){return this.m_index}buffer(e,t){return this.m_bufferer.buffer(e,t,this.m_spatialReference,this.m_joins,this.m_caps,this.m_miterLimit,this.m_maxDeviation,this.m_maxVerticesInFullCircle)}}export{m as O};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{
|
|
2
|
+
import{v as e,w as r}from"./SpatialReference.js";class t extends e{getOperatorType(){return 4}execute(e,t,a,s){return!r(e,t,a,4,s)}}export{t as O};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{G as e}from"./GeometryCursor.js";import{E as t,n as s,P as r}from"./MultiPathImpl.js";import{c as n,G as o,g as a,a as i}from"./Geometry.js";import{Envelope2D as m}from"./Envelope2D.js";import{i as l,e as g,P as h}from"./Envelope.js";import{f as u,k as c,
|
|
2
|
+
import{G as e}from"./GeometryCursor.js";import{E as t,n as s,P as r}from"./MultiPathImpl.js";import{c as n,G as o,g as a,a as i}from"./Geometry.js";import{Envelope2D as m}from"./Envelope2D.js";import{i as l,e as g,P as h}from"./Envelope.js";import{f as u,k as c,E as p,F as _,C as P,G as y}from"./SpatialReference.js";class d{getOperatorType(){return 10700}accelerateGeometry(e,t,s){return!1}canAccelerateGeometry(e){return!1}supportsCurves(){return!0}executeMany(e,t,s,r=1){return new I(e,t,s,r)}}class I extends e{m_inputGeoms;m_spatialReference;m_progressTracker;m_currentGeometry;m_singlePartIndex;m_singlePartCount;m_polygonStart;m_index;m_options;constructor(e,t,s,r){super(),this.m_progressTracker=s,this.m_inputGeoms=e,this.m_spatialReference=t,this.m_currentGeometry=null,this.m_singlePartIndex=-1,this.m_singlePartCount=-1,this.m_polygonStart=-1,this.m_index=-1,this.m_options=r}tock(){return!0}getRank(){return 1}next(){if(this.m_singlePartIndex===this.m_singlePartCount){const e=this.m_inputGeoms.next();if(null===e)return null;if(n(e),e.getGeometryType()===o.enumPolygon)if(1===this.m_options)this.m_currentGeometry=(new u).execute(e,this.m_spatialReference,!1,this.m_progressTracker);else if(2===this.m_options)if(e.getPathCount()<2)this.m_currentGeometry=e;else{const n=[0],o=e.getImpl().getIsSimple(0,n);if(l(o))this.m_currentGeometry=e;else{const n=new t,o=n.addGeometry(e);let i=null;if(n.hasCurves()){i=new P;const t=new m;e.queryEnvelope(t);const s=g(null,e,!0),r=c(s.total(),t);p(n,r,s.total(),12e3,null,i,null,this.m_progressTracker)}const l=n.createPathUserIndex();{let e=0;for(let t=n.getFirstPath(o);t!==s;t=n.getNextPath(t))n.setPathUserIndex(t,l,e++)}const h=_(n,o,this.m_progressTracker);a(h>=0);const u=[];for(let e=n.getFirstPath(o);e!==s;e=n.getNextPath(e))u.push(e);u.sort((e,t)=>Math.abs(n.getPathUserIndex(e,h))-Math.abs(n.getPathUserIndex(t,h)));const y=e,d=new r({vd:e.getDescription()});d.reserveParts(y.getPointCount(),y.getPathCount());for(let e=0,t=u.length;e<t;e++){const t=u[e],s=n.getPathUserIndex(t,l),r=y.calculateRingArea2D(s)>0,o=n.getPathUserIndex(t,h)>=0;d.addPath(y,s,r===o)}this.m_currentGeometry=d}}else i("");else this.m_currentGeometry=e;this.m_singlePartCount=f(this.m_currentGeometry),this.m_singlePartIndex=0,this.m_polygonStart=0,this.m_index=this.m_inputGeoms.getGeometryID()}const e=this.getSingleGeometry(this.m_singlePartIndex,this.m_singlePartCount,this.m_polygonStart,this.m_currentGeometry);return e.getGeometryType()===o.enumPolygon&&(this.m_polygonStart+=e.getPathCount()),this.m_singlePartIndex++,e}getGeometryID(){return this.m_index}getSingleGeometry(e,t,s,r){let n=null;switch(r.getGeometryType()){case o.enumMultiPoint:n=new h({vd:r.getDescription()}),r.isEmpty()||r.getPointByVal(e,n);break;case o.enumPolyline:if(1===t)n=r;else{n=r.createInstance(),n.getImpl().addPath(r.getImpl(),e,!0);const t=[0],s=r.getImpl().getIsSimple(0,t);n.getImpl().setIsSimple(s,t[0],!0)}break;case o.enumPolygon:if(1===t)n=r;else{n=r.createInstance();const e=n.getImpl(),t=r.getImpl(),o=t.getPathFlagsStreamRef();let a=s;const i=t.getPathCount();do{e.addPath(t,a,!0),a++}while(a<i&&!(8&o.read(a)));e.getPathFlagsStreamRef().setBits(0,8);const m=[0],l=t.getIsSimple(0,m);e.setIsSimple(l,m[0],!0)}break;default:n=r}return n}}function f(e){return e.isEmpty()?1:y(e)}export{d as O};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{
|
|
2
|
+
import{v as e,w as r}from"./SpatialReference.js";class t extends e{getOperatorType(){return 9}execute(e,t,a,s){return r(e,t,a,32,s)}}export{t as O};
|
|
@@ -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{a as n,G as s,
|
|
2
|
+
import{__addDisposableResource as e,__disposeResources as t}from"tslib";import{a as n,G as s,j as o,t as r,d as i,g as a}from"./Geometry.js";import{m as c,a as m,c as l}from"./SideCalculator2D-DX0718xq.js";import{P as u,b as g,S as f,s as y}from"./MultiPathImpl.js";import{P as S,d,c as N,m as x}from"./Point2D.js";import{P as p,k as h}from"./Envelope.js";import{G as A}from"./GeometryCursor.js";import{O as C,t as P,aa as w,a6 as _,ah as E,ai as j,aj as T,ad as G,$ as I,ak as D,al as v,am as R,Z as b,_ as U,an as q,ao as k}from"./SpatialReference.js";import{O as F}from"./OperatorShapePreservingDensify.js";class O{getOperatorType(){return 10501}supportsCurves(){return!0}accelerateGeometry(e,t,n){return!1}canAccelerateGeometry(e){return!1}getNearestCoordinate(e,t,y,d,N,x){if(t.isNAN()&&n("NAN xy coordinates are not allowed"),e.isEmpty())return c();if(Number.isNaN(d)&&(d=0),d>=0||n("maxDeviationMeters"),0===e.getDimension())return this.getNearestVertex(e,t,y);const A=e.getGeometryType();if(A===s.enumGeometryCollection){const n=e;let s=c();for(let e=0,o=n.getGeometryCount();e<o;++e){const o=n.getGeometry(e),r=this.getNearestCoordinate(o,t,y,d,N,x);if(!r.isEmpty()){if(0===r.m_distance)return r;r.m_distance>=s.m_distance||(s=r,s.m_geometryIndex=e)}}return s}if(A===s.enumEnvelope){const n=new u;return n.addEnvelope(e,!1),this.getNearestCoordinate(n,t,y,d,N,x)}o(A)||r("Operation is not implemented for this geometry type");const D=e;if((N||x)&&A===s.enumPolygon){const n=()=>{const e=m(t,-1,0);return e.m_bRightSide=!0,e};if(y.isPannable()){const s=(new C).foldInto360Range(new p(t),y);if(s.isEmpty())return c();const o=(new C).foldInto360Range(e,y);if(o.isEmpty())return c();if((new P).execute(o,s,y,null)&&N)return n()}else{const e=(new C).clipToSpatialReference(new p(t),y,null,1);if(e.isEmpty())return c();const s=w(D,y,0,null);if(s.isEmpty())return c();if((new P).execute(s,e,y,null)&&N)return n()}}const v=y!==y.getGCS()?y.getSRToGCSTransform():null,R=new S;if(v?(new C).transform(v,[t],1,[R],!1):R.assign(t),R.isNAN())return c();const b=X(D,t,y,1);let U=b.m_distance;if(0===U)return b;Number.isNaN(U)?U=Number.POSITIVE_INFINITY:U*=1+1e-7;const q=y.getGCS(),k=q.getUnit().getUnitToBaseFactor(),O=R.clone();O.scale(k);const V=I();y.querySpheroidData(V);const B=_(V.majorSemiAxis,V.e2,O),L=E(V.majorSemiAxis,V.e2),Z=new M(D.querySegmentIterator());0===d&&(d=.01);const $=V.majorSemiAxis*g(45),z=(new F).executeMany(Z,y,$,d,0,null),H=[];let J=-1;const K=new h,Q=new f;for(let n=z.next();null!==n;n=z.next()){if(n.isEmpty())continue;const t=z.getGeometryID(),s=e.getPathIndexFromPointIndex(t);e.isClosedPath(s)&&D.getPathEnd(s);const o=n;for(let e=0,n=o.getPathCount();e<n;++e){H.length=0;for(let t=o.getPathStart(e),r=o.getPathEnd(e);t<r;++t)H.push(o.getXY(t));if(v&&(new C).transform(v,H,H.length,H,!1),H.length>3){const e=Y(H,H.length,R,q,1);if(e.m_distance<U){U=e.m_distance,K.assign(_(V.majorSemiAxis,V.e2,e.m_coordinate.mul(k))),J=t;let n=e.m_vertexIndex;n+1===H.length&&(n-=1),o.getSegmentBuffer(n,Q,!0)}}H.forEach(e=>e.mulThis(k));const n=_(V.majorSemiAxis,V.e2,H[0]),s=new h;for(let e=1,r=H.length;e<r;++e){const r=_(V.majorSemiAxis,V.e2,H[e]);if(j(L,B,n,r,s)<U){const{second:s}=T(V.majorSemiAxis,V.e2,B,n,r,2,null);if(s<=U){const s=new h,{second:i}=T(V.majorSemiAxis,V.e2,B,n,r,0,s);i<U&&(U=i,K.assign(s),J=t,o.getSegmentBuffer(e-1,Q,!0))}}n.assign(r)}}}if(!Number.isFinite(U))return c();-1===J&&n("");const W=G(V.majorSemiAxis,V.e2,K);W.divThis(k);const ee=W.clone(),te=y!==y.getGCS()?y.getGCSToSRTransform():null;te&&(new C).transform(te,[W],1,[ee],!1),ee.isNAN()&&i("closestPoint2DSr.isNAN()"),a(!Q.empty());const ne=Q.get().getClosestCoordinate(ee,!1);ee.assign(Q.get().getCoord2D(ne)),v?(new C).transform(v,[ee],1,[W],!1):W.assign(ee),a(!W.isNAN());const se=this.getNearestVertex(new p(W),R,y.getGCS()),oe=m(ee,J,se.m_distance);if(x&&e.getDimension()>0){const n=l(e,t,-1,-1),s=0!==n&&3!==n;oe.m_bRightSide=s}return oe}getNearestVertex(e,t,o){if(t.isNAN()&&n("NAN xy coordinates are not allowed"),e.isEmpty())return c();switch(e.getGeometryType()){case s.enumPoint:return V(e,t,o);case s.enumMultiPoint:case s.enumPolyline:case s.enumPolygon:return X(e,t,o);default:r("")}}getNearestVertexPoint2D(e,t,n,s){return Y(e,t,n,s)}getNearestVertices(e,t,o,i,a){if(t.isNAN()&&n("NAN xy coordinates are not allowed"),e.isEmpty())return[];switch(e.getGeometryType()){case s.enumPoint:{const n=V(e,t,o);if(!n.isEmpty()&&n.m_distance<i&&a>=1){const e=[];return e.push(n),e}return[]}case s.enumMultiPoint:case s.enumPolyline:case s.enumPolygon:return B(e,t,o,i,a);default:r("")}}}function V(s,o,r){const i={stack:[],error:void 0,hasError:!1};try{if(0===r.getCoordinateSystemType()&&n("Cannot use local SR"),1!==r.getCoordinateSystemType()){const e=new Array(2);e[0]=s.getXY(),e[1]=o.clone();const t=x(S,2);2!==q(r,e,2,t)&&n("Point cannot be projected to GCS");const i=r.getGCS(),a=V(new p(t[0]),t[1],i);return m(a.m_coordinate,0,a.m_distance)}const t=r.getUnit().getUnitToBaseFactor(),a=s.getXY();a.scale(t);const c=o.clone();c.scale(t);const l=I();r.querySpheroidData(l);const u=e(i,new b,!1);U.geodeticDistance(l.majorSemiAxis,l.e2,a.x,a.y,c.x,c.y,u,null,null,k.PE_LINETYPE_GEODESIC);const g=s.getXY();return m(g,0,u.val)}catch(a){i.error=a,i.hasError=!0}finally{t(i)}}function X(s,o,r,i=0){0===r.getCoordinateSystemType()&&n("Cannot use local SR");let a=s.getAttributeStreamRef(0),c=s.getPointCount();const l=r.getGCS(),u=o.clone();if(1!==r.getCoordinateSystemType()){const e=r.getSRToGCSTransform();if(D(e,[o],1,[u],null),u.isNAN())return m(S.getNAN(),-1,Number.NaN);const t=(new C).execute(s,e,null);a=t.getAttributeStreamRef(0),c=t.getPointCount()}const g=l.getUnit().getUnitToBaseFactor(),f=d(c,0);for(let e=0;e<c;++e)f[e]=e;y(c,f);const x=I();l.querySpheroidData(x);const p=u.clone();p.scale(g);const A=_(x.majorSemiAxis,x.e2,p);let P=-1,w=Number.MAX_VALUE;const E=v(x.majorSemiAxis,x.e2);let j=c;const T=new S,G=new S;for(let e=0;e<j;){if(a.queryPoint2D(2*f[e],T),T.isNAN())continue;G.assign(T),G.scale(g);const t=_(x.majorSemiAxis,x.e2,G);if(h.distance(t,A)>w){f[j-1]=N(f[e],f[e]=f[j-1]),j--;continue}const n=R(E,t,A);n<w&&(P=f[e],w=n),e++}if(0!==x.e2){const n={stack:[],error:void 0,hasError:!1};try{const t=e(n,new b,!1);for(let e=0;e<j;e++){if(a.queryPoint2D(2*f[e],T),T.isNAN())continue;G.assign(T),G.scale(g);const n=_(x.majorSemiAxis,x.e2,G);h.distance(n,A)>w||(U.geodeticDistance(x.majorSemiAxis,x.e2,p.x,p.y,G.x,G.y,t,null,null,i),t.val<w&&(P=f[e],w=t.val))}}catch(k){n.error=k,n.hasError=!0}finally{t(n)}}const q=new S;return-1!==P&&q.assign(s.getXY(P)),m(q,P,w)}function Y(s,o,r,i,a=0){0===i.getCoordinateSystemType()&&n("Cannot use local SR");const l=i.getGCS(),u=r.clone();if(1!==i.getCoordinateSystemType()){const e=i.getSRToGCSTransform();if(D(e,[r],1,[u],null),u.isNAN())return c();const t=x(S,o);D(e,s,o,t,null);const n=Y(t,o,r,l,a);return n.isEmpty()?n:m(s[n.m_vertexIndex],n.m_vertexIndex,n.m_distance)}const g=l.getUnit().getUnitToBaseFactor(),f=d(o,0);for(let e=0;e<o;++e)f[e]=e;y(o,f);const p=I();l.querySpheroidData(p);const A=u.clone();A.scale(g);const C=_(p.majorSemiAxis,p.e2,A);let P=-1,w=Number.MAX_VALUE;const E=v(p.majorSemiAxis,p.e2);let j=o;for(let e=0;e<j;){const t=s[f[e]];if(t.isNAN())continue;const n=t.clone();n.scale(g);const o=_(p.majorSemiAxis,p.e2,n);if(h.distance(o,C)>w){f[j-1]=N(f[e],f[e]=f[j-1]),j--;continue}const r=R(E,o,C);r<w&&(P=f[e],w=r),e++}if(0!==p.e2){const n={stack:[],error:void 0,hasError:!1};try{const t=e(n,new b,!1);for(let e=0;e<j;e++){const n=s[f[e]];if(n.isNAN())continue;const o=n.clone();o.scale(g);const r=_(p.majorSemiAxis,p.e2,o);h.distance(r,C)>w||(U.geodeticDistance(p.majorSemiAxis,p.e2,A.x,A.y,o.x,o.y,t,null,null,a),t.val<w&&(P=f[e],w=t.val))}}catch(G){n.error=G,n.hasError=!0}finally{t(n)}}const T=new S;return-1!==P&&T.assign(s[P]),m(T,P,w)}function B(s,o,r,i,a){const c={stack:[],error:void 0,hasError:!1};try{0===r.getCoordinateSystemType()&&n("Cannot use local SR");let t=s.getAttributeStreamRef(0),l=s.getPointCount();const u=r.getGCS(),g=o.clone();if(1!==r.getCoordinateSystemType()){const e=r.getSRToGCSTransform();if(D(e,[o],1,[g],null),g.isNAN())return[];const n=(new C).execute(s,e,null);t=n.getAttributeStreamRef(0),l=n.getPointCount()}const f=u.getUnit().getUnitToBaseFactor(),x=d(l,0);for(let e=0;e<l;++e)x[e]=e;y(l,x);const p=I();u.querySpheroidData(p);const A=g.clone();A.scale(f);const P=_(p.majorSemiAxis,p.e2,A),w=[];let E=l;const j=new S,T=new S;for(let e=0;e<E;){if(t.queryPoint2D(2*x[e],j),j.isNAN())continue;T.assign(j),T.scale(f);const n=_(p.majorSemiAxis,p.e2,T);h.distance(n,P)>i?(x[E-1]=N(x[e],x[e]=x[E-1]),E--):e++}const G=(e,t)=>e.m_distance-t.m_distance,v=e(c,new b,!1);for(let e=0;e<E;e++)t.queryPoint2D(2*x[e],j),j.isNAN()||(U.geodeticDistance(p.majorSemiAxis,p.e2,A.x,A.y,j.x*f,j.y*f,v,null,null,k.PE_LINETYPE_GEODESIC),v.val<i&&w.push(m(j,x[e],v.val)));return w.sort(G),w.slice(0,a)}catch(l){c.error=l,c.hasError=!0}finally{t(c)}}class M extends A{m_segIter;m_first=!0;constructor(e){super(),this.m_segIter=e,this.m_segIter.stripAttributes()}tock(){return!0}getRank(){return 1}next(){if(this.m_first){if(!this.m_segIter.nextPath())return null;this.m_first=!1}for(;;){if(this.m_segIter.hasNextSegment())return this.m_segIter.nextSegment().clone();if(!this.m_segIter.nextPath())break}return null}getGeometryID(){return this.m_segIter.getStartPointIndex()}}export{O as OperatorProximityGeodesic};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{a as e,G as t,
|
|
2
|
+
import{a as e,G as t,h as s,d as n}from"./Geometry.js";import{ae as o,y as r,a,$ as i,a6 as m}from"./SpatialReference.js";import{P as c,a as g}from"./MultiPathImpl.js";import{q as u,d as p,P as h}from"./Point2D.js";import{k as y}from"./Envelope.js";import{Envelope2D as l}from"./Envelope2D.js";import{O as f}from"./OperatorDensify.js";import{O as _}from"./OperatorClip.js";function x(){return{m_pGcs:new h,m_xyz:new y,m_factor:Number.NaN,m_geoLength:Number.NaN,setValues:d,setLength:S,assign:P}}function d(e,t,s,n){this.m_factor=e,this.m_pGcs.assign(t),this.m_xyz.assign(n),this.m_geoLength=s}function S(e){this.m_geoLength=e}function P(e){this.m_pGcs.assign(e.m_pGcs),this.m_xyz.assign(e.m_xyz),this.m_factor=e.m_factor,this.m_geoLength=e.m_geoLength}class w{getOperatorType(){return 10315}supportsCurves(){return!0}accelerateGeometry(e,t,s){return!1}canAccelerateGeometry(e){return!1}_ExecuteShapePreservingLength(e,t,s,n,a){if(e.hasNonLinearSegments()){e=(new f).execute(e,0,t.getTolerance(0),0,a)}if(t.isPannable()){let n=90,r=-90;if(1===s.getUnit().getUnitToBaseFactor()&&(n*=Math.PI/180,r*=Math.PI/180),2===t.getCoordinateSystemType()){let e=null;const s=[0,0,0,0];e=t.getPECoordSys(),s[0]=0,s[1]=n,s[2]=0,s[3]=r,o.geogToProj(e,2,s),n=s[1],r=s[3]}const i=new l;e.queryEnvelope(i),i.ymin=r,i.ymax=n,e=(new _).execute(e,i,t,a)}else{const s=t.getPCSHorizon();if((e=(new r).execute(e,s,t,a))===s){const t=e.clone();e=t}}return e.isEmpty()?0:this._ExecuteIterativeApproach(e,t,s,n,1,a)}_ExecuteIterativeApproach(e,t,s,r,a,m){const c=i();s.querySpheroidData(c);const g=c.majorSemiAxis,l=c.e2,f=s.getUnit().getUnitToBaseFactor(),_=40,d=u(x,_),S=p(_,Number.NaN),P=x(),w=x();let E;const G=[0,0,0,0],L=t.getPECoordSys(),j=new h,v=new h,T=new h,D=new h,b=new h;let z=0;const I=e.querySegmentIterator();for(;I.nextPath();)for(;I.hasNextSegment();){const e=I.nextSegment();j.assign(e.getStartXY()),v.assign(e.getEndXY()),2===t.getCoordinateSystemType()?(G[0]=j.x,G[1]=j.y,G[2]=v.x,G[3]=v.y,o.projToGeog(L,2,G),T.x=G[0]*f,T.y=G[1]*f,D.x=G[2]*f,D.y=G[3]*f):(T.setCoordsPoint2D(j),D.setCoordsPoint2D(v),T.scale(f),D.scale(f));const s=new y,r=new y;N(g,l,T,s),N(g,l,D,r);let i=C(g,s,r);P.setValues(0,T,Number.NaN,s),w.setValues(1,D,i,r),E=a,d[0].assign(w),S[0]=a;let m=0;for(;;){m>128&&n("iterations exceeded");const s=.5*(P.m_factor+w.m_factor),r=e.getCoord2D(s);2===t.getCoordinateSystemType()?(G[0]=r.x,G[1]=r.y,o.projToGeog(L,1,G),b.x=G[0]*f,b.y=G[1]*f):(b.setCoordsPoint2D(r),b.scale(f)),T.setCoordsPoint2D(P.m_pGcs),D.setCoordsPoint2D(w.m_pGcs);const c=new y;N(g,l,b,c);const u=C(g,P.m_xyz,c),p=C(g,w.m_xyz,c);i=w.m_geoLength,Number.isNaN(i)&&(i=C(g,P.m_xyz,w.m_xyz));const h=u+p,x=E===a&&h>=20&&Math.abs(h-i)>1e-8*(i+h);if(m+2<_&&(x||Math.abs(h-i)>0&&E>0))w.setLength(p),d[m].assign(w),w.setValues(s,b,u,c),d[++m].assign(w),x?(E=a,S[m]=a):(E--,S[m-1]=E,S[m]=E);else{if(z+=h,0===m)break;P.assign(w),w.assign(d[--m]),E=S[m]}}}return z}execute(n,o,r){if(o&&0!==o.getCoordinateSystemType()||e(""),n.isEmpty()||n.getDimension()<1)return 0;let i=null;const m=o.getGCS();m!==o&&(i=a(o,m,null));const u=n.getGeometryType();if(u===t.enumEnvelope){const e=new c;return e.addEnvelope(n,!1),this._ExecuteShapePreservingLength(e,o,m,i,r)}if(s(u)){const e=new g;return e.addSegment(n,!0),this._ExecuteShapePreservingLength(e,o,m,i,r)}return this._ExecuteShapePreservingLength(n,o,m,i,r)}}function N(e,t,s,n){n.assign(m(e,t,s))}function C(e,t,s){const n=e,o=new y;o.setSub(t,s);const r=o.length();return 2*n*Math.asin(r/(2*n))}export{w as O};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{G as t}from"./GeometryCursor.js";import{a as e,c as s,p as i,q as n,g as o,G as r,m as h,n as m,t as a}from"./Geometry.js";import{E as c,P as l}from"./Envelope.js";import{Envelope2D as u}from"./Envelope2D.js";import{a as f,S as g,L as _}from"./MultiPathImpl.js";import{n as d,P as p,d as P}from"./Point2D.js";import{T}from"./Transformation2D.js";import{O as b,d as D,Q as S,aq as I,f as x,e as F,m as C,g as N,D as y,B as w,A as E,a8 as v,ar as G,a7 as z}from"./SpatialReference.js";import{c as k}from"./OperatorClip.js";function q(t){const e=t.getInputSR(),s=t.getOutputSR();let i=!1;do{if(e.equals(s)){i=!1;break}if(!H(e)||!H(s)){i=!1;break}if(2===e.getCoordinateSystemType()){i=!0;break}if(2===s.getCoordinateSystemType()){i=!0;break}const n=t.getGeographicTransformations();if(null!==n&&n.count()>0){i=!0;break}}while(0);return i}class L{m_horizon2;m_sr;m_bInclusive2;m_pannableExtent;m_horizon2Env=new u;m_gcs360;m_gcs180;m_gcs90;m_pannableFactor;m_period;m_gcsTolerance;m_qtIter;m_segIter;constructor(t,e,s,i){this.m_horizon2=t,this.m_sr=e,this.m_bInclusive2=s,this.m_pannableExtent=i.clone(),this.m_segIter=null,this.m_qtIter=null,null!==t?(t.queryEnvelope(this.m_horizon2Env),this.m_gcs360=i.width(),this.m_gcs180=.5*this.m_gcs360,this.m_gcs90=.25*this.m_gcs360,this.m_pannableFactor=1,this.m_horizon2Env.width()-this.m_gcs360>0&&(this.m_pannableFactor+=Math.ceil((this.m_horizon2Env.width()-this.m_gcs360)/this.m_gcs360)),this.m_period=this.m_gcs360):(this.m_horizon2Env.setEmpty(),this.m_gcs360=Number.NaN,this.m_gcs180=Number.NaN,this.m_gcs90=Number.NaN,this.m_pannableFactor=Number.NaN,this.m_period=Number.NaN),this.m_gcsTolerance=null!=e?e.getTolerance(0):Number.NaN}isPointStartInHorizon(t,e){if(!this.m_horizon2)return!0;let s=nt(new l(t),this.m_horizon2,!0,this.m_period);do{const e=t.clone();if(e.x-=s*this.m_period,this.m_horizon2.getGeometryType()===r.enumPolygon){let t;if(t=this.m_horizon2Env.contains(e)?N(this.m_horizon2,e,0):0,this.m_bInclusive2){if(0===t)return!1}else if(1===t)return!1}else{const t=this.m_horizon2Env.contains(e);if(this.m_bInclusive2){if(!t)return!1}else if(t)return!1}}while(this.m_horizon2Env.xmin+ ++s*this.m_period<t.x);return!0}isAdjoiningLineInHorizon(t,e,s){if(!this.m_horizon2)return!0;const i=new p,n=new p;rt(t,e,this.m_gcs90,this.m_gcs180,this.m_gcs360,i,n);const h=Math.max(i.x,n.x),m=new _;m.setStart2D(i),m.setEnd2D(n);let a=nt(m,this.m_horizon2,!0,this.m_period);const c=!1;do{const t=i.clone(),e=n.clone();if(t.x-=a*this.m_period,e.x-=a*this.m_period,this.m_horizon2.getGeometryType()===r.enumPolygon){const s=new _;s.setStartXY(t),s.setEndXY(e);const i=new u,n=new u;if(s.queryEnvelope(i),n.setCoords({env2D:i}),n.inflateCoords(this.m_gcsTolerance,this.m_gcsTolerance),this.m_horizon2Env.isIntersecting(n)){const t=this.m_horizon2.getImpl(),e=t.getAccelerators();if(null!==e){null!==e.getRasterizedGeometry()&&o(0)}{let i=null;if(null!==e&&(i=e.getQuadTree()),null!==i){this.m_qtIter||(this.m_qtIter=i.getIteratorForQT()),this.m_qtIter.resetIterator(s,this.m_gcsTolerance),this.m_segIter||(this.m_segIter=t.querySegmentIterator());for(let t=this.m_qtIter.next();-1!==t;t=this.m_qtIter.next()){const e=i.getElement(t);this.m_segIter.resetToVertex(e,-1);if(this.m_segIter.nextSegment().isIntersecting(s,this.m_gcsTolerance))return!1}}else for(this.m_segIter||(this.m_segIter=t.querySegmentIterator()),this.m_segIter.resetToFirstPath();this.m_segIter.nextPath();)for(;this.m_segIter.hasNextSegment();){const t=this.m_segIter.nextSegment(),e=new u;if(t.queryEnvelope(e),e.isIntersecting(n)&&t.isIntersecting(s,this.m_gcsTolerance))return!1}}}}else if(this.m_bInclusive2){const s=this.m_horizon2Env.contains(t),i=this.m_horizon2Env.contains(e);if(s&&i)return!0}else{const s=this.m_horizon2Env.clone();s.inflateCoords(this.m_gcsTolerance,this.m_gcsTolerance);if(!(0===s.clipLine(t,e)))return!1}}while(this.m_horizon2Env.xmin+ ++a*this.m_period<h);return!this.m_bInclusive2||c}isEnvelopeInHorizon(t,e){if(!this.m_horizon2)return!0;const s=new c({env2D:t});let i=nt(s,this.m_horizon2,!0,this.m_period);do{const n=t.clone();n.move(-i*this.m_period,0),s.setCoords(n.xmin,n.ymin,n.xmax,n.ymax);if(!st(s,this.m_horizon2,this.m_sr,this.m_bInclusive2,e))return!1}while(this.m_horizon2Env.xmin+ ++i*this.m_period<t.xmax);return!0}}class R{m_splitLines2=null;m_transform1;m_pannableExtent;m_gcs360;m_gcs180;m_gcs90;m_gcsTolerance;m_halfGcsTolerance;m_gcsToleranceSq;m_scalars=[];m_splitIter=null;constructor(t,e,s){this.m_splitLines2=t,this.m_transform1=e,this.m_pannableExtent=s.clone(),this.m_gcs360=s.width(),this.m_gcs180=.5*this.m_gcs360,this.m_gcs90=.25*this.m_gcs360,null!==e?(this.m_gcsTolerance=this.m_transform1.getOutputSR().getTolerance(0),this.m_halfGcsTolerance=.5*this.m_gcsTolerance,this.m_gcsToleranceSq=this.m_gcsTolerance*this.m_gcsTolerance):(this.m_gcsTolerance=Number.NaN,this.m_halfGcsTolerance=Number.NaN,this.m_gcsToleranceSq=Number.NaN)}hasSplitLines(){return null!=this.m_splitLines2}getSplitLineFactorEx(t,e,s,i,n,o){const r=new p,h=new p;rt(i,n,this.m_gcs90,this.m_gcs180,this.m_gcs360,r,h);const m=new _;for(m.setStartXY(r),m.setEndXY(h),this.m_splitIter?this.m_splitIter.resetToFirstPath():this.m_splitIter=this.m_splitLines2.getImpl().querySegmentIterator();this.m_splitIter.nextPath();)for(;this.m_splitIter.hasNextSegment();){const i=this.m_splitIter.nextSegment(),n=.5*(i.getStartX()+i.getEndX());Z(this.m_gcs180,this.m_gcs360,n,m);const r=new u;m.queryEnvelope(r),r.inflateCoords(this.m_gcsTolerance,this.m_gcsTolerance);const h=new u;if(i.queryEnvelope(h),!r.isIntersecting(h))continue;this.m_scalars.length<2&&(this.m_scalars.length=2);if(1===m.intersect(i,null,this.m_scalars,null,this.m_gcsTolerance)&&(this.m_scalars[0]>0&&this.m_scalars[0]<1)){const n=ct(e,s,this.m_scalars[0]),r=Q(t.getCoord2D(n),this.m_transform1);if(i.isIntersectingPoint(r,this.m_halfGcsTolerance))return n;return this.getSplitLineFactor(t,e,s,i,o)}}return-1}getSplitLineFactor(t,e,s,i,n){let o=e,r=s;const h=.5*(i.getStartX()+i.getEndX()),m=new _,a=t.getCoord2D(o),c=t.getCoord2D(r),l=Q(a,this.m_transform1),u=Q(c,this.m_transform1);for(;o<r;){const e=new p,s=new p;rt(l,u,this.m_gcs90,this.m_gcs180,this.m_gcs360,e,s),m.setStartXY(e),m.setEndXY(s),Z(this.m_gcs180,this.m_gcs360,h,m);const n=p.sqrDistance(m.getStartXY(),m.getEndXY());if(n<=this.m_gcsToleranceSq)break;if(Number.isNaN(n))return Number.NaN;let f=ct(o,r,this.m_scalars[0]);if(o<f&&f<r||(f=.5*(r+o)),o===f||f===r)return f;const g=t.getCoord2D(f),_=Q(g,this.m_transform1),d=new p;rt(l,_,this.m_gcs90,this.m_gcs180,this.m_gcs360,e,d),m.setStartXY(e),m.setEndXY(d),Z(this.m_gcs180,this.m_gcs360,h,m);let P=m.intersect(i,null,this.m_scalars,null,this.m_halfGcsTolerance);if(0!==P){if(1===this.m_scalars[0])return f;r=f,c.setCoordsPoint2D(g),u.setCoordsPoint2D(_)}else{if(rt(_,u,this.m_gcs90,this.m_gcs180,this.m_gcs360,d,s),m.setStartXY(d),m.setEndXY(s),Z(this.m_gcs180,this.m_gcs360,h,m),P=m.intersect(i,null,this.m_scalars,null,this.m_halfGcsTolerance),0===P)return f;if(0===this.m_scalars[0])return f;o=f,a.setCoordsPoint2D(g),l.setCoordsPoint2D(_)}}return.5*(r+o)}}class M{m_bPrepared=!1;m_bNeedsShapePreservingProject=!1;m_inputTransform=null;m_transform1=null;m_transform2=null;m_extentFrom=null;m_horizon1=null;m_horizon2=null;m_pannableExtentFrom=new u;m_pannableExtentTo=new u;m_pannableExtentGcsTo=new u;m_bClipTopBottomFrom=!1;m_bNeedsGeoTransform=!1;m_bIsPannableFrom=!1;m_bIsPannableTo=!1;m_bInclusive1=!1;m_bInclusive2=!1;m_bSrFromIsPcs=!1;m_bSrToIsPcs=!1;m_fromTolerance=Number.NaN;m_toTolerance=Number.NaN;m_gcsToTolerance=Number.NaN;m_aFrom=Number.NaN;m_mpuFrom=Number.NaN;m_rpuFrom=Number.NaN;m_rpuGcsTo=Number.NaN;m_aTo=Number.NaN;m_mpuTo=Number.NaN;m_stages=0;constructor(){}prepare(t,s,i){this.m_bPrepared&&n(""),t||e("");const r=t.getInputSR(),h=t.getOutputSR();H(r)&&H(h)||e("shape preserving project requires PCS or GCS");const m=r.getCoordinateSystemType(),a=h.getCoordinateSystemType();this.m_bSrFromIsPcs=2===m,this.m_bSrToIsPcs=2===a;let c=null,l=null,u=null,f=null;this.m_bSrFromIsPcs?(c=r,u=r.getGCS(),this.m_aFrom=at(u),this.m_mpuFrom=mt(c),this.m_rpuFrom=Number.NaN):(u=r,this.m_rpuFrom=ht(u),this.m_aFrom=Number.NaN),this.m_bSrToIsPcs?(l=h,f=h.getGCS(),this.m_aTo=at(f),this.m_mpuTo=mt(l)):(f=h,this.m_aTo=Number.NaN,this.m_mpuTo=Number.NaN),this.m_rpuGcsTo=ht(f);const g=t.getGeographicTransformations();this.m_bNeedsGeoTransform=null!==g&&g.count()>0;const _=r.equals(h);if(this.m_bNeedsShapePreservingProject=!_&&(this.m_bSrFromIsPcs||this.m_bSrToIsPcs||this.m_bNeedsGeoTransform),!this.m_bNeedsShapePreservingProject)return this.m_inputTransform=t,this.m_extentFrom=s?s.clone():null,void(this.m_bPrepared=!0);if(this.m_bIsPannableFrom=r.isPannable(),this.m_bIsPannableTo=h.isPannable(),this.m_bIsPannableFrom&&(this.m_pannableExtentFrom=r.getPannableExtent()),this.m_bIsPannableTo&&(this.m_pannableExtentTo=h.getPannableExtent()),this.m_bSrToIsPcs){this.m_pannableExtentGcsTo=f.getPannableExtent();const t=l.getCentralMeridian(),e=this.m_pannableExtentGcsTo.getCenter();e.x=t,this.m_pannableExtentGcsTo.centerAt(e)}else this.m_pannableExtentGcsTo=this.m_pannableExtentTo.clone();this.m_fromTolerance=r.getTolerance(0),this.m_toTolerance=h.getTolerance(0),this.m_gcsToTolerance=f.getTolerance(0);{const e=t.getExtendedParams(),n=e.clipWithInputHorizon,o=e.clipWithOutputHorizon;n&&this.setHorizon1(t,s,i),o&&this.setHorizon2(t,i),this.checkAndSetStages(t,i)}const d=F();d.setFlag(1073741824,!0),d.setFlag(536870912,!0);const p=C();if(p.clipWithInputHorizon=!1,p.clipWithOutputHorizon=!1,1===this.m_stages)this.m_transform1=D(!1,r,h,g,p,d);else if(2===this.m_stages){d.setFlag(2147483648,!0),this.m_transform1=D(!1,r,f,g,p,d);const t=F();this.m_transform2=D(!1,f,h,null,p,t)}else{o(null!=l),p.centralMeridianOfOutputGCS=l.getCentralMeridian(),this.m_transform1=D(!1,r,f,g,p,d);const t=F();t.setFlag(2147483648,!0),this.m_transform2=D(!1,f,h,null,p,t)}this.m_inputTransform=t,this.m_extentFrom=s?s.clone():null,this.m_bPrepared=!0}execute(t,e,s,i){this.m_bPrepared||n(""),o(!t.hasAttribute(10));return this.execute_(t,e,s,i)}checkIfNeedsReset(t,e){return o(0),!1}setHorizon1(t,e,s){const i=t.getInputSR();let n,o=null;const r=new u;if(this.m_bSrFromIsPcs){n=!0,o=i.getPCSHorizon(),o.queryEnvelope(r),this.m_bIsPannableFrom&&(o=new c({xmin:this.m_pannableExtentFrom.xmin,ymin:r.ymin,xmax:this.m_pannableExtentFrom.xmax,ymax:r.ymax}));let t=!1;null!=e&&(t=et(e,o,i,n,this.m_bIsPannableFrom,this.m_pannableExtentFrom,s)),t||(this.m_horizon1=o,this.m_bInclusive1=n)}else this.m_bClipTopBottomFrom=!0,this.m_bInclusive1=!0}setHorizon2(t,e){const s=t.getOutputSR();if(1===s.getCoordinateSystemType())return this.m_horizon2=null,void(this.m_bInclusive2=!1);let i=null;const n=new u,o=s.getGCSHorisonIsInclusive();i=s.getGCSHorizon(),i.queryEnvelope(n);const r=s.getCentralMeridian();if(this.m_bIsPannableTo){const t=new c({xmin:this.m_pannableExtentGcsTo.xmin,ymin:n.ymin,xmax:this.m_pannableExtentGcsTo.xmax,ymax:n.ymax});t.centerAt(r,0),i=t}this.m_horizon2=i,this.m_bInclusive2=o}checkAndSetStages(t,e){const s=t.getOutputSR().getGCSSplitLines();if(!this.m_horizon2&&!s)return void(this.m_stages=1);if(this.m_horizon2.getGeometryType()===r.enumEnvelope){const t=new u;this.m_horizon2.queryEnvelope(t);const e=t.width(),s=t.height();e>=d/this.m_rpuGcsTo&&s>=Math.PI/this.m_rpuGcsTo&&(this.m_horizon2=null)}if(this.m_horizon2||s){if(null!==this.m_horizon2&&!this.m_bNeedsGeoTransform&&!this.m_bSrFromIsPcs){const e=t.getOutputSR().getGCS();return t.getInputSR().equals(e)?(this.m_horizon1=this.m_horizon2,this.m_bInclusive1=this.m_bInclusive2,this.m_bClipTopBottomFrom=!1,this.m_horizon2=null,this.m_bInclusive2=!1,void(this.m_stages=1)):void(this.m_stages=2)}this.m_stages=3}else this.m_stages=1}execute_(t,e,n,o){if(!this.m_bNeedsShapePreservingProject)return(new b).execute(t,this.m_inputTransform,o);if(!t)return null;s(t),i(t);let a,c=t.getGeometryType();return h(c)?(a=W(t),c=r.enumPolyline):a=t,a.isEmpty()?a:m(c)?this.executeEx(t,e,n,o):(new b).execute(t,this.m_inputTransform,o)}executeEx(t,e,s,i){let n;t.hasNonLinearSegments()&&a(""),n=this.m_bIsPannableFrom?(new b).foldInto360Range(t,this.m_transform1.getInputSR()):t;let o,r=s;return r>0||(r=100*this.m_toTolerance),o=1===this.m_stages?this.executeGood(n,e,r,i):2===this.m_stages?this.executeBad(n,e,r,i):this.executeUgly(n,e,r,i),this.filterOverDensification(o,this.m_inputTransform.getOutputSR(),r,i)}executeGood(t,e,s,i){const n=s*s;let o,r;return o=e>0?this.getMinLengthInSrFrom(e):this.getMinLengthInSrFrom(1e-5),r=this.m_bClipTopBottomFrom?S(t,this.m_transform1.getInputSR()):$(t,this.m_transform1.getInputSR(),this.m_horizon1,this.m_bInclusive1,this.m_bIsPannableFrom,this.m_pannableExtentFrom,!0,Number.NaN,i),r=I(r,this.m_transform1.getOutputSR(),i),r=j(r,this.m_transform1,this.m_bIsPannableFrom,this.m_pannableExtentFrom,this.m_bIsPannableTo,this.m_pannableExtentTo,null,null,null,null,o,n,i),r=(new b).execute(r,this.m_transform1,i),r}executeBad(t,e,s,i){let n;n=e>0?e*(Math.PI/180/this.m_rpuGcsTo):Math.PI/180/this.m_rpuGcsTo*1e-5;const o=s*s;let r;return r=this.m_bClipTopBottomFrom?S(t,this.m_transform1.getInputSR()):t,r=(new b).execute(r,this.m_transform1,i),r=$(r,this.m_transform2.getInputSR(),this.m_horizon2,this.m_bInclusive2,!0,this.m_pannableExtentGcsTo,!0,Number.NaN,i),r=I(r,this.m_transform2.getOutputSR(),i),r=j(r,this.m_transform2,!0,this.m_pannableExtentGcsTo,this.m_bIsPannableTo,this.m_pannableExtentTo,null,null,null,null,n,o,i),r=(new b).execute(r,this.m_transform2,i),r}executeUgly(t,e,s,i){const n=s*s;let o;o=e>0?this.getMinLengthInSrFrom(e):this.getMinLengthInSrFrom(1e-5);let r=null;r=this.m_bClipTopBottomFrom?S(t,this.m_transform1.getInputSR()):$(t,this.m_transform1.getInputSR(),this.m_horizon1,this.m_bInclusive1,this.m_bIsPannableFrom,this.m_pannableExtentFrom,!0,Number.NaN,i);let h=r;const m=new L(this.m_horizon2,this.m_transform2.getInputSR(),this.m_bInclusive2,this.m_pannableExtentGcsTo),a=this.m_transform2.getOutputSR().getGCSSplitLines(),c=new R(a,this.m_transform1,this.m_pannableExtentGcsTo);if(r=j(r,this.m_transform1,this.m_bIsPannableFrom,this.m_pannableExtentFrom,this.m_bIsPannableTo,this.m_pannableExtentTo,this.m_transform2,m,this.m_pannableExtentGcsTo,c,o,n,i),null!==r){h=null,r=(new b).execute(r,this.m_transform1,i);const t=Math.PI/180/this.m_rpuGcsTo*2;return r=$(r,this.m_transform2.getInputSR(),this.m_horizon2,this.m_bInclusive2,!0,this.m_pannableExtentGcsTo,!1,t,i),r=(new b).execute(r,this.m_transform2,i),r}let l=Number.NaN;l=s>0?s:100*this.m_toTolerance,l/=this.m_rpuGcsTo*this.m_aTo/this.m_mpuTo;const u=l*l;let f;return r=j(h,this.m_transform1,this.m_bIsPannableFrom,this.m_pannableExtentFrom,!0,this.m_pannableExtentGcsTo,null,null,null,null,o,u,i),h=null,r=(new b).execute(r,this.m_transform1,i),f=e>0?e*(Math.PI/180/this.m_rpuGcsTo):Math.PI/180/this.m_rpuGcsTo*1e-5,r=$(r,this.m_transform2.getInputSR(),this.m_horizon2,this.m_bInclusive2,!0,this.m_pannableExtentGcsTo,!1,Number.NaN,i),r=I(r,this.m_transform2.getOutputSR(),i),r=j(r,this.m_transform2,!0,this.m_pannableExtentGcsTo,this.m_bIsPannableTo,this.m_pannableExtentTo,null,null,null,null,f,n,i),r=(new b).execute(r,this.m_transform2,i),r}getMinLengthInSrFrom(t){let e;return e=this.m_bSrFromIsPcs?this.m_aFrom*(t*Math.PI/180)/this.m_mpuFrom:t*Math.PI/180*(1/this.m_rpuFrom),e}filterOverDensification(t,e,s,i){let n=X(t,s);return n.dropAttribute(10),n!==t&&n.getGeometryType()===r.enumPolygon&&(n=(new x).execute(n,e,!1,i)),n}}function X(t,e){if(t.isEmpty()||!t.hasAttribute(10))return t;const s=e*e;let i=t.getAttributeStreamRef(10),n=!1;const o=new _,r=[];let h=!1;for(let a=0,c=t.getPathCount();a<c;a++){const e=t.getPathStart(a),m=t.getPathEnd(a),c=t.isClosedPath(a);if(!(m>e))continue;{const t=c?e:m-1;0===i.read(e)&&0===i.read(t)||(n||(i=i.clone(),n=!0),i.write(e,0),i.write(t,0))}const l=c?m+1:m;let u=e;for(let a=e;a<l;a++){const c=a===m?e:a;if(0===i.read(c)){if(a-u>1){r.push({from:u,to:a});const c=new p;for(;r.length>0;){const a=r.at(-1);r.pop(),o.setStartXY(t.getXY(a.from));const l=a.to===m?e:a.to;o.setEndXY(t.getXY(l));let u=s,f=-1;for(let e=a.from+1,s=a.to;e<s;e++){const s=t.getXY(e),i=o.getClosestCoordinate(s,!1);o.queryCoord2D(i,c);const n=p.sqrDistance(c,s);u<n&&(u=n,f=e)}f>=0?(n||(i=i.clone(),n=!0),i.write(f,0),f-a.from>1&&r.push({from:a.from,to:f}),a.to-f>1&&r.push({from:f,to:a.to})):h=!0}}u=c}}}if(!h)return t;const m=A(t,i,1);return m.dropAttribute(10),m}function A(t,e,s){const i=t.createInstance(),n=new l;for(let o=0,r=t.getPathCount();o<r;o++){let r=!0,h=0,m=0;const a=t.getPathStart(o),c=t.getPathEnd(o);let l=!0;for(let u=a;u<c;u++){e.read(u)===s?(!l&&m>0&&(i.addSegmentsFromPath(t,o,h-a,m,r),m=0),l=!0):l?(l=!1,t.getPointByVal(u,n),r?(i.startPathPoint(n),r=!1):i.lineToPoint(n),h=u):m++}m>0&&i.addSegmentsFromPath(t,o,h-a,m,r)}return i}const Y=8;function O(t,e){const s=.5;for(let i=0;i<t;i++){let n=Math.ceil(i/2)/(t+1);i%2!=0&&(n=-n);const o=s+n;e[i]=o}}function H(t){if(!t)return!1;const e=t.getCoordinateSystemType();return 2===e||1===e}function j(t,e,s,i,n,o,r,h,m,a,c,l,u){const f=t.createInstance();f.addAttribute(10);const _=t.querySegmentIterator(),d=[],p=[],P=new g,T=t.getDescription().getAttributeCount()>1,b=new lt(e,s,i,n,o,r,h,a,c,l,T?p:null,d,u);for(;_.nextPath();)for(;_.hasNextSegment();){const t=_.nextSegment(),e=t.getStartXY(),s=t.getEndXY(),i=e.compare(s)>0,n=J(i,t,P);d.length=0,p.length=0;if(!b.densifySegment(_.isFirstSegmentInPath(),n))return null;i&&K(T?p:null,d),d.at(-1).setCoordsPoint2D(t.getEndXY());const o=f.getPointCount();if(T){const e=J(i,t,P);U(_.isFirstSegmentInPath(),_.isLastSegmentInPath()&&!_.isPathClosed(),t,e,p,d,f)}else B(_.isFirstSegmentInPath(),_.isLastSegmentInPath()&&!_.isPathClosed(),d,f);if(b.needsPostFiltering()){f.addAttribute(10);const t=f.getAttributeStreamRef(10);for(let e=1,s=d.length-1;e<s;e++)t.write(e+o,1)}}return f}function B(t,e,s,i){t&&i.insertPath2D(-1,null,0,0,!0);const n=i.getPathCount()-1;e?i.insertPointsFromPoints(n,-1,s,0,s.length,!0):i.insertPointsFromPoints(n,-1,s,0,s.length-1,!0)}function U(t,e,s,i,n,o,r){r.reserve(r.getPointCount()+o.length-1);const h=new l;if(s.queryStart(h),t?r.startPathPoint(h):r.lineToPoint(h),o.length>2){const t=i.calculateLength2D();for(let e=1;e<o.length-1;e++){const s=i.lengthToT(n[e]*t);i.queryCoord(s,h),h.setXY(o[e]),r.lineToPoint(h)}}e&&(s.queryEnd(h),r.lineToPoint(h))}function W(t){const e=new f({vd:t.getDescription()});return e.addSegment(t,!0),e}function Q(t,e){const s=e.getInputSR(),i=e.getOutputSR(),n=new p;2===s.getCoordinateSystemType()?(n.setCoordsPoint2D(t),v(s,0,[n],1)):n.setCoordsPoint2D(t);const o=new p;o.setCoordsPoint2D(n),G(e,[o],null,1,!1);const r=new p;return 2===i.getCoordinateSystemType()?(r.setCoordsPoint2D(o),z(i,[r],1,!1)):r.setCoordsPoint2D(o),r}function V(t,e,s,i,n,o,r,h){if(n){const n=o.width(),m=.5*n;if(i){const i=.25*n;let o=!1;const a=new p,c=new p;if(Math.abs(t.y)===i?(a.setCoords(s.x,t.y),c.setCoordsPoint2D(s),o=!0):Math.abs(s.y)===i&&(c.setCoords(t.x,s.y),a.setCoordsPoint2D(t),o=!0),Math.abs(e.y)===i&&(o||(a.setCoordsPoint2D(t),c.setCoordsPoint2D(s),o=!0),a.x=e.x),o)return ot(e,a,m,n,r),ot(e,c,m,n,h),!0}let a=0;t.x-e.x>m&&s.x-e.x>m?a-=n:e.x-t.x>m&&e.x-s.x>m&&(a+=n),Math.abs(e.x-(t.x+a))<m?(r.setCoordsPoint2D(t),ot(r,s,m,n,h),r.x+=a,h.x+=a):(r.setCoordsPoint2D(s),ot(r,t,m,n,h),r.x+=a,h.x+=a)}else r.setCoordsPoint2D(t),h.setCoordsPoint2D(s);return!1}function J(t,e,s){return t?(s.create(e.getGeometryType()),e.copyTo(s.get()),s.get().reverse(),s.get()):e}function K(t,e){e.reverse(),null!==t&&t.reverse()}function Z(t,e,s,i){const n=.5*(i.getStartX()+i.getEndX());if(n-s>t){const t=new T;t.setShiftCoords(-e,0),i.applyTransformation(t)}else if(s-n>t){const t=new T;t.setShiftCoords(e,0),i.applyTransformation(t)}}function $(t,e,s,i,n,o,r,h,m){const a=[!1];r&&tt(t,e,s,i,n,o,!0,h,a,m);let c=t;return a[0]||(c=tt(c,e,s,i,n,o,!1,h,null,m)),c=it(c,n,o,c!==t),c}function tt(t,e,s,i,n,o,h,m,a,c){if(h&&(a[0]=!1),null==s)return t;const l=new u,f=new u;s.queryEnvelope(l),t.queryEnvelope(f);const g=t.getGeometryType(),_=s.getGeometryType(),d=e.getTolerance(0);if(!n){if(h)return a[0]=st(t,s,e,i,c),null;let n;return n=i?_===r.enumEnvelope?k(t,l,d,m,c):(new y).execute(t,s,e,c):(new w).execute(t,s,e,c),n===s&&(n=s.clone()),n}const p=o.width(),P=p*Math.ceil(l.width()/p);let b=null;if(i){let o=nt(t,s,n,P),D=0;const S=new T;do{let n=null;if(_===r.enumEnvelope){const r=s.clone();if(S.setShiftCoords(o*P,0),r.applyTransformation(S),h){if(a[0]=st(t,r,e,i,c),!a[0])return null}else{const e=new u;r.queryEnvelope(e),n=k(t,e,d,m,c)}}else{const r=t.clone();if(S.setShiftCoords(-o*P,0),r.applyTransformation(S),h){if(a[0]=st(r,s,e,i,c),!a[0])return null}else n=(new y).execute(r,s,e,c),n===s&&(n=s.clone())}if(!h){if(n.isEmpty())continue;if(g===r.enumPolygon){const t=new u;if(n.queryEnvelope(t),t.width()<=d)continue}_===r.enumEnvelope&&(S.setShiftCoords(-o*P,0),n===t&&(n=n.clone()),n.applyTransformation(S)),null===b?b=n===t?n.clone():n:b.add(n,!1)}D++}while(l.xmin+ ++o*P<f.xmax);if(h)return null;null===b&&(b=t.createInstance()),g===r.enumPolygon&&D>1&&p-f.width()<=10*d&&(b=(new x).execute(b,e,!0,c))}else{let o=nt(t,s,n,P);if(b=t.clone(),0!==o){const t=new T;t.setShiftCoords(-o*P,0),b.applyTransformation(t)}do{if(h){if(a[0]=st(b,s,e,i,c),!a[0])return null}else if(b=(new w).execute(b,s,e,c),b===s&&(b=s.clone()),b.isEmpty())break;const t=new T;t.setShiftCoords(-P,0),b.applyTransformation(t)}while(l.xmin+ ++o*P<f.xmax);if(h)return null;if(!b.isEmpty()&&0!==o){const t=new T;t.setShiftCoords(o*P,0),b.applyTransformation(t)}}return b}function et(t,e,s,i,n,o,r){const h=[!1];return tt(t,s,e,i,n,o,!0,Number.NaN,h,r),h[0]}function st(t,e,s,i,n){let o;if(e.getGeometryType()===r.enumPolygon)if(i){o=E(e,t,s,64,n)}else{o=E(e,t,s,4,n)}else if(i){const s=new u,i=new u;e.queryEnvelope(s),t.queryEnvelope(i);o=s.containsEnvelope(i)}else{o=E(e,t,s,4,n)}return o}function it(t,e,s,i){let n;if(!e)return t;const o=s.getCenter().x,r=s.width(),h=.5*r,m=new u;t.queryEnvelope(m);const a=m.getCenter().x;let c=0;if(a-o>h){c=-Math.ceil((a-o-h)/r)*r}else if(o-a>h){c=Math.ceil((o-a-h)/r)*r}if(0!==c){n=i?t:t.clone();const e=new T;e.setShiftCoords(c,0),n.applyTransformation(e)}else n=t;return n}function nt(t,e,s,i){if(!s)return 0;let n=0;const o=new u;e.queryEnvelope(o);const r=new u;t.queryEnvelope(r);const h=o.xmin+i;for(;h+i+n*i>r.xmin;)n--;for(;h+n*i<r.xmin;)n++;return n}function ot(t,e,s,i,n){e.x-t.x>s?n.setCoords(e.x-i,e.y):t.x-e.x>s?n.setCoords(e.x+i,e.y):n.setCoordsPoint2D(e)}function rt(t,e,s,i,n,o,r){Math.abs(t.y)===s?(o.setCoords(e.x,t.y),r.setCoordsPoint2D(e)):Math.abs(e.y)===s?(o.setCoordsPoint2D(t),r.setCoords(t.x,e.y)):(o.setCoordsPoint2D(t),ot(o,e,i,n,r))}function ht(t){return t.getUnit().getUnitToBaseFactor()}function mt(t){return t.getUnit().getUnitToBaseFactor()}function at(t){return t.getPECoordSys().getDatum().getSpheroid().getAxis()}function ct(t,e,s){return s<=.5?t+(e-t)*s:e-(e-t)*(1-s)}class lt{leftFromDensifiedPoint=new p;rightFromDensifiedPoint=new p;cutFromDensifiedPoint=new p;midFromDensifiedPoint=new p;leftToDensifiedPoint=new p;rightToDensifiedPoint=new p;cutToDensifiedPoint=new p;midToDensifiedPoint=new p;line=new _;leftGcsToDensifiedPoint=new p;rightGcsToDensifiedPoint=new p;cutGcsToDensifiedPoint=new p;midGcsToDensifiedPoint=new p;bSrToIsGcs=!1;bIsCurve=!1;leftFactor=0;rightFactor=0;bIsFirstInPath=!1;rectifiedSegment=null;transform=null;bIsPannableFrom=!1;pannableExtentFrom=new u;bIsPannableTo=!1;bNeedPostFiltering=!1;pannableExtentTo=new u;transform2=null;pHorizon2Info=null;pSplitLines2Info=null;minLengthInSrFrom=0;maxDeviationInSrToSq=0;cutFactor=0;midFactor=0;pDensifiedFactors=null;pDensifiedPoints=[];progressTracker;rightFromDensifiedPointsStack=[];rightToDensifiedPointsStack=[];rightGcsToDensifiedPointsStack=[];rightFactorsStack=[];projCurveSegment=new g;n=0;bCheckIfNoDensificationNeededForCurve=!1;scalars=P(Y-1,Number.NaN);checkSegment(){for(let t=0;t<this.n;t++){if(null!==this.pSplitLines2Info&&this.pSplitLines2Info.hasSplitLines()&&!this.bCheckIfNoDensificationNeededForCurve){const t=this.pSplitLines2Info.getSplitLineFactorEx(this.rectifiedSegment,this.leftFactor,this.rightFactor,this.leftGcsToDensifiedPoint,this.rightGcsToDensifiedPoint,this.progressTracker);if(Number.isNaN(t))return-1;if(-1!==t&&this.leftFactor<t&&t<this.rightFactor)return this.cutFactor=t,this.cutFromDensifiedPoint.assign(this.rectifiedSegment.getCoord2D(this.cutFactor)),this.cutToDensifiedPoint.assign(Q(this.cutFromDensifiedPoint,this.transform)),this.cutGcsToDensifiedPoint.setCoordsPoint2D(this.cutToDensifiedPoint),this.cutToDensifiedPoint.assign(Q(this.cutGcsToDensifiedPoint,this.transform2)),this.midFactor=this.cutFactor,this.midFromDensifiedPoint.setCoordsPoint2D(this.cutFromDensifiedPoint),this.midToDensifiedPoint.setCoordsPoint2D(this.cutToDensifiedPoint),this.midGcsToDensifiedPoint.setCoordsPoint2D(this.cutGcsToDensifiedPoint),1}if(this.cutFactor=ct(this.leftFactor,this.rightFactor,this.scalars[t]),this.cutFromDensifiedPoint.assign(this.rectifiedSegment.getCoord2D(this.cutFactor)),this.cutToDensifiedPoint.assign(Q(this.cutFromDensifiedPoint,this.transform)),null!==this.transform2&&(this.cutGcsToDensifiedPoint.setCoordsPoint2D(this.cutToDensifiedPoint),this.cutToDensifiedPoint.assign(Q(this.cutGcsToDensifiedPoint,this.transform2))),0===t&&(this.midFactor=this.cutFactor,this.midFromDensifiedPoint.setCoordsPoint2D(this.cutFromDensifiedPoint),this.midToDensifiedPoint.setCoordsPoint2D(this.cutToDensifiedPoint),this.midGcsToDensifiedPoint.setCoordsPoint2D(this.cutGcsToDensifiedPoint)),this.bIsPannableFrom&&!this.bCheckIfNoDensificationNeededForCurve&&Math.abs(this.leftFromDensifiedPoint.x-this.rightFromDensifiedPoint.x)>=.25*this.pannableExtentFrom.width())return 1;let e;if(this.bCheckIfNoDensificationNeededForCurve){const t=this.projCurveSegment.get().getClosestCoordinate(this.cutToDensifiedPoint,!1),s=this.projCurveSegment.get().getCoord2D(t);e=p.sqrDistance(this.cutToDensifiedPoint,s)}else{const s=new p,i=new p,n=V(this.leftToDensifiedPoint,this.cutToDensifiedPoint,this.rightToDensifiedPoint,this.bSrToIsGcs,this.bIsPannableTo,this.pannableExtentTo,s,i);this.line.setStartXY(s),this.line.setEndXY(i);const o=this.line.getClosestCoordinate(this.cutToDensifiedPoint,!0);if(n||t>0||Math.abs(o-this.scalars[t])<.3){const t=this.line.getCoord2D(o);e=p.sqrDistance(this.cutToDensifiedPoint,t)}else e=2*this.maxDeviationInSrToSq,this.bNeedPostFiltering=!0}if(e>this.maxDeviationInSrToSq)return this.bCheckIfNoDensificationNeededForCurve=!1,1}return 0}constructor(t,e,s,i,n,o,r,h,m,a,c,l,u){this.progressTracker=u,this.transform=t,this.bIsPannableFrom=e,this.pannableExtentFrom.assign(s),this.bIsPannableTo=i,this.pannableExtentTo.assign(n),this.transform2=o,this.pHorizon2Info=r,this.pSplitLines2Info=h,this.minLengthInSrFrom=m,this.maxDeviationInSrToSq=a,this.pDensifiedFactors=c,this.pDensifiedPoints=l,this.progressTracker=u,this.bNeedPostFiltering=!1}needsPostFiltering(){return this.bNeedPostFiltering}densifySegment(t,e){if(this.bIsFirstInPath=t,this.rectifiedSegment=e,this.leftGcsToDensifiedPoint.setNAN(),this.rightGcsToDensifiedPoint.setNAN(),this.cutGcsToDensifiedPoint.setNAN(),this.midGcsToDensifiedPoint.setNAN(),this.bSrToIsGcs=null!=this.transform2?1===this.transform2.getOutputSR().getCoordinateSystemType():1===this.transform.getOutputSR().getCoordinateSystemType(),this.bIsCurve=this.rectifiedSegment.isCurve(),this.leftFactor=0,this.rightFactor=1,this.leftFromDensifiedPoint.assign(this.rectifiedSegment.getStartXY()),this.rightFromDensifiedPoint.assign(this.rectifiedSegment.getEndXY()),this.leftToDensifiedPoint.assign(Q(this.leftFromDensifiedPoint,this.transform)),this.rightToDensifiedPoint.assign(Q(this.rightFromDensifiedPoint,this.transform)),null!==this.transform2&&(this.leftGcsToDensifiedPoint.setCoordsPoint2D(this.leftToDensifiedPoint),this.rightGcsToDensifiedPoint.setCoordsPoint2D(this.rightToDensifiedPoint),this.leftToDensifiedPoint.assign(Q(this.leftGcsToDensifiedPoint,this.transform2)),this.rightToDensifiedPoint.assign(Q(this.rightGcsToDensifiedPoint,this.transform2)),this.bIsFirstInPath&&!this.pHorizon2Info.isPointStartInHorizon(this.leftGcsToDensifiedPoint,this.progressTracker)))return!1;this.rightFromDensifiedPointsStack.length=0,this.rightToDensifiedPointsStack.length=0,this.rightGcsToDensifiedPointsStack.length=0,this.rightFactorsStack.length=0,this.rightFromDensifiedPointsStack.push(this.rightFromDensifiedPoint.clone()),this.rightToDensifiedPointsStack.push(this.rightToDensifiedPoint.clone()),this.rightFactorsStack.push(this.rightFactor),null!=this.transform2&&this.rightGcsToDensifiedPointsStack.push(this.rightGcsToDensifiedPoint.clone()),null!==this.pDensifiedPoints&&this.pDensifiedPoints.push(this.leftFromDensifiedPoint.clone()),null!==this.pDensifiedFactors&&this.pDensifiedFactors.push(this.leftFactor),this.bIsCurve?this.rectifiedSegment.getGeometryType()===r.enumBezier?this.n=Y-1:this.n=5:this.n=3,O(this.n,this.scalars);const s=this.rectifiedSegment.calculateLength2D();if(this.bCheckIfNoDensificationNeededForCurve=!1,this.bIsCurve){const t=new f({vd:this.rectifiedSegment.getDescription()});let e=(new b).execute(t,this.transform,this.progressTracker);if(null!==this.transform2){const t=new u;if(e.queryEnvelope(t),!this.pHorizon2Info.isEnvelopeInHorizon(t,this.progressTracker))return!1;e=(new b).execute(e,this.transform2,this.progressTracker)}e.getSegmentBuffer(0,this.projCurveSegment,!1),this.bCheckIfNoDensificationNeededForCurve=!0}for(;this.rightFromDensifiedPointsStack.length>0;){let t=!1;if(this.cutFactor=Number.NaN,this.midFactor=Number.NaN,this.midFromDensifiedPoint.setNAN(),this.midToDensifiedPoint.setNAN(),(this.rightFactor-this.leftFactor)*s>this.minLengthInSrFrom){const e=this.checkSegment();if(-1===e)return!1;t=0!==e}if(t)this.rightFromDensifiedPoint.setCoordsPoint2D(this.midFromDensifiedPoint),this.rightToDensifiedPoint.setCoordsPoint2D(this.midToDensifiedPoint),this.rightFactor=this.midFactor,this.rightFromDensifiedPointsStack.push(this.rightFromDensifiedPoint.clone()),this.rightToDensifiedPointsStack.push(this.rightToDensifiedPoint.clone()),this.rightFactorsStack.push(this.rightFactor),null!==this.transform2&&(this.rightGcsToDensifiedPoint.setCoordsPoint2D(this.midGcsToDensifiedPoint),this.rightGcsToDensifiedPointsStack.push(this.rightGcsToDensifiedPoint.clone()));else{if(null!==this.transform2&&!this.pHorizon2Info.isAdjoiningLineInHorizon(this.leftGcsToDensifiedPoint,this.rightGcsToDensifiedPoint,this.progressTracker))return!1;if(this.rightFromDensifiedPointsStack.pop(),this.rightToDensifiedPointsStack.pop(),this.rightFactorsStack.pop(),null!==this.transform2&&this.rightGcsToDensifiedPointsStack.pop(),null!==this.pDensifiedPoints&&this.pDensifiedPoints.push(this.rightFromDensifiedPoint.clone()),null!==this.pDensifiedFactors&&this.pDensifiedFactors.push(this.rightFactor),this.rightFromDensifiedPointsStack.length>0){this.leftFromDensifiedPoint.setCoordsPoint2D(this.rightFromDensifiedPoint),this.leftToDensifiedPoint.setCoordsPoint2D(this.rightToDensifiedPoint),this.leftFactor=this.rightFactor;const t=this.rightFromDensifiedPointsStack.at(-1),e=this.rightToDensifiedPointsStack.at(-1);if(this.rightFromDensifiedPoint.setCoordsPoint2D(t),this.rightToDensifiedPoint.setCoordsPoint2D(e),this.rightFactor=this.rightFactorsStack.at(-1),null!==this.transform2){this.leftGcsToDensifiedPoint.setCoordsPoint2D(this.rightGcsToDensifiedPoint);const t=this.rightGcsToDensifiedPointsStack.at(-1);this.rightGcsToDensifiedPoint.setCoordsPoint2D(t)}}}}return!0}}class ut{getOperatorType(){return 10315}supportsCurves(){return!1}accelerateGeometry(t,e,s){return!1}canAccelerateGeometry(t){return!1}executeMany(t,e,s,i,n,o){return q(s)?new ft(t,e,s,i,n,o):(new b).executeMany(t,s,o)}execute(t,e,s,i,n){if(!q(e))return(new b).execute(t,e,n);const o=new M;return o.prepare(e,null,n),o.execute(t,s,i,n)}}class ft extends t{m_geometries;m_geometriesExtent;m_transform;m_spp=null;m_minSegmentLengthInDegrees;m_maxDeviationInSrTo;m_progressTracker;m_index=-1;constructor(t,s,i,n,o,r){super(),t||e(""),this.m_progressTracker=r,this.m_geometries=t,this.m_geometriesExtent=s?s.clone():null,this.m_transform=i,this.m_minSegmentLengthInDegrees=n,this.m_maxDeviationInSrTo=o}tock(){return!0}getRank(){return 1}next(){this.m_spp||(this.m_spp=new M,this.m_spp.prepare(this.m_transform,this.m_geometriesExtent,this.m_progressTracker));const t=this.m_geometries.next();return s(t),i(t),null!=t?(this.m_index=this.m_geometries.getGeometryID(),this.m_spp.execute(t,this.m_minSegmentLengthInDegrees,this.m_maxDeviationInSrTo,this.m_progressTracker)):null}getGeometryID(){return this.m_index}}export{ut as OperatorShapePreservingProject};
|
|
2
|
+
import{G as t}from"./GeometryCursor.js";import{a as e,c as s,p as i,q as n,g as o,G as r,h,j as m,t as a}from"./Geometry.js";import{E as c,P as l}from"./Envelope.js";import{Envelope2D as u}from"./Envelope2D.js";import{a as f,S as g,L as _}from"./MultiPathImpl.js";import{n as d,P as p,d as P}from"./Point2D.js";import{T}from"./Transformation2D.js";import{O as b,d as D,Q as S,aq as I,f as x,e as F,m as C,g as N,y,x as w,w as E,a8 as v,ar as G,a7 as z}from"./SpatialReference.js";import{c as k}from"./OperatorClip.js";function q(t){const e=t.getInputSR(),s=t.getOutputSR();let i=!1;do{if(e.equals(s)){i=!1;break}if(!H(e)||!H(s)){i=!1;break}if(2===e.getCoordinateSystemType()){i=!0;break}if(2===s.getCoordinateSystemType()){i=!0;break}const n=t.getGeographicTransformations();if(null!==n&&n.count()>0){i=!0;break}}while(0);return i}class L{m_horizon2;m_sr;m_bInclusive2;m_pannableExtent;m_horizon2Env=new u;m_gcs360;m_gcs180;m_gcs90;m_pannableFactor;m_period;m_gcsTolerance;m_qtIter;m_segIter;constructor(t,e,s,i){this.m_horizon2=t,this.m_sr=e,this.m_bInclusive2=s,this.m_pannableExtent=i.clone(),this.m_segIter=null,this.m_qtIter=null,null!==t?(t.queryEnvelope(this.m_horizon2Env),this.m_gcs360=i.width(),this.m_gcs180=.5*this.m_gcs360,this.m_gcs90=.25*this.m_gcs360,this.m_pannableFactor=1,this.m_horizon2Env.width()-this.m_gcs360>0&&(this.m_pannableFactor+=Math.ceil((this.m_horizon2Env.width()-this.m_gcs360)/this.m_gcs360)),this.m_period=this.m_gcs360):(this.m_horizon2Env.setEmpty(),this.m_gcs360=Number.NaN,this.m_gcs180=Number.NaN,this.m_gcs90=Number.NaN,this.m_pannableFactor=Number.NaN,this.m_period=Number.NaN),this.m_gcsTolerance=null!=e?e.getTolerance(0):Number.NaN}isPointStartInHorizon(t,e){if(!this.m_horizon2)return!0;let s=nt(new l(t),this.m_horizon2,!0,this.m_period);do{const e=t.clone();if(e.x-=s*this.m_period,this.m_horizon2.getGeometryType()===r.enumPolygon){let t;if(t=this.m_horizon2Env.contains(e)?N(this.m_horizon2,e,0):0,this.m_bInclusive2){if(0===t)return!1}else if(1===t)return!1}else{const t=this.m_horizon2Env.contains(e);if(this.m_bInclusive2){if(!t)return!1}else if(t)return!1}}while(this.m_horizon2Env.xmin+ ++s*this.m_period<t.x);return!0}isAdjoiningLineInHorizon(t,e,s){if(!this.m_horizon2)return!0;const i=new p,n=new p;rt(t,e,this.m_gcs90,this.m_gcs180,this.m_gcs360,i,n);const h=Math.max(i.x,n.x),m=new _;m.setStart2D(i),m.setEnd2D(n);let a=nt(m,this.m_horizon2,!0,this.m_period);const c=!1;do{const t=i.clone(),e=n.clone();if(t.x-=a*this.m_period,e.x-=a*this.m_period,this.m_horizon2.getGeometryType()===r.enumPolygon){const s=new _;s.setStartXY(t),s.setEndXY(e);const i=new u,n=new u;if(s.queryEnvelope(i),n.setCoords({env2D:i}),n.inflateCoords(this.m_gcsTolerance,this.m_gcsTolerance),this.m_horizon2Env.isIntersecting(n)){const t=this.m_horizon2.getImpl(),e=t.getAccelerators();if(null!==e){null!==e.getRasterizedGeometry()&&o(0)}{let i=null;if(null!==e&&(i=e.getQuadTree()),null!==i){this.m_qtIter||(this.m_qtIter=i.getIteratorForQT()),this.m_qtIter.resetIterator(s,this.m_gcsTolerance),this.m_segIter||(this.m_segIter=t.querySegmentIterator());for(let t=this.m_qtIter.next();-1!==t;t=this.m_qtIter.next()){const e=i.getElement(t);this.m_segIter.resetToVertex(e,-1);if(this.m_segIter.nextSegment().isIntersecting(s,this.m_gcsTolerance))return!1}}else for(this.m_segIter||(this.m_segIter=t.querySegmentIterator()),this.m_segIter.resetToFirstPath();this.m_segIter.nextPath();)for(;this.m_segIter.hasNextSegment();){const t=this.m_segIter.nextSegment(),e=new u;if(t.queryEnvelope(e),e.isIntersecting(n)&&t.isIntersecting(s,this.m_gcsTolerance))return!1}}}}else if(this.m_bInclusive2){const s=this.m_horizon2Env.contains(t),i=this.m_horizon2Env.contains(e);if(s&&i)return!0}else{const s=this.m_horizon2Env.clone();s.inflateCoords(this.m_gcsTolerance,this.m_gcsTolerance);if(!(0===s.clipLine(t,e)))return!1}}while(this.m_horizon2Env.xmin+ ++a*this.m_period<h);return!this.m_bInclusive2||c}isEnvelopeInHorizon(t,e){if(!this.m_horizon2)return!0;const s=new c({env2D:t});let i=nt(s,this.m_horizon2,!0,this.m_period);do{const n=t.clone();n.move(-i*this.m_period,0),s.setCoords(n.xmin,n.ymin,n.xmax,n.ymax);if(!st(s,this.m_horizon2,this.m_sr,this.m_bInclusive2,e))return!1}while(this.m_horizon2Env.xmin+ ++i*this.m_period<t.xmax);return!0}}class R{m_splitLines2=null;m_transform1;m_pannableExtent;m_gcs360;m_gcs180;m_gcs90;m_gcsTolerance;m_halfGcsTolerance;m_gcsToleranceSq;m_scalars=[];m_splitIter=null;constructor(t,e,s){this.m_splitLines2=t,this.m_transform1=e,this.m_pannableExtent=s.clone(),this.m_gcs360=s.width(),this.m_gcs180=.5*this.m_gcs360,this.m_gcs90=.25*this.m_gcs360,null!==e?(this.m_gcsTolerance=this.m_transform1.getOutputSR().getTolerance(0),this.m_halfGcsTolerance=.5*this.m_gcsTolerance,this.m_gcsToleranceSq=this.m_gcsTolerance*this.m_gcsTolerance):(this.m_gcsTolerance=Number.NaN,this.m_halfGcsTolerance=Number.NaN,this.m_gcsToleranceSq=Number.NaN)}hasSplitLines(){return null!=this.m_splitLines2}getSplitLineFactorEx(t,e,s,i,n,o){const r=new p,h=new p;rt(i,n,this.m_gcs90,this.m_gcs180,this.m_gcs360,r,h);const m=new _;for(m.setStartXY(r),m.setEndXY(h),this.m_splitIter?this.m_splitIter.resetToFirstPath():this.m_splitIter=this.m_splitLines2.getImpl().querySegmentIterator();this.m_splitIter.nextPath();)for(;this.m_splitIter.hasNextSegment();){const i=this.m_splitIter.nextSegment(),n=.5*(i.getStartX()+i.getEndX());Z(this.m_gcs180,this.m_gcs360,n,m);const r=new u;m.queryEnvelope(r),r.inflateCoords(this.m_gcsTolerance,this.m_gcsTolerance);const h=new u;if(i.queryEnvelope(h),!r.isIntersecting(h))continue;this.m_scalars.length<2&&(this.m_scalars.length=2);if(1===m.intersect(i,null,this.m_scalars,null,this.m_gcsTolerance)&&(this.m_scalars[0]>0&&this.m_scalars[0]<1)){const n=ct(e,s,this.m_scalars[0]),r=Q(t.getCoord2D(n),this.m_transform1);if(i.isIntersectingPoint(r,this.m_halfGcsTolerance))return n;return this.getSplitLineFactor(t,e,s,i,o)}}return-1}getSplitLineFactor(t,e,s,i,n){let o=e,r=s;const h=.5*(i.getStartX()+i.getEndX()),m=new _,a=t.getCoord2D(o),c=t.getCoord2D(r),l=Q(a,this.m_transform1),u=Q(c,this.m_transform1);for(;o<r;){const e=new p,s=new p;rt(l,u,this.m_gcs90,this.m_gcs180,this.m_gcs360,e,s),m.setStartXY(e),m.setEndXY(s),Z(this.m_gcs180,this.m_gcs360,h,m);const n=p.sqrDistance(m.getStartXY(),m.getEndXY());if(n<=this.m_gcsToleranceSq)break;if(Number.isNaN(n))return Number.NaN;let f=ct(o,r,this.m_scalars[0]);if(o<f&&f<r||(f=.5*(r+o)),o===f||f===r)return f;const g=t.getCoord2D(f),_=Q(g,this.m_transform1),d=new p;rt(l,_,this.m_gcs90,this.m_gcs180,this.m_gcs360,e,d),m.setStartXY(e),m.setEndXY(d),Z(this.m_gcs180,this.m_gcs360,h,m);let P=m.intersect(i,null,this.m_scalars,null,this.m_halfGcsTolerance);if(0!==P){if(1===this.m_scalars[0])return f;r=f,c.setCoordsPoint2D(g),u.setCoordsPoint2D(_)}else{if(rt(_,u,this.m_gcs90,this.m_gcs180,this.m_gcs360,d,s),m.setStartXY(d),m.setEndXY(s),Z(this.m_gcs180,this.m_gcs360,h,m),P=m.intersect(i,null,this.m_scalars,null,this.m_halfGcsTolerance),0===P)return f;if(0===this.m_scalars[0])return f;o=f,a.setCoordsPoint2D(g),l.setCoordsPoint2D(_)}}return.5*(r+o)}}class M{m_bPrepared=!1;m_bNeedsShapePreservingProject=!1;m_inputTransform=null;m_transform1=null;m_transform2=null;m_extentFrom=null;m_horizon1=null;m_horizon2=null;m_pannableExtentFrom=new u;m_pannableExtentTo=new u;m_pannableExtentGcsTo=new u;m_bClipTopBottomFrom=!1;m_bNeedsGeoTransform=!1;m_bIsPannableFrom=!1;m_bIsPannableTo=!1;m_bInclusive1=!1;m_bInclusive2=!1;m_bSrFromIsPcs=!1;m_bSrToIsPcs=!1;m_fromTolerance=Number.NaN;m_toTolerance=Number.NaN;m_gcsToTolerance=Number.NaN;m_aFrom=Number.NaN;m_mpuFrom=Number.NaN;m_rpuFrom=Number.NaN;m_rpuGcsTo=Number.NaN;m_aTo=Number.NaN;m_mpuTo=Number.NaN;m_stages=0;constructor(){}prepare(t,s,i){this.m_bPrepared&&n(""),t||e("");const r=t.getInputSR(),h=t.getOutputSR();H(r)&&H(h)||e("shape preserving project requires PCS or GCS");const m=r.getCoordinateSystemType(),a=h.getCoordinateSystemType();this.m_bSrFromIsPcs=2===m,this.m_bSrToIsPcs=2===a;let c=null,l=null,u=null,f=null;this.m_bSrFromIsPcs?(c=r,u=r.getGCS(),this.m_aFrom=at(u),this.m_mpuFrom=mt(c),this.m_rpuFrom=Number.NaN):(u=r,this.m_rpuFrom=ht(u),this.m_aFrom=Number.NaN),this.m_bSrToIsPcs?(l=h,f=h.getGCS(),this.m_aTo=at(f),this.m_mpuTo=mt(l)):(f=h,this.m_aTo=Number.NaN,this.m_mpuTo=Number.NaN),this.m_rpuGcsTo=ht(f);const g=t.getGeographicTransformations();this.m_bNeedsGeoTransform=null!==g&&g.count()>0;const _=r.equals(h);if(this.m_bNeedsShapePreservingProject=!_&&(this.m_bSrFromIsPcs||this.m_bSrToIsPcs||this.m_bNeedsGeoTransform),!this.m_bNeedsShapePreservingProject)return this.m_inputTransform=t,this.m_extentFrom=s?s.clone():null,void(this.m_bPrepared=!0);if(this.m_bIsPannableFrom=r.isPannable(),this.m_bIsPannableTo=h.isPannable(),this.m_bIsPannableFrom&&(this.m_pannableExtentFrom=r.getPannableExtent()),this.m_bIsPannableTo&&(this.m_pannableExtentTo=h.getPannableExtent()),this.m_bSrToIsPcs){this.m_pannableExtentGcsTo=f.getPannableExtent();const t=l.getCentralMeridian(),e=this.m_pannableExtentGcsTo.getCenter();e.x=t,this.m_pannableExtentGcsTo.centerAt(e)}else this.m_pannableExtentGcsTo=this.m_pannableExtentTo.clone();this.m_fromTolerance=r.getTolerance(0),this.m_toTolerance=h.getTolerance(0),this.m_gcsToTolerance=f.getTolerance(0);{const e=t.getExtendedParams(),n=e.clipWithInputHorizon,o=e.clipWithOutputHorizon;n&&this.setHorizon1(t,s,i),o&&this.setHorizon2(t,i),this.checkAndSetStages(t,i)}const d=F();d.setFlag(1073741824,!0),d.setFlag(536870912,!0);const p=C();if(p.clipWithInputHorizon=!1,p.clipWithOutputHorizon=!1,1===this.m_stages)this.m_transform1=D(!1,r,h,g,p,d);else if(2===this.m_stages){d.setFlag(2147483648,!0),this.m_transform1=D(!1,r,f,g,p,d);const t=F();this.m_transform2=D(!1,f,h,null,p,t)}else{o(null!=l),p.centralMeridianOfOutputGCS=l.getCentralMeridian(),this.m_transform1=D(!1,r,f,g,p,d);const t=F();t.setFlag(2147483648,!0),this.m_transform2=D(!1,f,h,null,p,t)}this.m_inputTransform=t,this.m_extentFrom=s?s.clone():null,this.m_bPrepared=!0}execute(t,e,s,i){this.m_bPrepared||n(""),o(!t.hasAttribute(10));return this.execute_(t,e,s,i)}checkIfNeedsReset(t,e){return o(0),!1}setHorizon1(t,e,s){const i=t.getInputSR();let n,o=null;const r=new u;if(this.m_bSrFromIsPcs){n=!0,o=i.getPCSHorizon(),o.queryEnvelope(r),this.m_bIsPannableFrom&&(o=new c({xmin:this.m_pannableExtentFrom.xmin,ymin:r.ymin,xmax:this.m_pannableExtentFrom.xmax,ymax:r.ymax}));let t=!1;null!=e&&(t=et(e,o,i,n,this.m_bIsPannableFrom,this.m_pannableExtentFrom,s)),t||(this.m_horizon1=o,this.m_bInclusive1=n)}else this.m_bClipTopBottomFrom=!0,this.m_bInclusive1=!0}setHorizon2(t,e){const s=t.getOutputSR();if(1===s.getCoordinateSystemType())return this.m_horizon2=null,void(this.m_bInclusive2=!1);let i=null;const n=new u,o=s.getGCSHorisonIsInclusive();i=s.getGCSHorizon(),i.queryEnvelope(n);const r=s.getCentralMeridian();if(this.m_bIsPannableTo){const t=new c({xmin:this.m_pannableExtentGcsTo.xmin,ymin:n.ymin,xmax:this.m_pannableExtentGcsTo.xmax,ymax:n.ymax});t.centerAt(r,0),i=t}this.m_horizon2=i,this.m_bInclusive2=o}checkAndSetStages(t,e){const s=t.getOutputSR().getGCSSplitLines();if(!this.m_horizon2&&!s)return void(this.m_stages=1);if(this.m_horizon2.getGeometryType()===r.enumEnvelope){const t=new u;this.m_horizon2.queryEnvelope(t);const e=t.width(),s=t.height();e>=d/this.m_rpuGcsTo&&s>=Math.PI/this.m_rpuGcsTo&&(this.m_horizon2=null)}if(this.m_horizon2||s){if(null!==this.m_horizon2&&!this.m_bNeedsGeoTransform&&!this.m_bSrFromIsPcs){const e=t.getOutputSR().getGCS();return t.getInputSR().equals(e)?(this.m_horizon1=this.m_horizon2,this.m_bInclusive1=this.m_bInclusive2,this.m_bClipTopBottomFrom=!1,this.m_horizon2=null,this.m_bInclusive2=!1,void(this.m_stages=1)):void(this.m_stages=2)}this.m_stages=3}else this.m_stages=1}execute_(t,e,n,o){if(!this.m_bNeedsShapePreservingProject)return(new b).execute(t,this.m_inputTransform,o);if(!t)return null;s(t),i(t);let a,c=t.getGeometryType();return h(c)?(a=W(t),c=r.enumPolyline):a=t,a.isEmpty()?a:m(c)?this.executeEx(t,e,n,o):(new b).execute(t,this.m_inputTransform,o)}executeEx(t,e,s,i){let n;t.hasNonLinearSegments()&&a(""),n=this.m_bIsPannableFrom?(new b).foldInto360Range(t,this.m_transform1.getInputSR()):t;let o,r=s;return r>0||(r=100*this.m_toTolerance),o=1===this.m_stages?this.executeGood(n,e,r,i):2===this.m_stages?this.executeBad(n,e,r,i):this.executeUgly(n,e,r,i),this.filterOverDensification(o,this.m_inputTransform.getOutputSR(),r,i)}executeGood(t,e,s,i){const n=s*s;let o,r;return o=e>0?this.getMinLengthInSrFrom(e):this.getMinLengthInSrFrom(1e-5),r=this.m_bClipTopBottomFrom?S(t,this.m_transform1.getInputSR()):$(t,this.m_transform1.getInputSR(),this.m_horizon1,this.m_bInclusive1,this.m_bIsPannableFrom,this.m_pannableExtentFrom,!0,Number.NaN,i),r=I(r,this.m_transform1.getOutputSR(),i),r=j(r,this.m_transform1,this.m_bIsPannableFrom,this.m_pannableExtentFrom,this.m_bIsPannableTo,this.m_pannableExtentTo,null,null,null,null,o,n,i),r=(new b).execute(r,this.m_transform1,i),r}executeBad(t,e,s,i){let n;n=e>0?e*(Math.PI/180/this.m_rpuGcsTo):Math.PI/180/this.m_rpuGcsTo*1e-5;const o=s*s;let r;return r=this.m_bClipTopBottomFrom?S(t,this.m_transform1.getInputSR()):t,r=(new b).execute(r,this.m_transform1,i),r=$(r,this.m_transform2.getInputSR(),this.m_horizon2,this.m_bInclusive2,!0,this.m_pannableExtentGcsTo,!0,Number.NaN,i),r=I(r,this.m_transform2.getOutputSR(),i),r=j(r,this.m_transform2,!0,this.m_pannableExtentGcsTo,this.m_bIsPannableTo,this.m_pannableExtentTo,null,null,null,null,n,o,i),r=(new b).execute(r,this.m_transform2,i),r}executeUgly(t,e,s,i){const n=s*s;let o;o=e>0?this.getMinLengthInSrFrom(e):this.getMinLengthInSrFrom(1e-5);let r=null;r=this.m_bClipTopBottomFrom?S(t,this.m_transform1.getInputSR()):$(t,this.m_transform1.getInputSR(),this.m_horizon1,this.m_bInclusive1,this.m_bIsPannableFrom,this.m_pannableExtentFrom,!0,Number.NaN,i);let h=r;const m=new L(this.m_horizon2,this.m_transform2.getInputSR(),this.m_bInclusive2,this.m_pannableExtentGcsTo),a=this.m_transform2.getOutputSR().getGCSSplitLines(),c=new R(a,this.m_transform1,this.m_pannableExtentGcsTo);if(r=j(r,this.m_transform1,this.m_bIsPannableFrom,this.m_pannableExtentFrom,this.m_bIsPannableTo,this.m_pannableExtentTo,this.m_transform2,m,this.m_pannableExtentGcsTo,c,o,n,i),null!==r){h=null,r=(new b).execute(r,this.m_transform1,i);const t=Math.PI/180/this.m_rpuGcsTo*2;return r=$(r,this.m_transform2.getInputSR(),this.m_horizon2,this.m_bInclusive2,!0,this.m_pannableExtentGcsTo,!1,t,i),r=(new b).execute(r,this.m_transform2,i),r}let l=Number.NaN;l=s>0?s:100*this.m_toTolerance,l/=this.m_rpuGcsTo*this.m_aTo/this.m_mpuTo;const u=l*l;let f;return r=j(h,this.m_transform1,this.m_bIsPannableFrom,this.m_pannableExtentFrom,!0,this.m_pannableExtentGcsTo,null,null,null,null,o,u,i),h=null,r=(new b).execute(r,this.m_transform1,i),f=e>0?e*(Math.PI/180/this.m_rpuGcsTo):Math.PI/180/this.m_rpuGcsTo*1e-5,r=$(r,this.m_transform2.getInputSR(),this.m_horizon2,this.m_bInclusive2,!0,this.m_pannableExtentGcsTo,!1,Number.NaN,i),r=I(r,this.m_transform2.getOutputSR(),i),r=j(r,this.m_transform2,!0,this.m_pannableExtentGcsTo,this.m_bIsPannableTo,this.m_pannableExtentTo,null,null,null,null,f,n,i),r=(new b).execute(r,this.m_transform2,i),r}getMinLengthInSrFrom(t){let e;return e=this.m_bSrFromIsPcs?this.m_aFrom*(t*Math.PI/180)/this.m_mpuFrom:t*Math.PI/180*(1/this.m_rpuFrom),e}filterOverDensification(t,e,s,i){let n=X(t,s);return n.dropAttribute(10),n!==t&&n.getGeometryType()===r.enumPolygon&&(n=(new x).execute(n,e,!1,i)),n}}function X(t,e){if(t.isEmpty()||!t.hasAttribute(10))return t;const s=e*e;let i=t.getAttributeStreamRef(10),n=!1;const o=new _,r=[];let h=!1;for(let a=0,c=t.getPathCount();a<c;a++){const e=t.getPathStart(a),m=t.getPathEnd(a),c=t.isClosedPath(a);if(!(m>e))continue;{const t=c?e:m-1;0===i.read(e)&&0===i.read(t)||(n||(i=i.clone(),n=!0),i.write(e,0),i.write(t,0))}const l=c?m+1:m;let u=e;for(let a=e;a<l;a++){const c=a===m?e:a;if(0===i.read(c)){if(a-u>1){r.push({from:u,to:a});const c=new p;for(;r.length>0;){const a=r.at(-1);r.pop(),o.setStartXY(t.getXY(a.from));const l=a.to===m?e:a.to;o.setEndXY(t.getXY(l));let u=s,f=-1;for(let e=a.from+1,s=a.to;e<s;e++){const s=t.getXY(e),i=o.getClosestCoordinate(s,!1);o.queryCoord2D(i,c);const n=p.sqrDistance(c,s);u<n&&(u=n,f=e)}f>=0?(n||(i=i.clone(),n=!0),i.write(f,0),f-a.from>1&&r.push({from:a.from,to:f}),a.to-f>1&&r.push({from:f,to:a.to})):h=!0}}u=c}}}if(!h)return t;const m=Y(t,i,1);return m.dropAttribute(10),m}function Y(t,e,s){const i=t.createInstance(),n=new l;for(let o=0,r=t.getPathCount();o<r;o++){let r=!0,h=0,m=0;const a=t.getPathStart(o),c=t.getPathEnd(o);let l=!0;for(let u=a;u<c;u++){e.read(u)===s?(!l&&m>0&&(i.addSegmentsFromPath(t,o,h-a,m,r),m=0),l=!0):l?(l=!1,t.getPointByVal(u,n),r?(i.startPathPoint(n),r=!1):i.lineToPoint(n),h=u):m++}m>0&&i.addSegmentsFromPath(t,o,h-a,m,r)}return i}const A=8;function O(t,e){const s=.5;for(let i=0;i<t;i++){let n=Math.ceil(i/2)/(t+1);i%2!=0&&(n=-n);const o=s+n;e[i]=o}}function H(t){if(!t)return!1;const e=t.getCoordinateSystemType();return 2===e||1===e}function j(t,e,s,i,n,o,r,h,m,a,c,l,u){const f=t.createInstance();f.addAttribute(10);const _=t.querySegmentIterator(),d=[],p=[],P=new g,T=t.getDescription().getAttributeCount()>1,b=new lt(e,s,i,n,o,r,h,a,c,l,T?p:null,d,u);for(;_.nextPath();)for(;_.hasNextSegment();){const t=_.nextSegment(),e=t.getStartXY(),s=t.getEndXY(),i=e.compare(s)>0,n=J(i,t,P);d.length=0,p.length=0;if(!b.densifySegment(_.isFirstSegmentInPath(),n))return null;i&&K(T?p:null,d),d.at(-1).setCoordsPoint2D(t.getEndXY());const o=f.getPointCount();if(T){const e=J(i,t,P);U(_.isFirstSegmentInPath(),_.isLastSegmentInPath()&&!_.isPathClosed(),t,e,p,d,f)}else B(_.isFirstSegmentInPath(),_.isLastSegmentInPath()&&!_.isPathClosed(),d,f);if(b.needsPostFiltering()){f.addAttribute(10);const t=f.getAttributeStreamRef(10);for(let e=1,s=d.length-1;e<s;e++)t.write(e+o,1)}}return f}function B(t,e,s,i){t&&i.insertPath2D(-1,null,0,0,!0);const n=i.getPathCount()-1;e?i.insertPointsFromPoints(n,-1,s,0,s.length,!0):i.insertPointsFromPoints(n,-1,s,0,s.length-1,!0)}function U(t,e,s,i,n,o,r){r.reserve(r.getPointCount()+o.length-1);const h=new l;if(s.queryStart(h),t?r.startPathPoint(h):r.lineToPoint(h),o.length>2){const t=i.calculateLength2D();for(let e=1;e<o.length-1;e++){const s=i.lengthToT(n[e]*t);i.queryCoord(s,h),h.setXY(o[e]),r.lineToPoint(h)}}e&&(s.queryEnd(h),r.lineToPoint(h))}function W(t){const e=new f({vd:t.getDescription()});return e.addSegment(t,!0),e}function Q(t,e){const s=e.getInputSR(),i=e.getOutputSR(),n=new p;2===s.getCoordinateSystemType()?(n.setCoordsPoint2D(t),v(s,0,[n],1)):n.setCoordsPoint2D(t);const o=new p;o.setCoordsPoint2D(n),G(e,[o],null,1,!1);const r=new p;return 2===i.getCoordinateSystemType()?(r.setCoordsPoint2D(o),z(i,[r],1,!1)):r.setCoordsPoint2D(o),r}function V(t,e,s,i,n,o,r,h){if(n){const n=o.width(),m=.5*n;if(i){const i=.25*n;let o=!1;const a=new p,c=new p;if(Math.abs(t.y)===i?(a.setCoords(s.x,t.y),c.setCoordsPoint2D(s),o=!0):Math.abs(s.y)===i&&(c.setCoords(t.x,s.y),a.setCoordsPoint2D(t),o=!0),Math.abs(e.y)===i&&(o||(a.setCoordsPoint2D(t),c.setCoordsPoint2D(s),o=!0),a.x=e.x),o)return ot(e,a,m,n,r),ot(e,c,m,n,h),!0}let a=0;t.x-e.x>m&&s.x-e.x>m?a-=n:e.x-t.x>m&&e.x-s.x>m&&(a+=n),Math.abs(e.x-(t.x+a))<m?(r.setCoordsPoint2D(t),ot(r,s,m,n,h),r.x+=a,h.x+=a):(r.setCoordsPoint2D(s),ot(r,t,m,n,h),r.x+=a,h.x+=a)}else r.setCoordsPoint2D(t),h.setCoordsPoint2D(s);return!1}function J(t,e,s){return t?(s.create(e.getGeometryType()),e.copyTo(s.get()),s.get().reverse(),s.get()):e}function K(t,e){e.reverse(),null!==t&&t.reverse()}function Z(t,e,s,i){const n=.5*(i.getStartX()+i.getEndX());if(n-s>t){const t=new T;t.setShiftCoords(-e,0),i.applyTransformation(t)}else if(s-n>t){const t=new T;t.setShiftCoords(e,0),i.applyTransformation(t)}}function $(t,e,s,i,n,o,r,h,m){const a=[!1];r&&tt(t,e,s,i,n,o,!0,h,a,m);let c=t;return a[0]||(c=tt(c,e,s,i,n,o,!1,h,null,m)),c=it(c,n,o,c!==t),c}function tt(t,e,s,i,n,o,h,m,a,c){if(h&&(a[0]=!1),null==s)return t;const l=new u,f=new u;s.queryEnvelope(l),t.queryEnvelope(f);const g=t.getGeometryType(),_=s.getGeometryType(),d=e.getTolerance(0);if(!n){if(h)return a[0]=st(t,s,e,i,c),null;let n;return n=i?_===r.enumEnvelope?k(t,l,d,m,c):(new y).execute(t,s,e,c):(new w).execute(t,s,e,c),n===s&&(n=s.clone()),n}const p=o.width(),P=p*Math.ceil(l.width()/p);let b=null;if(i){let o=nt(t,s,n,P),D=0;const S=new T;do{let n=null;if(_===r.enumEnvelope){const r=s.clone();if(S.setShiftCoords(o*P,0),r.applyTransformation(S),h){if(a[0]=st(t,r,e,i,c),!a[0])return null}else{const e=new u;r.queryEnvelope(e),n=k(t,e,d,m,c)}}else{const r=t.clone();if(S.setShiftCoords(-o*P,0),r.applyTransformation(S),h){if(a[0]=st(r,s,e,i,c),!a[0])return null}else n=(new y).execute(r,s,e,c),n===s&&(n=s.clone())}if(!h){if(n.isEmpty())continue;if(g===r.enumPolygon){const t=new u;if(n.queryEnvelope(t),t.width()<=d)continue}_===r.enumEnvelope&&(S.setShiftCoords(-o*P,0),n===t&&(n=n.clone()),n.applyTransformation(S)),null===b?b=n===t?n.clone():n:b.add(n,!1)}D++}while(l.xmin+ ++o*P<f.xmax);if(h)return null;null===b&&(b=t.createInstance()),g===r.enumPolygon&&D>1&&p-f.width()<=10*d&&(b=(new x).execute(b,e,!0,c))}else{let o=nt(t,s,n,P);if(b=t.clone(),0!==o){const t=new T;t.setShiftCoords(-o*P,0),b.applyTransformation(t)}do{if(h){if(a[0]=st(b,s,e,i,c),!a[0])return null}else if(b=(new w).execute(b,s,e,c),b===s&&(b=s.clone()),b.isEmpty())break;const t=new T;t.setShiftCoords(-P,0),b.applyTransformation(t)}while(l.xmin+ ++o*P<f.xmax);if(h)return null;if(!b.isEmpty()&&0!==o){const t=new T;t.setShiftCoords(o*P,0),b.applyTransformation(t)}}return b}function et(t,e,s,i,n,o,r){const h=[!1];return tt(t,s,e,i,n,o,!0,Number.NaN,h,r),h[0]}function st(t,e,s,i,n){let o;if(e.getGeometryType()===r.enumPolygon)if(i){o=E(e,t,s,64,n)}else{o=E(e,t,s,4,n)}else if(i){const s=new u,i=new u;e.queryEnvelope(s),t.queryEnvelope(i);o=s.containsEnvelope(i)}else{o=E(e,t,s,4,n)}return o}function it(t,e,s,i){let n;if(!e)return t;const o=s.getCenter().x,r=s.width(),h=.5*r,m=new u;t.queryEnvelope(m);const a=m.getCenter().x;let c=0;if(a-o>h){c=-Math.ceil((a-o-h)/r)*r}else if(o-a>h){c=Math.ceil((o-a-h)/r)*r}if(0!==c){n=i?t:t.clone();const e=new T;e.setShiftCoords(c,0),n.applyTransformation(e)}else n=t;return n}function nt(t,e,s,i){if(!s)return 0;let n=0;const o=new u;e.queryEnvelope(o);const r=new u;t.queryEnvelope(r);const h=o.xmin+i;for(;h+i+n*i>r.xmin;)n--;for(;h+n*i<r.xmin;)n++;return n}function ot(t,e,s,i,n){e.x-t.x>s?n.setCoords(e.x-i,e.y):t.x-e.x>s?n.setCoords(e.x+i,e.y):n.setCoordsPoint2D(e)}function rt(t,e,s,i,n,o,r){Math.abs(t.y)===s?(o.setCoords(e.x,t.y),r.setCoordsPoint2D(e)):Math.abs(e.y)===s?(o.setCoordsPoint2D(t),r.setCoords(t.x,e.y)):(o.setCoordsPoint2D(t),ot(o,e,i,n,r))}function ht(t){return t.getUnit().getUnitToBaseFactor()}function mt(t){return t.getUnit().getUnitToBaseFactor()}function at(t){return t.getPECoordSys().getDatum().getSpheroid().getAxis()}function ct(t,e,s){return s<=.5?t+(e-t)*s:e-(e-t)*(1-s)}class lt{leftFromDensifiedPoint=new p;rightFromDensifiedPoint=new p;cutFromDensifiedPoint=new p;midFromDensifiedPoint=new p;leftToDensifiedPoint=new p;rightToDensifiedPoint=new p;cutToDensifiedPoint=new p;midToDensifiedPoint=new p;line=new _;leftGcsToDensifiedPoint=new p;rightGcsToDensifiedPoint=new p;cutGcsToDensifiedPoint=new p;midGcsToDensifiedPoint=new p;bSrToIsGcs=!1;bIsCurve=!1;leftFactor=0;rightFactor=0;bIsFirstInPath=!1;rectifiedSegment=null;transform=null;bIsPannableFrom=!1;pannableExtentFrom=new u;bIsPannableTo=!1;bNeedPostFiltering=!1;pannableExtentTo=new u;transform2=null;pHorizon2Info=null;pSplitLines2Info=null;minLengthInSrFrom=0;maxDeviationInSrToSq=0;cutFactor=0;midFactor=0;pDensifiedFactors=null;pDensifiedPoints=[];progressTracker;rightFromDensifiedPointsStack=[];rightToDensifiedPointsStack=[];rightGcsToDensifiedPointsStack=[];rightFactorsStack=[];projCurveSegment=new g;n=0;bCheckIfNoDensificationNeededForCurve=!1;scalars=P(A-1,Number.NaN);checkSegment(){for(let t=0;t<this.n;t++){if(null!==this.pSplitLines2Info&&this.pSplitLines2Info.hasSplitLines()&&!this.bCheckIfNoDensificationNeededForCurve){const t=this.pSplitLines2Info.getSplitLineFactorEx(this.rectifiedSegment,this.leftFactor,this.rightFactor,this.leftGcsToDensifiedPoint,this.rightGcsToDensifiedPoint,this.progressTracker);if(Number.isNaN(t))return-1;if(-1!==t&&this.leftFactor<t&&t<this.rightFactor)return this.cutFactor=t,this.cutFromDensifiedPoint.assign(this.rectifiedSegment.getCoord2D(this.cutFactor)),this.cutToDensifiedPoint.assign(Q(this.cutFromDensifiedPoint,this.transform)),this.cutGcsToDensifiedPoint.setCoordsPoint2D(this.cutToDensifiedPoint),this.cutToDensifiedPoint.assign(Q(this.cutGcsToDensifiedPoint,this.transform2)),this.midFactor=this.cutFactor,this.midFromDensifiedPoint.setCoordsPoint2D(this.cutFromDensifiedPoint),this.midToDensifiedPoint.setCoordsPoint2D(this.cutToDensifiedPoint),this.midGcsToDensifiedPoint.setCoordsPoint2D(this.cutGcsToDensifiedPoint),1}if(this.cutFactor=ct(this.leftFactor,this.rightFactor,this.scalars[t]),this.cutFromDensifiedPoint.assign(this.rectifiedSegment.getCoord2D(this.cutFactor)),this.cutToDensifiedPoint.assign(Q(this.cutFromDensifiedPoint,this.transform)),null!==this.transform2&&(this.cutGcsToDensifiedPoint.setCoordsPoint2D(this.cutToDensifiedPoint),this.cutToDensifiedPoint.assign(Q(this.cutGcsToDensifiedPoint,this.transform2))),0===t&&(this.midFactor=this.cutFactor,this.midFromDensifiedPoint.setCoordsPoint2D(this.cutFromDensifiedPoint),this.midToDensifiedPoint.setCoordsPoint2D(this.cutToDensifiedPoint),this.midGcsToDensifiedPoint.setCoordsPoint2D(this.cutGcsToDensifiedPoint)),this.bIsPannableFrom&&!this.bCheckIfNoDensificationNeededForCurve&&Math.abs(this.leftFromDensifiedPoint.x-this.rightFromDensifiedPoint.x)>=.25*this.pannableExtentFrom.width())return 1;let e;if(this.bCheckIfNoDensificationNeededForCurve){const t=this.projCurveSegment.get().getClosestCoordinate(this.cutToDensifiedPoint,!1),s=this.projCurveSegment.get().getCoord2D(t);e=p.sqrDistance(this.cutToDensifiedPoint,s)}else{const s=new p,i=new p,n=V(this.leftToDensifiedPoint,this.cutToDensifiedPoint,this.rightToDensifiedPoint,this.bSrToIsGcs,this.bIsPannableTo,this.pannableExtentTo,s,i);this.line.setStartXY(s),this.line.setEndXY(i);const o=this.line.getClosestCoordinate(this.cutToDensifiedPoint,!0);if(n||t>0||Math.abs(o-this.scalars[t])<.3){const t=this.line.getCoord2D(o);e=p.sqrDistance(this.cutToDensifiedPoint,t)}else e=2*this.maxDeviationInSrToSq,this.bNeedPostFiltering=!0}if(e>this.maxDeviationInSrToSq)return this.bCheckIfNoDensificationNeededForCurve=!1,1}return 0}constructor(t,e,s,i,n,o,r,h,m,a,c,l,u){this.progressTracker=u,this.transform=t,this.bIsPannableFrom=e,this.pannableExtentFrom.assign(s),this.bIsPannableTo=i,this.pannableExtentTo.assign(n),this.transform2=o,this.pHorizon2Info=r,this.pSplitLines2Info=h,this.minLengthInSrFrom=m,this.maxDeviationInSrToSq=a,this.pDensifiedFactors=c,this.pDensifiedPoints=l,this.progressTracker=u,this.bNeedPostFiltering=!1}needsPostFiltering(){return this.bNeedPostFiltering}densifySegment(t,e){if(this.bIsFirstInPath=t,this.rectifiedSegment=e,this.leftGcsToDensifiedPoint.setNAN(),this.rightGcsToDensifiedPoint.setNAN(),this.cutGcsToDensifiedPoint.setNAN(),this.midGcsToDensifiedPoint.setNAN(),this.bSrToIsGcs=null!=this.transform2?1===this.transform2.getOutputSR().getCoordinateSystemType():1===this.transform.getOutputSR().getCoordinateSystemType(),this.bIsCurve=this.rectifiedSegment.isCurve(),this.leftFactor=0,this.rightFactor=1,this.leftFromDensifiedPoint.assign(this.rectifiedSegment.getStartXY()),this.rightFromDensifiedPoint.assign(this.rectifiedSegment.getEndXY()),this.leftToDensifiedPoint.assign(Q(this.leftFromDensifiedPoint,this.transform)),this.rightToDensifiedPoint.assign(Q(this.rightFromDensifiedPoint,this.transform)),null!==this.transform2&&(this.leftGcsToDensifiedPoint.setCoordsPoint2D(this.leftToDensifiedPoint),this.rightGcsToDensifiedPoint.setCoordsPoint2D(this.rightToDensifiedPoint),this.leftToDensifiedPoint.assign(Q(this.leftGcsToDensifiedPoint,this.transform2)),this.rightToDensifiedPoint.assign(Q(this.rightGcsToDensifiedPoint,this.transform2)),this.bIsFirstInPath&&!this.pHorizon2Info.isPointStartInHorizon(this.leftGcsToDensifiedPoint,this.progressTracker)))return!1;this.rightFromDensifiedPointsStack.length=0,this.rightToDensifiedPointsStack.length=0,this.rightGcsToDensifiedPointsStack.length=0,this.rightFactorsStack.length=0,this.rightFromDensifiedPointsStack.push(this.rightFromDensifiedPoint.clone()),this.rightToDensifiedPointsStack.push(this.rightToDensifiedPoint.clone()),this.rightFactorsStack.push(this.rightFactor),null!=this.transform2&&this.rightGcsToDensifiedPointsStack.push(this.rightGcsToDensifiedPoint.clone()),null!==this.pDensifiedPoints&&this.pDensifiedPoints.push(this.leftFromDensifiedPoint.clone()),null!==this.pDensifiedFactors&&this.pDensifiedFactors.push(this.leftFactor),this.bIsCurve?this.rectifiedSegment.getGeometryType()===r.enumBezier?this.n=A-1:this.n=5:this.n=3,O(this.n,this.scalars);const s=this.rectifiedSegment.calculateLength2D();if(this.bCheckIfNoDensificationNeededForCurve=!1,this.bIsCurve){const t=new f({vd:this.rectifiedSegment.getDescription()});let e=(new b).execute(t,this.transform,this.progressTracker);if(null!==this.transform2){const t=new u;if(e.queryEnvelope(t),!this.pHorizon2Info.isEnvelopeInHorizon(t,this.progressTracker))return!1;e=(new b).execute(e,this.transform2,this.progressTracker)}e.getSegmentBuffer(0,this.projCurveSegment,!1),this.bCheckIfNoDensificationNeededForCurve=!0}for(;this.rightFromDensifiedPointsStack.length>0;){let t=!1;if(this.cutFactor=Number.NaN,this.midFactor=Number.NaN,this.midFromDensifiedPoint.setNAN(),this.midToDensifiedPoint.setNAN(),(this.rightFactor-this.leftFactor)*s>this.minLengthInSrFrom){const e=this.checkSegment();if(-1===e)return!1;t=0!==e}if(t)this.rightFromDensifiedPoint.setCoordsPoint2D(this.midFromDensifiedPoint),this.rightToDensifiedPoint.setCoordsPoint2D(this.midToDensifiedPoint),this.rightFactor=this.midFactor,this.rightFromDensifiedPointsStack.push(this.rightFromDensifiedPoint.clone()),this.rightToDensifiedPointsStack.push(this.rightToDensifiedPoint.clone()),this.rightFactorsStack.push(this.rightFactor),null!==this.transform2&&(this.rightGcsToDensifiedPoint.setCoordsPoint2D(this.midGcsToDensifiedPoint),this.rightGcsToDensifiedPointsStack.push(this.rightGcsToDensifiedPoint.clone()));else{if(null!==this.transform2&&!this.pHorizon2Info.isAdjoiningLineInHorizon(this.leftGcsToDensifiedPoint,this.rightGcsToDensifiedPoint,this.progressTracker))return!1;if(this.rightFromDensifiedPointsStack.pop(),this.rightToDensifiedPointsStack.pop(),this.rightFactorsStack.pop(),null!==this.transform2&&this.rightGcsToDensifiedPointsStack.pop(),null!==this.pDensifiedPoints&&this.pDensifiedPoints.push(this.rightFromDensifiedPoint.clone()),null!==this.pDensifiedFactors&&this.pDensifiedFactors.push(this.rightFactor),this.rightFromDensifiedPointsStack.length>0){this.leftFromDensifiedPoint.setCoordsPoint2D(this.rightFromDensifiedPoint),this.leftToDensifiedPoint.setCoordsPoint2D(this.rightToDensifiedPoint),this.leftFactor=this.rightFactor;const t=this.rightFromDensifiedPointsStack.at(-1),e=this.rightToDensifiedPointsStack.at(-1);if(this.rightFromDensifiedPoint.setCoordsPoint2D(t),this.rightToDensifiedPoint.setCoordsPoint2D(e),this.rightFactor=this.rightFactorsStack.at(-1),null!==this.transform2){this.leftGcsToDensifiedPoint.setCoordsPoint2D(this.rightGcsToDensifiedPoint);const t=this.rightGcsToDensifiedPointsStack.at(-1);this.rightGcsToDensifiedPoint.setCoordsPoint2D(t)}}}}return!0}}class ut{getOperatorType(){return 10315}supportsCurves(){return!1}accelerateGeometry(t,e,s){return!1}canAccelerateGeometry(t){return!1}executeMany(t,e,s,i,n,o){return q(s)?new ft(t,e,s,i,n,o):(new b).executeMany(t,s,o)}execute(t,e,s,i,n){if(!q(e))return(new b).execute(t,e,n);const o=new M;return o.prepare(e,null,n),o.execute(t,s,i,n)}}class ft extends t{m_geometries;m_geometriesExtent;m_transform;m_spp=null;m_minSegmentLengthInDegrees;m_maxDeviationInSrTo;m_progressTracker;m_index=-1;constructor(t,s,i,n,o,r){super(),t||e(""),this.m_progressTracker=r,this.m_geometries=t,this.m_geometriesExtent=s?s.clone():null,this.m_transform=i,this.m_minSegmentLengthInDegrees=n,this.m_maxDeviationInSrTo=o}tock(){return!0}getRank(){return 1}next(){this.m_spp||(this.m_spp=new M,this.m_spp.prepare(this.m_transform,this.m_geometriesExtent,this.m_progressTracker));const t=this.m_geometries.next();return s(t),i(t),null!=t?(this.m_index=this.m_geometries.getGeometryID(),this.m_spp.execute(t,this.m_minSegmentLengthInDegrees,this.m_maxDeviationInSrTo,this.m_progressTracker)):null}getGeometryID(){return this.m_index}}export{ut as OperatorShapePreservingProject};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{G as e}from"./GeometryCursor.js";import{d as r,a as t,c as s}from"./Geometry.js";import{S as i}from"./SimpleGeometryCursor.js";import{
|
|
2
|
+
import{G as e}from"./GeometryCursor.js";import{d as r,a as t,c as s}from"./Geometry.js";import{S as i}from"./SimpleGeometryCursor.js";import{A as m,B as o}from"./SpatialReference.js";class n{getOperatorType(){return 10104}accelerateGeometry(e,r,t){return!1}canAccelerateGeometry(e){return!1}supportsCurves(){return!0}isSimple(e,r,t,s,i){return 5===m(e,r,t,s,i)}executeMany(e,r,t,s){return new u(e,r,t,s)}execute(e,t,s,m){const o=new i([e]),n=this.executeMany(o,t,s,m).next();return n||r("null output"),n}}class u extends e{m_inputGeometryCursor;m_spatialReference;m_progressTracker;m_index;m_bForceSimplify;constructor(e,r,s,i){super(),e||t(""),this.m_progressTracker=i,this.m_bForceSimplify=s,this.m_index=-1,this.m_inputGeometryCursor=e,this.m_spatialReference=r}next(){const e=this.m_inputGeometryCursor.next();return e?(s(e),this.m_index=this.m_inputGeometryCursor.getGeometryID(),this.simplify(e)):null}getGeometryID(){return this.m_index}tock(){return!1}getRank(){return 1}simplify(e){e||t("");return o(e,this.m_spatialReference,this.m_bForceSimplify,this.m_progressTracker)}}export{n as O};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{
|
|
2
|
+
import{v as e,w as r}from"./SpatialReference.js";class t extends e{getOperatorType(){return 5}execute(e,t,a,s){return r(e,t,a,8,s)}}export{t as O};
|
package/chunks/OperatorWithin.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{
|
|
2
|
+
import{v as e,w as r}from"./SpatialReference.js";class t extends e{getOperatorType(){return 7}execute(e,t,a,s){return r(e,t,a,2,s)}}export{t as O};
|