@arcgis/core 5.2.0-next.136 → 5.2.0-next.138
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/analysis/LineOfSightAnalysisObserver.d.ts +12 -0
- package/analysis/LineOfSightAnalysisObserver.js +1 -1
- package/analysis/LineOfSightAnalysisTarget.d.ts +12 -0
- package/analysis/LineOfSightAnalysisTarget.js +1 -1
- package/arcade/featureset/sources/FeatureLayerParquet.js +1 -1
- package/arcgisGlobal.d.ts +4 -0
- package/assets/components/assets/icon/blockHeightMedium16.json +1 -0
- package/assets/components/assets/icon/blockHeightMedium24.json +1 -0
- package/assets/components/assets/icon/blockHeightMedium32.json +1 -0
- package/assets/components/assets/icon/blockHeightShort16.json +1 -0
- package/assets/components/assets/icon/blockHeightShort24.json +1 -0
- package/assets/components/assets/icon/blockHeightShort32.json +1 -0
- package/assets/components/assets/icon/blockHeightTall16.json +1 -0
- package/assets/components/assets/icon/blockHeightTall24.json +1 -0
- package/assets/components/assets/icon/blockHeightTall32.json +1 -0
- package/assets/components/assets/icon/cursorCircle16.json +1 -0
- package/assets/components/assets/icon/cursorCircle24.json +1 -0
- package/assets/components/assets/icon/cursorCircle32.json +1 -0
- package/assets/components/assets/icon/dictionary16.json +1 -0
- package/assets/components/assets/icon/dictionary24.json +1 -0
- package/assets/components/assets/icon/dictionary32.json +1 -0
- package/assets/components/assets/icon/jobDependency16.json +1 -0
- package/assets/components/assets/icon/jobDependency24.json +1 -0
- package/assets/components/assets/icon/jobDependency32.json +1 -0
- package/assets/components/assets/icon/referenceChip16.json +1 -0
- package/assets/components/assets/icon/referenceChip24.json +1 -0
- package/assets/components/assets/icon/referenceChip32.json +1 -0
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/{4e6f95d8c624d513849a.js → 05963f57cbe5a5249496.js} +1 -1
- package/assets/esri/core/workers/chunks/{0b8681ca4a83e97f1f71.js → 067de1910190da228291.js} +1 -1
- package/assets/esri/core/workers/chunks/{3c0fd1c6cda44e9f40ab.js → 070684943698fa43c2b4.js} +1 -1
- package/assets/esri/core/workers/chunks/{bc1cb4b9a02e6c78deb7.js → 076e8d2e08ff2a013736.js} +1 -1
- package/assets/esri/core/workers/chunks/{c10e040368065411506a.js → 10445313d0d57b34511b.js} +1 -1
- package/assets/esri/core/workers/chunks/{d537c59b46cdaaf66034.js → 1188d0a136fffc009643.js} +1 -1
- package/assets/esri/core/workers/chunks/{20af3f085f60c32c6c53.js → 178083d8ed7707b45ca2.js} +1 -1
- package/assets/esri/core/workers/chunks/{f5efe3e800c6e23efcf3.js → 1819c45655c836b9a8d7.js} +1 -1
- package/assets/esri/core/workers/chunks/1b946714ca4a1a7359d4.js +2 -0
- package/assets/esri/core/workers/chunks/{d8d8b38ac8a91d9e45fc.js → 1cc744ab5eee5ee3bed8.js} +1 -1
- package/assets/esri/core/workers/chunks/{05e39b4de7f62c5b22cc.js → 20f75cc777af13fa249b.js} +1 -1
- package/assets/esri/core/workers/chunks/2a1ec30f9ad305763f81.js +2 -0
- package/assets/esri/core/workers/chunks/34570e6bbf559f18c1a5.js +1 -0
- package/assets/esri/core/workers/chunks/{60f6d5da9480dd36e877.js → 3dddae78286d05eb10fc.js} +1 -1
- package/assets/esri/core/workers/chunks/{9efd30bbd02ec0d1031b.js → 3ec3589f6e74d7cb87cf.js} +1 -1
- package/assets/esri/core/workers/chunks/{0bec054fca104f3bf141.js → 3f776d9fd2ab68b21fca.js} +1 -1
- package/assets/esri/core/workers/chunks/402a82c77420254831bc.js +1 -0
- package/assets/esri/core/workers/chunks/{e2ebf0ea3af2e6907987.js → 406f24ec13eb30d43405.js} +1 -1
- package/assets/esri/core/workers/chunks/43fc42405167a5537039.js +1 -0
- package/assets/esri/core/workers/chunks/{ddedc414bb478b376221.js → 46b2d4addfc73f9183a4.js} +1 -1
- package/assets/esri/core/workers/chunks/498d6dfd3bb0d3490548.js +1 -0
- package/assets/esri/core/workers/chunks/{36ef86701883a20dd6f6.js → 4a640548032355e57acd.js} +1 -1
- package/assets/esri/core/workers/chunks/5566f14afb63065e438f.js +1 -0
- package/assets/esri/core/workers/chunks/{c3b96d1d43afccd23e45.js → 590e6c70206122e4cc3c.js} +2 -2
- package/assets/esri/core/workers/chunks/{54860dd53a46cf4c47f3.js → 59295b99bdff4045a0e7.js} +1 -1
- package/assets/esri/core/workers/chunks/5aeb5e18514644fe2cf9.js +1 -0
- package/assets/esri/core/workers/chunks/{5da86409d70098fc6a10.js → 5b3cfe95314a75a735c1.js} +1 -1
- package/assets/esri/core/workers/chunks/{a54678bfa0f1807b61cd.js → 5c855af73ee3c3e764fb.js} +1 -1
- package/assets/esri/core/workers/chunks/{06da3409992bb1fa85b0.js → 5e90c1b49f2b7e21d05a.js} +39 -31
- package/assets/esri/core/workers/chunks/5fd099ca1024707387b2.js +1 -0
- package/assets/esri/core/workers/chunks/{30f808cac8a34f95ea6e.js → 6079d27f4ab319fb8f0c.js} +1 -1
- package/assets/esri/core/workers/chunks/66c2a28a851130b87c04.js +1 -0
- package/assets/esri/core/workers/chunks/{dac90b3631f7f7158f68.js → 67f15538c51838201fc7.js} +1 -1
- package/assets/esri/core/workers/chunks/{cfaba0470619786e1ef8.js → 68d8ae42ab71d01a70a5.js} +2 -2
- package/assets/esri/core/workers/chunks/6aebf7cfd294e88bf926.js +1 -0
- package/assets/esri/core/workers/chunks/{864e7030c4ddbfcf0114.js → 6ccf9535013fe672c93b.js} +1 -1
- package/assets/esri/core/workers/chunks/{ba7f0cf7e495d3ec2d55.js → 6e62581d933e7298d1f6.js} +1 -1
- package/assets/esri/core/workers/chunks/{83b5dd4029e00abd80bf.js → 700b1d5bc67b7e1b3ff3.js} +1 -1
- package/assets/esri/core/workers/chunks/{f9fea72cc222a30ef2f9.js → 72399062767abdfb0bee.js} +1 -1
- package/assets/esri/core/workers/chunks/{2a7fbfd77002a24bf737.js → 747461bb6a1bc2f0a64d.js} +1 -1
- package/assets/esri/core/workers/chunks/{c333f6ed42985bb2b11f.js → 7851aef196eea5d6c94e.js} +1 -1
- package/assets/esri/core/workers/chunks/{f0b6bd6fab5320c3082f.js → 7a05b18f655c1167ce0a.js} +1 -1
- package/assets/esri/core/workers/chunks/{04296b75d0f81fbd1bb5.js → 864194927d05ebc4cc31.js} +1 -1
- package/assets/esri/core/workers/chunks/{3c4a13a9f0b305394a26.js → 876f7633c15f1e31078d.js} +1 -1
- package/assets/esri/core/workers/chunks/{62298dba3f6cbdc3f4ae.js → 879b2f0ff1977bca9376.js} +1 -1
- package/assets/esri/core/workers/chunks/{b547b3bce729c9dac90d.js → 898359be6996fd9763b8.js} +1 -1
- package/assets/esri/core/workers/chunks/8cb716f110d164030309.js +1 -0
- package/assets/esri/core/workers/chunks/8dc1c3042267618fd710.js +2 -0
- package/assets/esri/core/workers/chunks/{625f02db93d7fbf175ca.js → 9001e9a1e81bce175ddd.js} +1 -1
- package/assets/esri/core/workers/chunks/{9ffa6c8d93d3443834c6.js → 912080c90b5cc2e817cf.js} +1 -1
- package/assets/esri/core/workers/chunks/96c50a0dda0f1503ef92.js +2 -0
- package/assets/esri/core/workers/chunks/{13e4379441499599c3b5.js → 9cbde13e536676767900.js} +1 -1
- package/assets/esri/core/workers/chunks/{408db4f32850b77264ae.js → 9cd3fcb5fca6f9dbbcd8.js} +1 -1
- package/assets/esri/core/workers/chunks/a054da6cbd8ee4774a57.js +1 -0
- package/assets/esri/core/workers/chunks/a05790444115e4cf1bcc.js +1 -0
- package/assets/esri/core/workers/chunks/{d1f2685782b423ef87a6.js → a556dd4e9e6d35e33a2c.js} +1 -1
- package/assets/esri/core/workers/chunks/{00d576d355599c88931e.js → bc38def1983089514e4b.js} +1 -1
- package/assets/esri/core/workers/chunks/{0725e515f3004bdd5c56.js → ca2adcbcf44454484fd5.js} +1 -1
- package/assets/esri/core/workers/chunks/{f3507b9e831ffd7a6bf8.js → cca8bd07bcd1d267a2e8.js} +1 -1
- package/assets/esri/core/workers/chunks/cfae60b9d2f2939e9c16.js +1 -0
- package/assets/esri/core/workers/chunks/{1d6b2a64f4e40e5cc13d.js → d201fbf3ceff946d2bd6.js} +1 -1
- package/assets/esri/core/workers/chunks/{4439078780d9ba49fd26.js → d51bb11baadc741c46bc.js} +1 -1
- package/assets/esri/core/workers/chunks/db1ab9b9c8bf5c7635d3.js +1 -0
- package/assets/esri/core/workers/chunks/de02a6a1f4810f99e9bb.js +1 -0
- package/assets/esri/core/workers/chunks/e630f3c56c077cb2bd8e.js +1 -0
- package/assets/esri/core/workers/chunks/e81173724e8de8c1e65b.js +1 -0
- package/assets/esri/core/workers/chunks/{2025288bed125594ceda.js → f6e62d2d279a328cbed7.js} +1 -1
- package/assets/esri/core/workers/chunks/{47c19778fcee7154ca38.js → f8bc474434fd365ab174.js} +1 -1
- package/assets/esri/core/workers/chunks/{9a20dc26cb9c7b2087cf.js → f95a1f878c9c1146180e.js} +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.ar.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.bg.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.bs.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.ca.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.cs.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.da.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.de.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.el.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.en.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.es.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.et.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.fi.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.fr.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.he.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.hr.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.hu.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.id.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.it.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.ja.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.ko.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.lt.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.lv.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.nl.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.no.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.pl.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.pt-BR.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.pt-PT.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.ro.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.ru.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.sk.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.sl.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.sr.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.sv.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.th.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.tr.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.uk.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.vi.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.zh-CN.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.zh-HK.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.zh-TW.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.ar.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.bg.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.bs.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.ca.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.cs.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.da.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.de.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.el.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.es.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.et.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.fi.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.fr.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.he.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.hr.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.hu.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.id.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.it.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.ja.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.ko.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.lt.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.lv.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.nl.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.no.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.pl.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.pt-BR.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.pt-PT.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.ro.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.ru.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.sk.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.sl.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.sr.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.sv.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.th.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.tr.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.uk.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.vi.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.zh-CN.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.zh-HK.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/messages.zh-TW.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.ar.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.bg.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.bs.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.ca.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.cs.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.da.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.de.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.el.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.en.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.es.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.et.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.fi.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.fr.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.he.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.hr.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.hu.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.id.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.it.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.ja.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.ko.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.lt.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.lv.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.nl.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.no.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.pl.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.pt-BR.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.pt-PT.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.ro.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.ru.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.sk.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.sl.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.sr.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.sv.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.th.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.tr.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.uk.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.vi.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.zh-CN.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.zh-HK.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.zh-TW.json +1 -1
- package/chunks/Bufferer-CclWhXVb.js +1 -1
- package/chunks/Component.glsl.js +3 -3
- package/chunks/DefaultMaterial.glsl.js +2 -2
- package/chunks/Distance2DCalculator-DjIp2uQi.js +1 -1
- package/chunks/Envelope.js +1 -1
- package/chunks/Envelope2D.js +1 -1
- package/chunks/FocusArea.glsl.js +8 -10
- package/chunks/GaussianSplat.glsl.js +2 -2
- package/chunks/GeodeticDistanceCalculator-zRp89-dW.js +1 -1
- package/chunks/GeodeticUtils.js +1 -1
- package/chunks/Geometry.js +1 -1
- package/chunks/GeometryCleaner-CIE8Wfmb.js +1 -1
- package/chunks/GlobalIllumination.glsl.js +3 -3
- package/chunks/LineMarker.glsl.js +35 -42
- package/chunks/MultiPathImpl.js +1 -1
- package/chunks/OperatorAffineTransform.js +1 -1
- package/chunks/OperatorClip.js +1 -1
- package/chunks/OperatorDensify.js +1 -1
- package/chunks/OperatorDistance.js +1 -1
- package/chunks/OperatorGeneralize.js +1 -1
- package/chunks/OperatorGeodesicBuffer.js +1 -1
- package/chunks/OperatorGeodeticArea.js +1 -1
- package/chunks/OperatorGeodeticDensifyByLength.js +1 -1
- package/chunks/OperatorGeodeticDistance.js +1 -1
- package/chunks/OperatorGeodeticLength.js +1 -1
- package/chunks/OperatorGraphicBuffer.js +1 -1
- package/chunks/OperatorIntegrate.js +1 -1
- package/chunks/OperatorMultiPartToSinglePart.js +1 -1
- package/chunks/OperatorProximity.js +1 -1
- package/chunks/OperatorProximityGeodesic.js +1 -1
- package/chunks/OperatorShapePreservingLength.js +1 -1
- package/chunks/OperatorShapePreservingProject.js +1 -1
- package/chunks/OperatorSimplifyOGC.js +1 -1
- package/chunks/Path.glsl.js +2 -2
- package/chunks/Point2D.js +1 -1
- package/chunks/RealisticTree.glsl.js +2 -2
- package/chunks/RibbonLine.glsl.js +51 -57
- package/chunks/SideCalculator2D-DX0718xq.js +1 -1
- package/chunks/Terrain.glsl.js +2 -2
- package/chunks/Transformation2D.js +1 -1
- package/chunks/UnitFactory.js +1 -1
- package/config.js +1 -1
- package/core/workers/RemoteClient.js +1 -1
- package/core/workers/workerFactory.js +1 -1
- package/editing/fieldUtils.d.ts +12 -0
- package/editing/sharedTemplates/templateDefinitions/TemplateDefinitionBase.js +1 -1
- package/geometry/operators/extendOperator.js +1 -1
- package/geometry/operators/gx/operatorAlphaShape.js +1 -1
- package/geometry/operators/gx/operatorBoundary.js +1 -1
- package/geometry/operators/gx/operatorBuffer.js +1 -1
- package/geometry/operators/gx/operatorConvexHull.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/operatorMinimumBoundingCircle.js +1 -1
- package/geometry/operators/gx/operatorOffset.js +1 -1
- package/geometry/operators/gx/operatorPolygonOverlay.js +1 -1
- package/geometry/operators/gx/operatorPolygonSlicer.js +1 -1
- package/geometry/operators/gx/operatorSymmetricDifference.js +1 -1
- package/geometry/operators/isNearOperator.js +1 -1
- package/geometry/operators/reshapeOperator.js +1 -1
- package/geometry/operators/support/jsonConverter.js +1 -1
- package/geometry/support/curves/ellipticArc7Utils.js +1 -1
- package/geometry/support/ellipseUtils.js +2 -0
- package/interfaces.d.ts +15 -18
- package/kernel.js +1 -1
- package/layers/LinkChartLayer.js +1 -1
- package/layers/ParquetLayer.js +1 -1
- package/layers/graphics/sources/support/ParquetSourceWorker.js +1 -1
- package/layers/list/LayerItemCollection.d.ts +1 -0
- package/layers/list/types.d.ts +5 -1
- package/layers/orientedImagery/core/coverageUtils.js +1 -1
- package/layers/orientedImagery/queries.js +1 -1
- package/layers/support/TimeSeriesCalculation.d.ts +1 -1
- package/layers/support/TimeSeriesCalculation.js +1 -1
- package/layers/support/dataSeriesUtils.d.ts +10 -0
- package/layers/support/timeSeriesUtils.js +17 -6
- package/libs/lyr3d/Lyr3DModule.js +1 -1
- package/networks/UtilityNetwork.d.ts +15 -0
- package/networks/UtilityNetwork.js +1 -1
- package/package.json +4 -4
- package/popup/FeatureContent.d.ts +14 -1
- package/popup/FeatureContent.js +1 -1
- package/popup/FeatureContentCollection.d.ts +4 -10
- package/popup/FeatureContentCollection.js +1 -1
- package/popup/actions.js +1 -1
- package/popup/support/featureUtils.js +1 -1
- package/renderers/support/RenderingInfo.js +1 -1
- package/renderers/support/renderingInfoUtils.js +1 -1
- package/renderers/visualVariables/SizeVariable.d.ts +16 -20
- package/renderers/visualVariables/support/SizeStop.d.ts +6 -2
- package/rest/networks/support/TraceLocation.js +1 -1
- package/rest/networks/support/TraceResult.d.ts +7 -0
- package/rest/networks/support/TraceResult.js +1 -1
- package/smartMapping/renderers/color.js +1 -1
- package/smartMapping/renderers/opacity.js +1 -1
- package/smartMapping/renderers/size.js +1 -1
- package/smartMapping/renderers/support/timeSeriesUtils.js +1 -1
- package/smartMapping/statistics/histogramForTimeSeries.d.ts +11 -0
- package/smartMapping/statistics/histogramForTimeSeries.js +2 -0
- package/smartMapping/statistics/summaryStatisticsForTimeSeries.d.ts +11 -0
- package/smartMapping/statistics/summaryStatisticsForTimeSeries.js +2 -0
- package/smartMapping/statistics/support/timeSeriesUtils.js +24 -0
- package/smartMapping/statistics/types.d.ts +50 -0
- package/support/tests/serviceMockDependencies.js +1 -1
- package/support/tests/setupServiceMocksMesh.js +1 -1
- package/symbols/cim/CIMPlacements.js +1 -1
- package/symbols/cim/callouts/calloutAnalysisUtils.js +1 -1
- package/symbols/cim/callouts/effects/BackgroundCallout.js +1 -1
- package/symbols/cim/callouts/effects/BalloonCallout.js +1 -1
- package/symbols/cim/callouts/effects/PointSymbolCallout.js +1 -1
- package/symbols/cim/callouts/effects/calloutUtils.js +1 -1
- package/symbols/cim/cimAnalyzer.js +1 -1
- package/views/2d/analysis/AreaMeasurement/AreaMeasurementTool.js +1 -1
- package/views/2d/analysis/DistanceMeasurement/DistanceMeasurementTool.js +1 -1
- package/views/2d/engine/vectorTiles/decluttering/CollisionJob.js +1 -1
- package/views/2d/engine/vectorTiles/decluttering/SymbolFader.js +1 -1
- package/views/2d/engine/vectorTiles/decluttering/jobsUtil.js +1 -1
- package/views/2d/engine/webgl/collisions/LabelMetric.js +1 -1
- package/views/2d/engine/webgl/definitions.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/animated/AAnimatedShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedPolyMeshWriters.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/animated/ComputedAnimatedParams.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/markers/ComputedMarkerParams.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/mesh/CalloutMeshWriterPolicy.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/AFeatureShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/text/TextParams.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/text/TextShader.js +1 -1
- package/views/2d/layers/SketchLayerView2D.js +1 -1
- package/views/2d/layers/features/layerAdapters/AnnotationLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/CatalogFootprintLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/DimensionLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/FeatureLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/InMemoryLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/KnowledgeGraphSublayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/OGCFeatureLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/OrientedImageryLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/ParquetLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/StreamLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/SubtypeGroupLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/labelingUtils.js +1 -1
- package/views/2d/layers/features/schema/ExceedsLimitCache.js +1 -1
- package/views/2d/layers/features/schema/TimeSchema.js +2 -0
- package/views/2d/layers/features/schema/processor/LabelMatcherSchema.js +1 -1
- package/views/2d/layers/features/schema/processor/MatcherSchema.js +1 -1
- package/views/2d/layers/features/schema/processor/symbols/SymbolSchema.js +1 -1
- package/views/2d/layers/features/sources/FeatureSourceQueryInfo.js +1 -1
- package/views/2d/layers/features/sources/strategies/ParquetTileLoadStrategy.js +1 -1
- package/views/2d/layers/support/annodime/cimAnnotations.js +1 -1
- package/views/2d/layers/support/vectorTileDebugUtils.js +1 -1
- package/views/2d/layers/support/visualVariableSimpleUtils.js +1 -1
- package/views/2d/types.d.ts +2 -1
- package/views/3d/analysis/LineOfSight/LineOfSightEditTool.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightItemManipulatedObject3D.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightItemTool.js +1 -1
- package/views/3d/analysis/LineOfSightAnalysisView3D.d.ts +24 -0
- package/views/3d/analysis/Viewshed/ViewshedEditTool.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedObserverManipulatedObject3D.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedPlacementController.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedSubTool.js +1 -1
- package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementShiftTool.js +1 -1
- package/views/3d/camera/constraintUtils.js +1 -1
- package/views/3d/input/handlers/ground/GroundDoubleClickMove.js +1 -1
- package/views/3d/input/handlers/ground/GroundNavigation.js +1 -1
- package/views/3d/interactive/editingTools/tooltipUtils3D.js +1 -1
- package/views/3d/interactive/placementTools/GroundNavigationPlacementTool3D.js +1 -1
- package/views/3d/layers/graphics/Graphics3DLineSymbolLayer.js +1 -1
- package/views/3d/layers/i3s/I3SOverrides.js +1 -1
- package/views/3d/layers/support/FastSymbolUpdates.js +1 -1
- package/views/3d/state/controllers/GroundNavigationController.js +1 -1
- package/views/3d/state/controllers/momentum/GroundNavigationMomentumController.js +1 -1
- package/views/3d/state/utils/OffsetCorrectionController.js +1 -1
- package/views/3d/state/utils/groundNavigationUtils.js +1 -1
- package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
- package/views/3d/webgl-engine/collections/Component/Material/ComponentTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js +16 -8
- package/views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js +5 -1
- package/views/3d/webgl-engine/core/shaderLibrary/shading/evaluateSceneLightingFragment.glsl.js +12 -0
- package/views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js +2 -2
- package/views/3d/webgl-engine/effects/focusArea/FocusArea.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.js +1 -1
- package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
- package/views/3d/webgl-engine/shaders/LineMarker.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/RibbonLine.glsl.js +1 -1
- package/views/SelectionManager.d.ts +3 -3
- package/views/draw/support/Reshape.js +1 -1
- package/views/interactive/options/bindViewToolOptions.js +1 -1
- package/views/interactive/sketch/SketchLabelOptions.d.ts +3 -0
- package/views/interactive/sketch/SketchLabelOptions.js +1 -1
- package/views/interactive/sketch/SketchTooltipOptions.d.ts +3 -0
- package/views/interactive/sketch/SketchTooltipOptions.js +1 -1
- package/views/interactive/sketch/SketchValueOptions.d.ts +3 -0
- package/views/interactive/sketch/SketchValueOptions.js +1 -1
- package/views/interactive/snapping/SnappingOptions.d.ts +3 -0
- package/views/interactive/snapping/SnappingOptions.js +1 -1
- package/views/interactive/snapping/snappingUtils.js +1 -1
- package/views/interactive/tooltip/fields/parsingAndFormattingUtils.js +1 -1
- package/views/layers/SketchLayerView.d.ts +34 -0
- package/views/layers/SketchLayerView.js +2 -0
- package/views/layers/types.d.ts +3 -2
- package/views/selection/types.d.ts +15 -4
- package/widgets/BasemapGallery/BasemapGalleryViewModel.js +1 -1
- package/widgets/BasemapGallery.js +1 -1
- package/widgets/Bookmarks/BookmarksViewModel.d.ts +4 -0
- package/widgets/Bookmarks/BookmarksVisibleElements.d.ts +5 -1
- package/widgets/Bookmarks/types.d.ts +2 -0
- package/widgets/Editor/EditorViewModel.d.ts +31 -30
- package/widgets/Editor/EditorViewModel.js +1 -1
- package/widgets/Editor/components/Settings.js +1 -1
- package/widgets/Editor/types.d.ts +44 -0
- package/widgets/Editor.d.ts +30 -27
- package/widgets/Editor.js +1 -1
- package/widgets/FeatureTable/FeatureTableViewModel.d.ts +1 -1
- package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
- package/widgets/FeatureTable/support/FeatureStore.d.ts +1 -1
- package/widgets/FeatureTable/support/FeatureStore.js +1 -1
- package/widgets/FeatureTable.d.ts +6 -0
- package/widgets/FeatureTable.js +1 -1
- package/widgets/Histogram/types.d.ts +10 -2
- package/widgets/HistogramRangeSlider/types.d.ts +4 -1
- package/widgets/LayerList/LayerListViewModel.d.ts +2 -1
- package/widgets/Legend/LegendViewModel.d.ts +2 -0
- package/widgets/Legend/styles/card/CardView.d.ts +2 -0
- package/widgets/Legend/styles/classic/ClassicView.d.ts +4 -1
- package/widgets/Legend.d.ts +3 -0
- package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.d.ts +7 -0
- package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
- package/widgets/OrientedImageryViewer/components/OrientedImageryVideoViewModel.js +1 -1
- package/widgets/OrientedImageryViewer/support/VideoFeatureCache.js +2 -0
- package/widgets/OrientedImageryViewer/types.d.ts +9 -0
- package/widgets/OrientedImageryViewer.d.ts +7 -0
- package/widgets/OrientedImageryViewer.js +2 -2
- package/widgets/PanoramicVideoViewer.js +1 -1
- package/widgets/PanoramicViewer/PanoramicVideoViewerViewModel.js +1 -1
- package/widgets/ScaleRangeSlider/types.d.ts +9 -2
- package/widgets/Sketch/SketchViewModel.d.ts +32 -1
- package/widgets/Sketch/SketchViewModel.js +1 -1
- package/widgets/Sketch.d.ts +27 -1
- package/widgets/Sketch.js +1 -1
- package/widgets/Slider/types.d.ts +58 -13
- package/widgets/Slider.d.ts +6 -0
- package/widgets/smartMapping/BinaryColorSizeSlider/BinaryColorSizeSliderViewModel.d.ts +2 -0
- package/widgets/smartMapping/ClassedColorSlider/ClassedColorSliderViewModel.d.ts +2 -0
- package/widgets/smartMapping/ClassedSizeSlider/ClassedSizeSliderViewModel.d.ts +2 -0
- package/widgets/smartMapping/ColorSizeSlider/ColorSizeSliderViewModel.d.ts +2 -0
- package/widgets/smartMapping/ColorSlider/ColorSliderViewModel.d.ts +2 -0
- package/widgets/smartMapping/HeatmapSlider/HeatmapSliderViewModel.d.ts +2 -0
- package/widgets/smartMapping/OpacitySlider/OpacitySliderViewModel.d.ts +2 -0
- package/widgets/smartMapping/SizeSlider/SizeSliderViewModel.d.ts +3 -0
- package/widgets/smartMapping/SmartMappingPrimaryHandleSliderViewModel.d.ts +2 -0
- package/widgets/smartMapping/SmartMappingSliderViewModel.d.ts +2 -0
- package/widgets/smartMapping/types.d.ts +30 -7
- package/widgets/support/FilterBuilder/FilterBuilderViewModel.d.ts +21 -11
- package/widgets/support/FilterBuilder/FilterBuilderViewModel.js +1 -1
- package/widgets/support/FilterBuilder/types.d.ts +28 -0
- package/widgets/support/FilterBuilder.js +1 -1
- package/widgets/support/FilterCondition/FilterConditionViewModel.d.ts +24 -0
- package/widgets/support/FilterCondition/FilterConditionViewModel.js +1 -1
- package/widgets/support/FilterCondition/types.d.ts +16 -1
- package/widgets/support/FilterCondition.js +1 -1
- package/widgets/support/SnappingControls/snappingLayerListUtils.js +1 -1
- package/widgets/support/iconUtils.js +1 -1
- package/assets/esri/core/workers/chunks/0606ab6fdfc1dfea3856.js +0 -1
- package/assets/esri/core/workers/chunks/078dcd17f46403d44b24.js +0 -1
- package/assets/esri/core/workers/chunks/1289204f8ca96032c17a.js +0 -1
- package/assets/esri/core/workers/chunks/12b5a645c0987a0efe54.js +0 -2
- package/assets/esri/core/workers/chunks/152fe3d6ad7aebbd23d1.js +0 -1
- package/assets/esri/core/workers/chunks/17b938ba49fb1e7ab8c4.js +0 -1
- package/assets/esri/core/workers/chunks/1dbb3e25e005a8220779.js +0 -2
- package/assets/esri/core/workers/chunks/3d6fef25af7e1a51e1bd.js +0 -1
- package/assets/esri/core/workers/chunks/3ef367c9b7bf1588307d.js +0 -1
- package/assets/esri/core/workers/chunks/5f4feca26102088ea565.js +0 -1
- package/assets/esri/core/workers/chunks/74211d096cc3296e0968.js +0 -1
- package/assets/esri/core/workers/chunks/7926faab76a721a2e1c4.js +0 -1
- package/assets/esri/core/workers/chunks/ad28486bc6afaa346de5.js +0 -1
- package/assets/esri/core/workers/chunks/ad29c729e90b5866713c.js +0 -1
- package/assets/esri/core/workers/chunks/b72a2514aa4cc4ae7d1b.js +0 -1
- package/assets/esri/core/workers/chunks/bb51cf52b8ea8283f4f8.js +0 -1
- package/assets/esri/core/workers/chunks/be761749f8d77fbd9df5.js +0 -1
- package/assets/esri/core/workers/chunks/dbfd25aa0d19aed5890c.js +0 -1
- package/assets/esri/core/workers/chunks/de28a86775235bd5d3c4.js +0 -2
- package/assets/esri/core/workers/chunks/f6cfc901267a229de7a1.js +0 -2
- package/assets/esri/core/workers/chunks/fb147097149a89e671ff.js +0 -1
- package/support/revision.js +0 -2
- /package/assets/esri/core/workers/chunks/{1dbb3e25e005a8220779.js.LICENSE.txt → 1b946714ca4a1a7359d4.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{f6cfc901267a229de7a1.js.LICENSE.txt → 2a1ec30f9ad305763f81.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{c3b96d1d43afccd23e45.js.LICENSE.txt → 590e6c70206122e4cc3c.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{cfaba0470619786e1ef8.js.LICENSE.txt → 68d8ae42ab71d01a70a5.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{de28a86775235bd5d3c4.js.LICENSE.txt → 8dc1c3042267618fd710.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{12b5a645c0987a0efe54.js.LICENSE.txt → 96c50a0dda0f1503ef92.js.LICENSE.txt} +0 -0
|
@@ -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{
|
|
2
|
+
import{G as e}from"./GeometryCursor.js";import{t}from"./Geometry.js";class n{getOperatorType(){return 10303}supportsCurves(){return!0}accelerateGeometry(e,t,n){return!1}canAccelerateGeometry(e){return!1}executeMany(e,t,n){return new r(e,t,n)}execute(e,t,n){let r=e.clone();return r.applyTransformation(t),r}}class r extends e{m_inputGeometryCursor;m_transformation;m_index;constructor(e,t,n){super(),this.m_index=-1,this.m_transformation=t.clone(),this.m_inputGeometryCursor=e}next(){let e;if(e=this.m_inputGeometryCursor.next()){t(e),this.m_index=this.m_inputGeometryCursor.getGeometryID();let n=e.clone();return n.applyTransformation(this.m_transformation),n}return null}getGeometryID(){return this.m_index}tock(){return!0}getRank(){return 1}}export{n as O};
|
package/chunks/OperatorClip.js
CHANGED
|
@@ -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{a as t,c as n,G as r,i,g as a,d as o}from"./Geometry.js";import{c as s}from"./Envelope.js";import{Envelope2D as c}from"./Envelope2D.js";import{E as l,n as u,L as d,S as f}from"./MultiPathImpl.js";import{d as p,m,P as h,e as g,f as _}from"./Point2D.js";function v(e,t,n,r,i){return y(e,t,null,n,r,i)}function y(e,n,l,u,d,f){let p=e.getGeometryType();if(p===r.enumPoint){let t=e.getXY();return n.contains(t)?e:e.createInstance()}if(p===r.enumEnvelope){let t=c.constructEmpty();if(e.queryEnvelope(t),t.intersect(n)){let n=e.clone();return n.setEnvelope(t),n}return e.createInstance()}if(e.isEmpty())return e;if(n.isEmpty())return e.createInstance();let m=n.clone();{let t=new c;if(e.queryLooseEnvelope(t),m.containsEnvelope(t))return e;if(!m.isIntersecting(t))return e.createInstance();d===0&&(t.intersect(m),t.inflate(Math.max(t.maxDimension()*.1,1)),t.intersect(m),m.assign(t))}let h=u;if((l!==null||Number.isNaN(h))&&(h=s(l,m,!1).total()),p===r.enumGeometryCollection){let t=e,n=e.createInstance();for(let e=0,r=t.getGeometryCount();e<r;e++){let r=t.getGeometry(e);if(r.isEmpty())continue;let i=v(r,m,h,d,f);i.isEmpty()||(i===r?n.addGeometry(i.clone()):n.addGeometry(i))}return n}i(p)||t(`Clip: geometry not supported`);let g=e.getImpl().getAccelerators();if(g!==null){let e=g.getRasterizedGeometry();a(e===null)}switch(p){case r.enumMultiPoint:{let t=e,n,r=t.getPointCount(),i=t.getImpl().getAttributeStreamRef(0),o=0;for(let e=0;e<r;e++){let r=i.readPoint2D(2*e);m.contains(r)||(o===0&&(n=t.createInstance()),o<e&&n.addPoints(t,o,e),o=e+1)}return o>0&&n.addPoints(t,o,r),o===0?t:(a(n!==null),n)}case r.enumPolygon:case r.enumPolyline:return x(e,m,h,d,f);default:o(``)}}function b(e,t,n,r,i,a){let o=new S(t,a),s=new c;return e.queryLooseEnvelope(s),t.containsEnvelope(s)?e:t.isIntersecting(s)?o.clipPolesOut(e,i):e.createInstance()}function x(e,t,n,r,i){return new S(t,i).clipMultiPath2(e,n,r)}class S{m_extent;m_shape=new l;m_geometry=u;m_verticesOnExtentIndex=-1;m_verticesOnExtent=[];m_progressTracker;m_progressCounter=0;constructor(e,t){this.m_extent=new c(e),this.m_progressTracker=t}progress_(){}clipMultiPath2(e,t,n){return e.getGeometryType()===r.enumPolygon?this.clipPolygonOrProjectedPolyline2(e,n):this.clipPolyline(e,t)}clipPolygonOrProjectedPolyline2(e,t){let n=e.getGeometryType()===r.enumPolyline;if(this.m_extent.width()===0||this.m_extent.height()===0)return e.createInstance();let i=c.constructEmpty();e.queryLooseEnvelope(i),this.m_geometry=n?this.m_shape.addGeometry(e):this.m_shape.addGeometry(e,this.m_extent);let o=c.constructEmpty(),s=c.constructEmpty(),l=new h,f=new h,g=p(9,NaN),_=p(9,NaN),v=m(h,9),y=null,b=new d,x=[],C=!1;for(let e=0;!C&&e<4;e++){let t=!1,r=!!(e&1),c=0;switch(e){case 0:c=this.m_extent.xmin,t=i.xmin<=c&&i.xmax>=c;break;case 1:c=this.m_extent.ymin,t=i.ymin<=c&&i.ymax>=c;break;case 2:c=this.m_extent.xmax,t=i.xmin<=c&&i.xmax>=c;break;case 3:c=this.m_extent.ymax,t=i.ymin<=c&&i.ymax>=c}if(t){C=!0;for(let t=this.m_shape.getFirstPath(this.m_geometry);t!==u;){let i=!0,d=-1,p=-1,m=this.m_shape.getFirstVertex(t),h=m;do{this.progress_(),y=this.m_shape.getSegment(h);let t=y;if(t===null){let e=this.m_shape.getNextVertex(h);if(e===u){a(n),d===0&&x.push(h);break}this.m_shape.queryXY(h,l),b.setStartXY(l),this.m_shape.queryXY(e,f),b.setEndXY(f),t=b}t.queryLooseEnvelope(o);let m=S.checkSegmentIntersection(o,e,c);t.isCurve()&&m===0&&t.isCurve()&&(b.setStartXY(t.getStartXY()),b.setEndXY(t.getEndXY()),this.m_shape.replaceCurveWithLine(h),t=b,b.queryEnvelope(o),m=S.checkSegmentIntersection(o,e,c));let w=0,T=u;if(m===-1){let n=t.intersectionWithAxis2D(r,c,g,_);if(n>0){let e=null;if(t.isCurve()){e=v,a(n<=9);for(let e=0;e<n;e++)r?v[e].setCoords(g[e],c):v[e].setCoords(c,g[e]);w=this.m_shape.splitSegmentAxisAware(h,_,n,e,+!!r)}else w=this.m_shape.splitSegmentAxisAware(h,_,n,null,-1)}else w=0;w+=1;let o=h,u=this.m_shape.getNextVertex(o);t=null;for(let t=0;t<w;t++){this.m_shape.queryXY(o,l),this.m_shape.queryXY(u,f),y=this.m_shape.getSegment(o);let t=y;t===null&&(b.setStartXY(l),b.setEndXY(f),t=b),t.queryEnvelope(s);let n=S.checkSegmentIntersection(s,e,c);t.isCurve()&&n===0&&(this.m_shape.replaceCurveWithLine(o),b.setStartXY(l),b.setEndXY(f),t=b,t.queryEnvelope(s),n=S.checkSegmentIntersection(s,e,c)),n===-1&&(r?Math.abs(l.y-c)<Math.abs(f.y-c)?(l.y=c,this.m_shape.setXY(o,l)):(f.y=c,this.m_shape.setXY(u,f)):Math.abs(l.x-c)<Math.abs(f.x-c)?(l.x=c,this.m_shape.setXY(o,l)):(f.x=c,this.m_shape.setXY(u,f)),y=this.m_shape.getSegment(o),t=y,t===null&&(b.setStartXY(l),b.setEndXY(f),t=b),t.queryEnvelope(s),n=S.checkSegmentIntersection(s,e,c),n===-1&&(n=S.checkSegmentIntersectionLoose(s,e,c)));let a=d;d=n,p===-1&&(p=d),a===0&&d===1||a===1&&d===0||a===0&&d===0&&x.push(o),d===1&&(C=!1,i=!1),o=u,T=o,u=this.m_shape.getNextVertex(u)}}if(w===0){let e=d;d=m,p===-1&&(p=d),e===0&&d>=1||e>=1&&d===0||e===0&&d===0&&x.push(h),d===1&&(C=!1,i=!1),T=this.m_shape.getNextVertex(h)}if(h=T,x.length>=256){for(let e=1,t=x.length-1;e<t;e++){let t=x[e];n?this.m_shape.snapVertexForPoleClipping(t,c):this.m_shape.removeVertex(t,!1)}x[1]=x.at(-1),x.length=2}}while(h!==m);if(!i){p===0&&(n||d===0||d===2)&&x.push(m);for(let e=0,t=x.length;e<t;e++){let t=x[e];n?this.m_shape.snapVertexForPoleClipping(t,c):this.m_shape.removeVertex(t,!1)}}x.length=0,t=i||this.m_shape.getPathSize(t)===0?this.m_shape.removePath(t):this.m_shape.getNextPath(t)}}}if(C)return e.createInstance();y=null,n?this.removeSpikesAlongPoles():this.resolveBoundaryOverlaps(),t>0&&this.densifyAlongClipExtent(t);let w=this.m_shape.getGeometry(this.m_geometry);return w.getGeometryType()===r.enumPolygon&&w.setFillRule(e.getFillRule()),w}clipPolyline(e,t){let n=c.constructEmpty(),r=c.constructEmpty(),i=p(9,NaN),a=p(9,NaN),o=new f,s=e,l=c.constructEmpty();e.queryLooseEnvelope(l);for(let t=0;t<4;t++){let c=!1,u=!!(t&1),d=0;switch(t){case 0:d=this.m_extent.xmin,c=l.xmin<=d&&l.xmax>=d;break;case 1:d=this.m_extent.ymin,c=l.ymin<=d&&l.ymax>=d;break;case 2:d=this.m_extent.xmax,c=l.xmin<=d&&l.xmax>=d;break;case 3:d=this.m_extent.ymax,c=l.ymin<=d&&l.ymax>=d}if(!c)continue;let f=s;s=e.createInstance();let p=f.getImpl().querySegmentIterator();p.resetToFirstPath();let m=new h,g=new h;for(;p.nextPath();){let e=-1,c=!0;for(;p.hasNextSegment();){this.progress_();let l=p.nextSegment(),f=l.isDegenerate(0);l.queryLooseEnvelope(n);let h=S.checkSegmentIntersection(n,t,d);if(h===-1){let n=l.intersectionWithAxis2D(u,d,i,a),p=0;m.assign(l.getStartXY());for(let h=0;h<=n;h++){let _=h<n?a[h]:1;if(p===_)continue;l.queryCut(p,_,o,!1);let v=o.get(),y=!1;if(v.getStartXY().equals(m)||(v.setStartXY(m),y=!0),h<n&&(u?(g.x=i[h],g.y=d):(g.x=d,g.y=i[h]),v.getEndXY().equals(g)||(v.setEndXY(g),y=!0)),y&&v.normalizeAfterEndpointChange(),!f&&v.isDegenerate(0))continue;v.queryEnvelope(r);let b=S.checkSegmentIntersection(r,t,d);if(b===-1){let e=v.getStartXY(),n=v.getEndXY();y=!1,u?Math.abs(e.y-d)<Math.abs(n.y-d)?(e.y=d,v.setStartXY(e),e.equals(v.getStartXY())||(v.setStartXY(e),y=!0)):(n.y=d,n.equals(v.getEndXY())||(v.setEndXY(n),y=!0)):Math.abs(e.x-d)<Math.abs(n.x-d)?(e.x=d,e.equals(v.getStartXY())||(v.setStartXY(e),y=!0)):(n.x=d,n.equals(v.getEndXY())||(v.setEndXY(n),y=!0)),y&&v.normalizeAfterEndpointChange(),v.queryEnvelope(r),b=S.checkSegmentIntersection(r,t,d),b===-1&&(b=S.checkSegmentIntersectionLoose(r,t,d))}m.assign(v.getEndXY()),p=_,e=b,e>=1?(s.addSegment(v,c),c=!1):c=!0}}else e=h,e>=1?(s.addSegment(l,c),c=!1):c=!0}}}return s}static checkSegmentIntersection(e,t,n){switch(t){case 0:return e.xmin<n&&e.xmax<=n?0:e.xmin>=n?e.xmax===n?2:1:-1;case 1:return e.ymin<n&&e.ymax<=n?0:e.ymin>=n?e.ymax===n?2:1:-1;case 2:return e.xmin>=n&&e.xmax>n?0:e.xmax<=n?e.xmin===n?2:1:-1;case 3:return e.ymin>=n&&e.ymax>n?0:e.ymax<=n?e.ymin===n?2:1:-1}return o(``),0}static checkSegmentIntersectionLoose(e,t,n){switch(t){case 0:{let t=Math.abs(e.xmin-n),r=Math.abs(e.xmax-n);return e.xmin<n?t>r?0:1:(o(``),1)}case 1:{let t=Math.abs(e.ymin-n),r=Math.abs(e.ymax-n);return e.ymin<n?t>r?0:1:(o(``),1)}case 2:{let t=Math.abs(e.xmin-n),r=Math.abs(e.xmax-n);return e.xmax>n?t<r?0:1:(o(``),1)}case 3:{let t=Math.abs(e.ymin-n),r=Math.abs(e.ymax-n);return e.ymax>n?t<r?0:1:(o(``),1)}}return o(``),0}resolveBoundaryOverlaps(){this.m_verticesOnExtentIndex=-1,this.splitSegments(!1,this.m_extent.xmin),this.splitSegments(!1,this.m_extent.xmax),this.splitSegments(!0,this.m_extent.ymin),this.splitSegments(!0,this.m_extent.ymax),this.m_verticesOnExtent.length=0,this.m_verticesOnExtentIndex=this.m_shape.createUserIndex();let e=new h;for(let t=this.m_shape.getFirstPath(this.m_geometry);t!==u;t=this.m_shape.getNextPath(t)){let n=this.m_shape.getFirstVertex(t);for(let r=0,i=this.m_shape.getPathSize(t);r<i;r++,n=this.m_shape.getNextVertex(n))this.progress_(),this.m_shape.queryXY(n,e),(this.m_extent.xmin===e.x||this.m_extent.xmax===e.x||this.m_extent.ymin===e.y||this.m_extent.ymax===e.y)&&(this.m_shape.setUserIndex(n,this.m_verticesOnExtentIndex,this.m_verticesOnExtent.length),this.m_verticesOnExtent.push(n))}this.dbgCheckPathFirst(),this.resolveOverlaps(!1,this.m_extent.xmin),this.dbgCheckPathFirst(),this.resolveOverlaps(!1,this.m_extent.xmax),this.dbgCheckPathFirst(),this.resolveOverlaps(!0,this.m_extent.ymin),this.dbgCheckPathFirst(),this.resolveOverlaps(!0,this.m_extent.ymax),this.fixPaths()}densifyAlongClipExtent(e){let t=new h(0,0),n=new h(0,0),r=p(2048,NaN);for(let i=this.m_shape.getFirstPath(this.m_geometry);i!==u;i=this.m_shape.getNextPath(i)){let s=this.m_shape.getFirstVertex(i),c=s;do{let i=this.m_shape.getNextVertex(c);this.m_shape.queryXY(c,t);let s=-1;if(t.x===this.m_extent.xmin?(this.m_shape.queryXY(i,n),n.x===this.m_extent.xmin&&(s=1)):t.x===this.m_extent.xmax&&(this.m_shape.queryXY(i,n),n.x===this.m_extent.xmax&&(s=1)),t.y===this.m_extent.ymin?(this.m_shape.queryXY(i,n),n.y===this.m_extent.ymin&&(s=0)):t.y===this.m_extent.ymax&&(this.m_shape.queryXY(i,n),n.y===this.m_extent.ymax&&(s=0)),s===-1){c=i;continue}if(this.isCurve(c)){c=i;continue}let l=t.clone(),u=new h(0,0);if(s){let r=t.y-this.m_extent.ymin;u.y=g(n.y-t.y),l.y=e*_(Math.floor(Math.abs(r)/e),r)+this.m_extent.ymin,u.y<0&&(l.y+=e)}else{let r=t.x-this.m_extent.xmin;u.x=g(n.x-t.x),l.x=e*_(Math.floor(Math.abs(r)/e),r)+this.m_extent.xmin,u.x<0&&(l.x+=e)}let d=s?n.y-t.y:n.x-t.x,f=Math.abs(d);if(f/e>65536&&o(``),f>0){let n=Math.trunc(f/e)+2;r.length<n&&(r.length=n);let i=0;for(let n=0;;n++){let o=l.add(u.mul(n*e)),c=(s?o.y-t.y:o.x-t.x)/d;if(c>=1)break;c<=0||(a(i<=r.length),r[i]=c,i++)}i!==0&&this.m_shape.splitSegment(c,r,i)}c=i}while(c!==s)}}splitSegments(e,t){let n=-1,r=new h,i=[];for(let a=this.m_shape.getFirstPath(this.m_geometry);a!==u;a=this.m_shape.getNextPath(a)){let o=this.m_shape.getFirstVertex(a),s=u;for(let c=0,l=this.m_shape.getPathSize(a);c<l;c++,o=s)if(this.progress_(),s=this.m_shape.getNextVertex(o),this.m_shape.queryXY(o,r),(e?r.y===t:r.x===t)&&(this.m_shape.queryXY(s,r),e?r.y===t:r.x===t)){if(this.isCurve(o))continue;n===-1&&(n=this.m_shape.createUserIndex()),this.m_shape.getUserIndex(o,n)!==1&&(i.push(o),this.m_shape.setUserIndex(o,n,1)),this.m_shape.getUserIndex(s,n)!==1&&(i.push(s),this.m_shape.setUserIndex(s,n,1))}}if(n!==-1&&this.m_shape.removeUserIndex(n),i.length<3)return;i.sort((e,t)=>this.compareVertices(e,t));let a=new h,o=new h,s=new h;o.setNAN();let c=-1,l=[],d=[],f=l,p=d,m=this.m_shape.createUserIndex(),g=this.m_shape.createUserIndex();for(let n=0,l=i.length;n<l;n++){let l=i[n];if(this.m_shape.queryXY(l,r),!r.isEqualPoint2D(o)){if(c===-1){c=n,o.setCoordsPoint2D(r);continue}for(let r=c;r<n;r++){let n=i[r],s=this.m_shape.getNextVertex(n),c=this.m_shape.getPrevVertex(n),l=!1;this.m_shape.queryXY(s,a),o.compare(a)<0&&(e?a.y===t:a.x===t)&&(this.isCurve(n)||(f.push(n),l=!0,this.m_shape.setUserIndex(n,g,1))),this.m_shape.queryXY(c,a),o.compare(a)<0&&(e?a.y===t:a.x===t)&&(this.isCurve(c)||(l||f.push(n),this.m_shape.setUserIndex(n,m,1)))}for(let e=0,t=f.length;e<t;e++){let t=f[e],n=this.m_shape.getUserIndex(t,m),i=this.m_shape.getUserIndex(t,g);if(n===1){let e=this.m_shape.getPrevVertex(t);this.m_shape.queryXY(e,s);let n=0;if(!s.isEqualPoint2D(r)){let i=h.distance(o,s);n=h.distance(s,r)/i,n===0?n=2**-52:n===1&&(n=1-2**-52),this.m_shape.splitSegment(e,[n],1);let a=this.m_shape.getPrevVertex(t);this.m_shape.setXY(a,r),p.push(a),this.m_shape.setUserIndex(a,m,1),this.m_shape.setUserIndex(a,g,-1)}}if(i===1){let e=this.m_shape.getNextVertex(t);this.m_shape.queryXY(e,s);let n=0;if(!s.isEqualPoint2D(r)){let e=h.distance(o,s);n=h.distance(o,r)/e,n===0?n=2**-52:n===1&&(n=1-2**-52),this.m_shape.splitSegment(t,[n],1);let i=this.m_shape.getNextVertex(t);this.m_shape.setXY(i,r),p.push(i),this.m_shape.setUserIndex(i,m,-1),this.m_shape.setUserIndex(i,g,1)}}}let l=f;f=p,p=l,p.length=0,c=n,o.setCoordsPoint2D(r)}}this.m_shape.removeUserIndex(m),this.m_shape.removeUserIndex(g)}resolveOverlaps(e,t){let n=new h,r=[],i=-1;for(let a=0,o=this.m_verticesOnExtent.length;a<o;a++){this.progress_();let o=this.m_verticesOnExtent[a];if(o===u)continue;let s=this.m_shape.getNextVertex(o);if(this.m_shape.queryXY(o,n),(e?n.y===t:n.x===t)&&(this.m_shape.queryXY(s,n),e?n.y===t:n.x===t)){if(this.isCurve(o))continue;i===-1&&(i=this.m_shape.createUserIndex()),this.m_shape.getUserIndex(o,i)!==-2&&(r.push(o),this.m_shape.setUserIndex(o,i,-2)),this.m_shape.getUserIndex(s,i)!==-2&&(r.push(s),this.m_shape.setUserIndex(s,i,-2))}}if(r.length===0){i!==-1&&this.m_shape.removeUserIndex(i);return}a(i!==-1),r.sort((e,t)=>this.compareVertices(e,t));for(let e=0,t=r.length;e<t;e++){let t=r[e];this.m_shape.setUserIndex(t,i,e)}let o=new h,s=new h;s.setNAN();let c=-1;for(let a=0,l=r.length;a<l;a++){this.progress_();let l=r[a];if(l!==u&&(this.m_shape.queryXY(l,n),!n.isEqualPoint2D(s))){if(c!==-1)for(;;){let n=!1,l=a;for(let d=c;d<l;d++){let c=r[d];if(c===u)continue;let l=u,f=this.m_shape.getNextVertex(c);this.m_shape.queryXY(f,o),s.compare(o)<0&&(e?o.y===t:o.x===t)&&(this.isCurve(c)||(l=f));let p=u,m=this.m_shape.getPrevVertex(c);if(this.m_shape.queryXY(m,o),s.compare(o)<0&&(e?o.y===t:o.x===t)&&(this.isCurve(m)||(p=m)),l!==u&&p!==u){this.beforeRemoveVertex(c,r,i),this.m_shape.removeVertex(c,!1),this.beforeRemoveVertex(l,r,i),this.m_shape.removeVertex(l,!1),n=!0;continue}if(l!==u||p!==u){for(let f=d+1;f<a;f++){let a=r[f];if(a===u)continue;let d=this.m_shape.getNextVertex(a),m=u;this.m_shape.queryXY(d,o),s.compare(o)<0&&(e?o.y===t:o.x===t)&&(this.isCurve(a)||(m=d));let h=this.m_shape.getPrevVertex(a),g=u;if(this.m_shape.queryXY(h,o),s.compare(o)<0&&(e?o.y===t:o.x===t)&&(this.isCurve(h)||(g=h)),m!==u&&g!==u){this.beforeRemoveVertex(a,r,i),this.m_shape.removeVertex(a,!1),this.beforeRemoveVertex(m,r,i),this.m_shape.removeVertex(m,!1),n=!0;break}if(l!==u&&g!==u){this.removeOverlap(r,c,l,a,g,i),n=!0;break}if(p!==u&&m!==u){this.removeOverlap(r,a,m,c,p,i),n=!0;break}}if(n)break}}if(!n)break}c=a,s.setCoordsPoint2D(n)}}this.m_shape.removeUserIndex(i)}beforeRemoveVertex(e,t,n){let r=this.m_shape.getUserIndex(e,n);a(r>=0),t[r]=u,r=this.m_shape.getUserIndex(e,this.m_verticesOnExtentIndex),a(r>=0),this.m_verticesOnExtent[r]=u;let i=this.m_shape.getPathFromVertex(e);i!==u&&this.m_shape.getFirstVertex(i)===e&&(this.m_shape.setFirstVertex(i,u),this.m_shape.setLastVertex(i,u))}removeOverlap(e,t,n,r,i,a){this.m_shape.setNextVertex(t,r),this.m_shape.setPrevVertex(r,t),this.m_shape.setPrevVertex(n,i),this.m_shape.setNextVertex(i,n),this.beforeRemoveVertex(r,e,a),this.m_shape.removeVertexInternal(r,!1),this.beforeRemoveVertex(i,e,a),this.m_shape.removeVertexInternal(i,!0)}removeSpikesAlongPoles(){this.removeSpikesOnPole(this.m_extent.ymin),this.removeSpikesOnPole(this.m_extent.ymax)}removeSpikesOnPole(e){for(let t=this.m_shape.getFirstPath(this.m_geometry);t!==u;t=this.m_shape.getNextPath(t)){let n=this.m_shape.getPathSize(t);if(n<3)continue;let r=this.m_shape.getFirstVertex(t),i=new h;this.m_shape.queryXY(r,i);let a=i.y===e&&!this.isCurve(r);r=this.m_shape.getNextVertex(r);let o=new h;this.m_shape.queryXY(r,o);let s=o.y===e&&!this.isCurve(r);r=this.m_shape.getNextVertex(r);let c=new h;for(let t=0,l=n-2;t<l;t++,r=this.m_shape.getNextVertex(r)){this.progress_(),this.m_shape.queryXY(r,c);let t=c.y===e;if(s&&a&&t&&(o.x-i.x)*(c.x-o.x)<=0){this.m_shape.removeVertex(this.m_shape.getPrevVertex(r),!1),o.setCoordsPoint2D(c),s=t&&!this.isCurve(r);continue}i.setCoordsPoint2D(o),a=s,o.setCoordsPoint2D(c),s=t&&!this.isCurve(r)}}}fixPaths(){for(let e=0,t=this.m_verticesOnExtent.length;e<t;e++){let t=this.m_verticesOnExtent[e];t!==u&&this.m_shape.setPathToVertex(t,u)}let e=this.m_shape.hasCurves(),t=0,n=0;for(let e=this.m_shape.getFirstPath(this.m_geometry);e!==u;){let r=this.m_shape.getFirstVertex(e);if(r===u||e!==this.m_shape.getPathFromVertex(r)){let t=e;e=this.m_shape.getNextPath(e),this.m_shape.setFirstVertex(t,u),this.m_shape.removePathOnly(t);continue}let i=r,a=0;do this.m_shape.setPathToVertex(i,e),a++,i=this.m_shape.getNextVertex(i);while(i!==r);this.m_shape.setRingAreaValid(e,!1),this.m_shape.setLastVertex(e,this.m_shape.getPrevVertex(r)),this.m_shape.setPathSize(e,a),n+=a,t++,e=this.m_shape.getNextPath(e)}for(let r=0,i=this.m_verticesOnExtent.length;r<i;r++){let i=this.m_verticesOnExtent[r];if(i===u)continue;let o=this.m_shape.getPathFromVertex(i);if(o!==u)continue;o=this.m_shape.insertPath(this.m_geometry,u);let s=!1,c=0,l=i;do this.m_shape.setPathToVertex(i,o),c++,e&&c<=2&&(s||=this.isCurve(i)),i=this.m_shape.getNextVertex(i);while(i!==l);if(s?c===0:c<=2){let e=this.m_shape.getUserIndex(l,this.m_verticesOnExtentIndex);a(e>=0),this.m_verticesOnExtent[e]=u;let t=this.m_shape.removeVertex(l,!1);c===2&&(e=this.m_shape.getUserIndex(t,this.m_verticesOnExtentIndex),e>=0&&(this.m_verticesOnExtent[e]=u),this.m_shape.removeVertex(t,!1));let n=o;o=this.m_shape.getNextPath(o),this.m_shape.setFirstVertex(n,u),this.m_shape.removePathOnly(n);continue}this.m_shape.setClosedPath(o,!0),this.m_shape.setPathSize(o,c),this.m_shape.setFirstVertex(o,l),this.m_shape.setLastVertex(o,this.m_shape.getPrevVertex(l)),this.m_shape.setRingAreaValid(o,!1),n+=c,t++}this.m_shape.setGeometryPathCount(this.m_geometry,t),this.m_shape.setGeometryVertexCount(this.m_geometry,n);let r=0;for(let e=this.m_shape.getFirstGeometry();e!==u;e=this.m_shape.getNextGeometry(e))r+=this.m_shape.getPointCount(e);this.m_shape.setTotalPointCount(r)}dbgCheckPathFirst(){}isCurve(e){return this.m_shape.getSegment(e)!==null}compareVertices(e,t){let n=new h;this.m_shape.queryXY(e,n);let r=new h;return this.m_shape.queryXY(t,r),n.compare(r)}clipPolesOut(e,t){return this.clipPolygonOrProjectedPolyline2(e,t)}}class C{getOperatorType(){return 10004}supportsCurves(){return!0}accelerateGeometry(e,t,n){return!1}canAccelerateGeometry(e){return!1}executeMany(e,t,n,r){return new w(e,t,n,r)}execute(e,t,n,r){return T(e,t,n,r)}}class w extends e{m_inputGeometryCursor;m_spatialRefImpl;m_progressTracker;m_envelope;m_tolerance;m_index;constructor(e,n,r,i){super(),this.m_progressTracker=i,this.m_index=-1,e||t(``),this.m_envelope=n,this.m_inputGeometryCursor=e,this.m_spatialRefImpl=r,this.m_tolerance=s(r,n,!1).total()}next(){let e;return(e=this.m_inputGeometryCursor.next())?(n(e),this.m_index=this.m_inputGeometryCursor.getGeometryID(),v(e,this.m_envelope,this.m_tolerance,0,this.m_progressTracker)):null}getGeometryID(){return this.m_index}tock(){return!0}getRank(){return 1}}function T(e,t,n,r){return y(e,t,n,NaN,0,r)}export{C as O,b as a,v as c};
|
|
2
|
+
import{G as e}from"./GeometryCursor.js";import{b as t,t as n,G as r,i,g as a,d as o}from"./Geometry.js";import{c as s}from"./Envelope.js";import{Envelope2D as c}from"./Envelope2D.js";import{E as l,n as u,L as d,S as f}from"./MultiPathImpl.js";import{c as p,d as m,P as h,h as g,j as _}from"./Point2D.js";function v(e,t,n,r,i){return y(e,t,null,n,r,i)}function y(e,n,l,u,d,f){let p=e.getGeometryType();if(p===r.enumPoint){let t=e.getXY();return n.contains(t)?e:e.createInstance()}if(p===r.enumEnvelope){let t=c.constructEmpty();if(e.queryEnvelope(t),t.intersect(n)){let n=e.clone();return n.setEnvelope(t),n}return e.createInstance()}if(e.isEmpty())return e;if(n.isEmpty())return e.createInstance();let m=n.clone();{let t=new c;if(e.queryLooseEnvelope(t),m.containsEnvelope(t))return e;if(!m.isIntersecting(t))return e.createInstance();d===0&&(t.intersect(m),t.inflate(Math.max(t.maxDimension()*.1,1)),t.intersect(m),m.assign(t))}let h=u;if((l!==null||Number.isNaN(h))&&(h=s(l,m,!1).total()),p===r.enumGeometryCollection){let t=e,n=e.createInstance();for(let e=0,r=t.getGeometryCount();e<r;e++){let r=t.getGeometry(e);if(r.isEmpty())continue;let i=v(r,m,h,d,f);i.isEmpty()||(i===r?n.addGeometry(i.clone()):n.addGeometry(i))}return n}i(p)||t(`Clip: geometry not supported`);let g=e.getImpl().getAccelerators();if(g!==null){let e=g.getRasterizedGeometry();a(e===null)}switch(p){case r.enumMultiPoint:{let t=e,n,r=t.getPointCount(),i=t.getImpl().getAttributeStreamRef(0),o=0;for(let e=0;e<r;e++){let r=i.readPoint2D(2*e);m.contains(r)||(o===0&&(n=t.createInstance()),o<e&&n.addPoints(t,o,e),o=e+1)}return o>0&&n.addPoints(t,o,r),o===0?t:(a(n!==null),n)}case r.enumPolygon:case r.enumPolyline:return x(e,m,h,d,f);default:o(``)}}function b(e,t,n,r,i,a){let o=new S(t,a),s=new c;return e.queryLooseEnvelope(s),t.containsEnvelope(s)?e:t.isIntersecting(s)?o.clipPolesOut(e,i):e.createInstance()}function x(e,t,n,r,i){return new S(t,i).clipMultiPath2(e,n,r)}class S{m_extent;m_shape=new l;m_geometry=u;m_verticesOnExtentIndex=-1;m_verticesOnExtent=[];m_progressTracker;m_progressCounter=0;constructor(e,t){this.m_extent=new c(e),this.m_progressTracker=t}progress_(){}clipMultiPath2(e,t,n){return e.getGeometryType()===r.enumPolygon?this.clipPolygonOrProjectedPolyline2(e,n):this.clipPolyline(e,t)}clipPolygonOrProjectedPolyline2(e,t){let n=e.getGeometryType()===r.enumPolyline;if(this.m_extent.width()===0||this.m_extent.height()===0)return e.createInstance();let i=c.constructEmpty();e.queryLooseEnvelope(i),this.m_geometry=n?this.m_shape.addGeometry(e):this.m_shape.addGeometry(e,this.m_extent);let o=c.constructEmpty(),s=c.constructEmpty(),l=new h,f=new h,g=p(9,NaN),_=p(9,NaN),v=m(h,9),y=null,b=new d,x=[],C=!1;for(let e=0;!C&&e<4;e++){let t=!1,r=!!(e&1),c=0;switch(e){case 0:c=this.m_extent.xmin,t=i.xmin<=c&&i.xmax>=c;break;case 1:c=this.m_extent.ymin,t=i.ymin<=c&&i.ymax>=c;break;case 2:c=this.m_extent.xmax,t=i.xmin<=c&&i.xmax>=c;break;case 3:c=this.m_extent.ymax,t=i.ymin<=c&&i.ymax>=c}if(t){C=!0;for(let t=this.m_shape.getFirstPath(this.m_geometry);t!==u;){let i=!0,d=-1,p=-1,m=this.m_shape.getFirstVertex(t),h=m;do{this.progress_(),y=this.m_shape.getSegment(h);let t=y;if(t===null){let e=this.m_shape.getNextVertex(h);if(e===u){a(n),d===0&&x.push(h);break}this.m_shape.queryXY(h,l),b.setStartXY(l),this.m_shape.queryXY(e,f),b.setEndXY(f),t=b}t.queryLooseEnvelope(o);let m=S.checkSegmentIntersection(o,e,c);t.isCurve()&&m===0&&t.isCurve()&&(b.setStartXY(t.getStartXY()),b.setEndXY(t.getEndXY()),this.m_shape.replaceCurveWithLine(h),t=b,b.queryEnvelope(o),m=S.checkSegmentIntersection(o,e,c));let w=0,T=u;if(m===-1){let n=t.intersectionWithAxis2D(r,c,g,_);if(n>0){let e=null;if(t.isCurve()){e=v,a(n<=9);for(let e=0;e<n;e++)r?v[e].setCoords(g[e],c):v[e].setCoords(c,g[e]);w=this.m_shape.splitSegmentAxisAware(h,_,n,e,+!!r)}else w=this.m_shape.splitSegmentAxisAware(h,_,n,null,-1)}else w=0;w+=1;let o=h,u=this.m_shape.getNextVertex(o);t=null;for(let t=0;t<w;t++){this.m_shape.queryXY(o,l),this.m_shape.queryXY(u,f),y=this.m_shape.getSegment(o);let t=y;t===null&&(b.setStartXY(l),b.setEndXY(f),t=b),t.queryEnvelope(s);let n=S.checkSegmentIntersection(s,e,c);t.isCurve()&&n===0&&(this.m_shape.replaceCurveWithLine(o),b.setStartXY(l),b.setEndXY(f),t=b,t.queryEnvelope(s),n=S.checkSegmentIntersection(s,e,c)),n===-1&&(r?Math.abs(l.y-c)<Math.abs(f.y-c)?(l.y=c,this.m_shape.setXY(o,l)):(f.y=c,this.m_shape.setXY(u,f)):Math.abs(l.x-c)<Math.abs(f.x-c)?(l.x=c,this.m_shape.setXY(o,l)):(f.x=c,this.m_shape.setXY(u,f)),y=this.m_shape.getSegment(o),t=y,t===null&&(b.setStartXY(l),b.setEndXY(f),t=b),t.queryEnvelope(s),n=S.checkSegmentIntersection(s,e,c),n===-1&&(n=S.checkSegmentIntersectionLoose(s,e,c)));let a=d;d=n,p===-1&&(p=d),a===0&&d===1||a===1&&d===0||a===0&&d===0&&x.push(o),d===1&&(C=!1,i=!1),o=u,T=o,u=this.m_shape.getNextVertex(u)}}if(w===0){let e=d;d=m,p===-1&&(p=d),e===0&&d>=1||e>=1&&d===0||e===0&&d===0&&x.push(h),d===1&&(C=!1,i=!1),T=this.m_shape.getNextVertex(h)}if(h=T,x.length>=256){for(let e=1,t=x.length-1;e<t;e++){let t=x[e];n?this.m_shape.snapVertexForPoleClipping(t,c):this.m_shape.removeVertex(t,!1)}x[1]=x.at(-1),x.length=2}}while(h!==m);if(!i){p===0&&(n||d===0||d===2)&&x.push(m);for(let e=0,t=x.length;e<t;e++){let t=x[e];n?this.m_shape.snapVertexForPoleClipping(t,c):this.m_shape.removeVertex(t,!1)}}x.length=0,t=i||this.m_shape.getPathSize(t)===0?this.m_shape.removePath(t):this.m_shape.getNextPath(t)}}}if(C)return e.createInstance();y=null,n?this.removeSpikesAlongPoles():this.resolveBoundaryOverlaps(),t>0&&this.densifyAlongClipExtent(t);let w=this.m_shape.getGeometry(this.m_geometry);return w.getGeometryType()===r.enumPolygon&&w.setFillRule(e.getFillRule()),w}clipPolyline(e,t){let n=c.constructEmpty(),r=c.constructEmpty(),i=p(9,NaN),a=p(9,NaN),o=new f,s=e,l=c.constructEmpty();e.queryLooseEnvelope(l);for(let t=0;t<4;t++){let c=!1,u=!!(t&1),d=0;switch(t){case 0:d=this.m_extent.xmin,c=l.xmin<=d&&l.xmax>=d;break;case 1:d=this.m_extent.ymin,c=l.ymin<=d&&l.ymax>=d;break;case 2:d=this.m_extent.xmax,c=l.xmin<=d&&l.xmax>=d;break;case 3:d=this.m_extent.ymax,c=l.ymin<=d&&l.ymax>=d}if(!c)continue;let f=s;s=e.createInstance();let p=f.getImpl().querySegmentIterator();p.resetToFirstPath();let m=new h,g=new h;for(;p.nextPath();){let e=-1,c=!0;for(;p.hasNextSegment();){this.progress_();let l=p.nextSegment(),f=l.isDegenerate(0);l.queryLooseEnvelope(n);let h=S.checkSegmentIntersection(n,t,d);if(h===-1){let n=l.intersectionWithAxis2D(u,d,i,a),p=0;m.assign(l.getStartXY());for(let h=0;h<=n;h++){let _=h<n?a[h]:1;if(p===_)continue;l.queryCut(p,_,o,!1);let v=o.get(),y=!1;if(v.getStartXY().equals(m)||(v.setStartXY(m),y=!0),h<n&&(u?(g.x=i[h],g.y=d):(g.x=d,g.y=i[h]),v.getEndXY().equals(g)||(v.setEndXY(g),y=!0)),y&&v.normalizeAfterEndpointChange(),!f&&v.isDegenerate(0))continue;v.queryEnvelope(r);let b=S.checkSegmentIntersection(r,t,d);if(b===-1){let e=v.getStartXY(),n=v.getEndXY();y=!1,u?Math.abs(e.y-d)<Math.abs(n.y-d)?(e.y=d,v.setStartXY(e),e.equals(v.getStartXY())||(v.setStartXY(e),y=!0)):(n.y=d,n.equals(v.getEndXY())||(v.setEndXY(n),y=!0)):Math.abs(e.x-d)<Math.abs(n.x-d)?(e.x=d,e.equals(v.getStartXY())||(v.setStartXY(e),y=!0)):(n.x=d,n.equals(v.getEndXY())||(v.setEndXY(n),y=!0)),y&&v.normalizeAfterEndpointChange(),v.queryEnvelope(r),b=S.checkSegmentIntersection(r,t,d),b===-1&&(b=S.checkSegmentIntersectionLoose(r,t,d))}m.assign(v.getEndXY()),p=_,e=b,e>=1?(s.addSegment(v,c),c=!1):c=!0}}else e=h,e>=1?(s.addSegment(l,c),c=!1):c=!0}}}return s}static checkSegmentIntersection(e,t,n){switch(t){case 0:return e.xmin<n&&e.xmax<=n?0:e.xmin>=n?e.xmax===n?2:1:-1;case 1:return e.ymin<n&&e.ymax<=n?0:e.ymin>=n?e.ymax===n?2:1:-1;case 2:return e.xmin>=n&&e.xmax>n?0:e.xmax<=n?e.xmin===n?2:1:-1;case 3:return e.ymin>=n&&e.ymax>n?0:e.ymax<=n?e.ymin===n?2:1:-1}return o(``),0}static checkSegmentIntersectionLoose(e,t,n){switch(t){case 0:{let t=Math.abs(e.xmin-n),r=Math.abs(e.xmax-n);return e.xmin<n?t>r?0:1:(o(``),1)}case 1:{let t=Math.abs(e.ymin-n),r=Math.abs(e.ymax-n);return e.ymin<n?t>r?0:1:(o(``),1)}case 2:{let t=Math.abs(e.xmin-n),r=Math.abs(e.xmax-n);return e.xmax>n?t<r?0:1:(o(``),1)}case 3:{let t=Math.abs(e.ymin-n),r=Math.abs(e.ymax-n);return e.ymax>n?t<r?0:1:(o(``),1)}}return o(``),0}resolveBoundaryOverlaps(){this.m_verticesOnExtentIndex=-1,this.splitSegments(!1,this.m_extent.xmin),this.splitSegments(!1,this.m_extent.xmax),this.splitSegments(!0,this.m_extent.ymin),this.splitSegments(!0,this.m_extent.ymax),this.m_verticesOnExtent.length=0,this.m_verticesOnExtentIndex=this.m_shape.createUserIndex();let e=new h;for(let t=this.m_shape.getFirstPath(this.m_geometry);t!==u;t=this.m_shape.getNextPath(t)){let n=this.m_shape.getFirstVertex(t);for(let r=0,i=this.m_shape.getPathSize(t);r<i;r++,n=this.m_shape.getNextVertex(n))this.progress_(),this.m_shape.queryXY(n,e),(this.m_extent.xmin===e.x||this.m_extent.xmax===e.x||this.m_extent.ymin===e.y||this.m_extent.ymax===e.y)&&(this.m_shape.setUserIndex(n,this.m_verticesOnExtentIndex,this.m_verticesOnExtent.length),this.m_verticesOnExtent.push(n))}this.dbgCheckPathFirst(),this.resolveOverlaps(!1,this.m_extent.xmin),this.dbgCheckPathFirst(),this.resolveOverlaps(!1,this.m_extent.xmax),this.dbgCheckPathFirst(),this.resolveOverlaps(!0,this.m_extent.ymin),this.dbgCheckPathFirst(),this.resolveOverlaps(!0,this.m_extent.ymax),this.fixPaths()}densifyAlongClipExtent(e){let t=new h(0,0),n=new h(0,0),r=p(2048,NaN);for(let i=this.m_shape.getFirstPath(this.m_geometry);i!==u;i=this.m_shape.getNextPath(i)){let s=this.m_shape.getFirstVertex(i),c=s;do{let i=this.m_shape.getNextVertex(c);this.m_shape.queryXY(c,t);let s=-1;if(t.x===this.m_extent.xmin?(this.m_shape.queryXY(i,n),n.x===this.m_extent.xmin&&(s=1)):t.x===this.m_extent.xmax&&(this.m_shape.queryXY(i,n),n.x===this.m_extent.xmax&&(s=1)),t.y===this.m_extent.ymin?(this.m_shape.queryXY(i,n),n.y===this.m_extent.ymin&&(s=0)):t.y===this.m_extent.ymax&&(this.m_shape.queryXY(i,n),n.y===this.m_extent.ymax&&(s=0)),s===-1){c=i;continue}if(this.isCurve(c)){c=i;continue}let l=t.clone(),u=new h(0,0);if(s){let r=t.y-this.m_extent.ymin;u.y=g(n.y-t.y),l.y=e*_(Math.floor(Math.abs(r)/e),r)+this.m_extent.ymin,u.y<0&&(l.y+=e)}else{let r=t.x-this.m_extent.xmin;u.x=g(n.x-t.x),l.x=e*_(Math.floor(Math.abs(r)/e),r)+this.m_extent.xmin,u.x<0&&(l.x+=e)}let d=s?n.y-t.y:n.x-t.x,f=Math.abs(d);if(f/e>65536&&o(``),f>0){let n=Math.trunc(f/e)+2;r.length<n&&(r.length=n);let i=0;for(let n=0;;n++){let o=l.add(u.mul(n*e)),c=(s?o.y-t.y:o.x-t.x)/d;if(c>=1)break;c<=0||(a(i<=r.length),r[i]=c,i++)}i!==0&&this.m_shape.splitSegment(c,r,i)}c=i}while(c!==s)}}splitSegments(e,t){let n=-1,r=new h,i=[];for(let a=this.m_shape.getFirstPath(this.m_geometry);a!==u;a=this.m_shape.getNextPath(a)){let o=this.m_shape.getFirstVertex(a),s=u;for(let c=0,l=this.m_shape.getPathSize(a);c<l;c++,o=s)if(this.progress_(),s=this.m_shape.getNextVertex(o),this.m_shape.queryXY(o,r),(e?r.y===t:r.x===t)&&(this.m_shape.queryXY(s,r),e?r.y===t:r.x===t)){if(this.isCurve(o))continue;n===-1&&(n=this.m_shape.createUserIndex()),this.m_shape.getUserIndex(o,n)!==1&&(i.push(o),this.m_shape.setUserIndex(o,n,1)),this.m_shape.getUserIndex(s,n)!==1&&(i.push(s),this.m_shape.setUserIndex(s,n,1))}}if(n!==-1&&this.m_shape.removeUserIndex(n),i.length<3)return;i.sort((e,t)=>this.compareVertices(e,t));let a=new h,o=new h,s=new h;o.setNAN();let c=-1,l=[],d=[],f=l,p=d,m=this.m_shape.createUserIndex(),g=this.m_shape.createUserIndex();for(let n=0,l=i.length;n<l;n++){let l=i[n];if(this.m_shape.queryXY(l,r),!r.isEqualPoint2D(o)){if(c===-1){c=n,o.setCoordsPoint2D(r);continue}for(let r=c;r<n;r++){let n=i[r],s=this.m_shape.getNextVertex(n),c=this.m_shape.getPrevVertex(n),l=!1;this.m_shape.queryXY(s,a),o.compare(a)<0&&(e?a.y===t:a.x===t)&&(this.isCurve(n)||(f.push(n),l=!0,this.m_shape.setUserIndex(n,g,1))),this.m_shape.queryXY(c,a),o.compare(a)<0&&(e?a.y===t:a.x===t)&&(this.isCurve(c)||(l||f.push(n),this.m_shape.setUserIndex(n,m,1)))}for(let e=0,t=f.length;e<t;e++){let t=f[e],n=this.m_shape.getUserIndex(t,m),i=this.m_shape.getUserIndex(t,g);if(n===1){let e=this.m_shape.getPrevVertex(t);this.m_shape.queryXY(e,s);let n=0;if(!s.isEqualPoint2D(r)){let i=h.distance(o,s);n=h.distance(s,r)/i,n===0?n=2**-52:n===1&&(n=1-2**-52),this.m_shape.splitSegment(e,[n],1);let a=this.m_shape.getPrevVertex(t);this.m_shape.setXY(a,r),p.push(a),this.m_shape.setUserIndex(a,m,1),this.m_shape.setUserIndex(a,g,-1)}}if(i===1){let e=this.m_shape.getNextVertex(t);this.m_shape.queryXY(e,s);let n=0;if(!s.isEqualPoint2D(r)){let e=h.distance(o,s);n=h.distance(o,r)/e,n===0?n=2**-52:n===1&&(n=1-2**-52),this.m_shape.splitSegment(t,[n],1);let i=this.m_shape.getNextVertex(t);this.m_shape.setXY(i,r),p.push(i),this.m_shape.setUserIndex(i,m,-1),this.m_shape.setUserIndex(i,g,1)}}}let l=f;f=p,p=l,p.length=0,c=n,o.setCoordsPoint2D(r)}}this.m_shape.removeUserIndex(m),this.m_shape.removeUserIndex(g)}resolveOverlaps(e,t){let n=new h,r=[],i=-1;for(let a=0,o=this.m_verticesOnExtent.length;a<o;a++){this.progress_();let o=this.m_verticesOnExtent[a];if(o===u)continue;let s=this.m_shape.getNextVertex(o);if(this.m_shape.queryXY(o,n),(e?n.y===t:n.x===t)&&(this.m_shape.queryXY(s,n),e?n.y===t:n.x===t)){if(this.isCurve(o))continue;i===-1&&(i=this.m_shape.createUserIndex()),this.m_shape.getUserIndex(o,i)!==-2&&(r.push(o),this.m_shape.setUserIndex(o,i,-2)),this.m_shape.getUserIndex(s,i)!==-2&&(r.push(s),this.m_shape.setUserIndex(s,i,-2))}}if(r.length===0){i!==-1&&this.m_shape.removeUserIndex(i);return}a(i!==-1),r.sort((e,t)=>this.compareVertices(e,t));for(let e=0,t=r.length;e<t;e++){let t=r[e];this.m_shape.setUserIndex(t,i,e)}let o=new h,s=new h;s.setNAN();let c=-1;for(let a=0,l=r.length;a<l;a++){this.progress_();let l=r[a];if(l!==u&&(this.m_shape.queryXY(l,n),!n.isEqualPoint2D(s))){if(c!==-1)for(;;){let n=!1,l=a;for(let d=c;d<l;d++){let c=r[d];if(c===u)continue;let l=u,f=this.m_shape.getNextVertex(c);this.m_shape.queryXY(f,o),s.compare(o)<0&&(e?o.y===t:o.x===t)&&(this.isCurve(c)||(l=f));let p=u,m=this.m_shape.getPrevVertex(c);if(this.m_shape.queryXY(m,o),s.compare(o)<0&&(e?o.y===t:o.x===t)&&(this.isCurve(m)||(p=m)),l!==u&&p!==u){this.beforeRemoveVertex(c,r,i),this.m_shape.removeVertex(c,!1),this.beforeRemoveVertex(l,r,i),this.m_shape.removeVertex(l,!1),n=!0;continue}if(l!==u||p!==u){for(let f=d+1;f<a;f++){let a=r[f];if(a===u)continue;let d=this.m_shape.getNextVertex(a),m=u;this.m_shape.queryXY(d,o),s.compare(o)<0&&(e?o.y===t:o.x===t)&&(this.isCurve(a)||(m=d));let h=this.m_shape.getPrevVertex(a),g=u;if(this.m_shape.queryXY(h,o),s.compare(o)<0&&(e?o.y===t:o.x===t)&&(this.isCurve(h)||(g=h)),m!==u&&g!==u){this.beforeRemoveVertex(a,r,i),this.m_shape.removeVertex(a,!1),this.beforeRemoveVertex(m,r,i),this.m_shape.removeVertex(m,!1),n=!0;break}if(l!==u&&g!==u){this.removeOverlap(r,c,l,a,g,i),n=!0;break}if(p!==u&&m!==u){this.removeOverlap(r,a,m,c,p,i),n=!0;break}}if(n)break}}if(!n)break}c=a,s.setCoordsPoint2D(n)}}this.m_shape.removeUserIndex(i)}beforeRemoveVertex(e,t,n){let r=this.m_shape.getUserIndex(e,n);a(r>=0),t[r]=u,r=this.m_shape.getUserIndex(e,this.m_verticesOnExtentIndex),a(r>=0),this.m_verticesOnExtent[r]=u;let i=this.m_shape.getPathFromVertex(e);i!==u&&this.m_shape.getFirstVertex(i)===e&&(this.m_shape.setFirstVertex(i,u),this.m_shape.setLastVertex(i,u))}removeOverlap(e,t,n,r,i,a){this.m_shape.setNextVertex(t,r),this.m_shape.setPrevVertex(r,t),this.m_shape.setPrevVertex(n,i),this.m_shape.setNextVertex(i,n),this.beforeRemoveVertex(r,e,a),this.m_shape.removeVertexInternal(r,!1),this.beforeRemoveVertex(i,e,a),this.m_shape.removeVertexInternal(i,!0)}removeSpikesAlongPoles(){this.removeSpikesOnPole(this.m_extent.ymin),this.removeSpikesOnPole(this.m_extent.ymax)}removeSpikesOnPole(e){for(let t=this.m_shape.getFirstPath(this.m_geometry);t!==u;t=this.m_shape.getNextPath(t)){let n=this.m_shape.getPathSize(t);if(n<3)continue;let r=this.m_shape.getFirstVertex(t),i=new h;this.m_shape.queryXY(r,i);let a=i.y===e&&!this.isCurve(r);r=this.m_shape.getNextVertex(r);let o=new h;this.m_shape.queryXY(r,o);let s=o.y===e&&!this.isCurve(r);r=this.m_shape.getNextVertex(r);let c=new h;for(let t=0,l=n-2;t<l;t++,r=this.m_shape.getNextVertex(r)){this.progress_(),this.m_shape.queryXY(r,c);let t=c.y===e;if(s&&a&&t&&(o.x-i.x)*(c.x-o.x)<=0){this.m_shape.removeVertex(this.m_shape.getPrevVertex(r),!1),o.setCoordsPoint2D(c),s=t&&!this.isCurve(r);continue}i.setCoordsPoint2D(o),a=s,o.setCoordsPoint2D(c),s=t&&!this.isCurve(r)}}}fixPaths(){for(let e=0,t=this.m_verticesOnExtent.length;e<t;e++){let t=this.m_verticesOnExtent[e];t!==u&&this.m_shape.setPathToVertex(t,u)}let e=this.m_shape.hasCurves(),t=0,n=0;for(let e=this.m_shape.getFirstPath(this.m_geometry);e!==u;){let r=this.m_shape.getFirstVertex(e);if(r===u||e!==this.m_shape.getPathFromVertex(r)){let t=e;e=this.m_shape.getNextPath(e),this.m_shape.setFirstVertex(t,u),this.m_shape.removePathOnly(t);continue}let i=r,a=0;do this.m_shape.setPathToVertex(i,e),a++,i=this.m_shape.getNextVertex(i);while(i!==r);this.m_shape.setRingAreaValid(e,!1),this.m_shape.setLastVertex(e,this.m_shape.getPrevVertex(r)),this.m_shape.setPathSize(e,a),n+=a,t++,e=this.m_shape.getNextPath(e)}for(let r=0,i=this.m_verticesOnExtent.length;r<i;r++){let i=this.m_verticesOnExtent[r];if(i===u)continue;let o=this.m_shape.getPathFromVertex(i);if(o!==u)continue;o=this.m_shape.insertPath(this.m_geometry,u);let s=!1,c=0,l=i;do this.m_shape.setPathToVertex(i,o),c++,e&&c<=2&&(s||=this.isCurve(i)),i=this.m_shape.getNextVertex(i);while(i!==l);if(s?c===0:c<=2){let e=this.m_shape.getUserIndex(l,this.m_verticesOnExtentIndex);a(e>=0),this.m_verticesOnExtent[e]=u;let t=this.m_shape.removeVertex(l,!1);c===2&&(e=this.m_shape.getUserIndex(t,this.m_verticesOnExtentIndex),e>=0&&(this.m_verticesOnExtent[e]=u),this.m_shape.removeVertex(t,!1));let n=o;o=this.m_shape.getNextPath(o),this.m_shape.setFirstVertex(n,u),this.m_shape.removePathOnly(n);continue}this.m_shape.setClosedPath(o,!0),this.m_shape.setPathSize(o,c),this.m_shape.setFirstVertex(o,l),this.m_shape.setLastVertex(o,this.m_shape.getPrevVertex(l)),this.m_shape.setRingAreaValid(o,!1),n+=c,t++}this.m_shape.setGeometryPathCount(this.m_geometry,t),this.m_shape.setGeometryVertexCount(this.m_geometry,n);let r=0;for(let e=this.m_shape.getFirstGeometry();e!==u;e=this.m_shape.getNextGeometry(e))r+=this.m_shape.getPointCount(e);this.m_shape.setTotalPointCount(r)}dbgCheckPathFirst(){}isCurve(e){return this.m_shape.getSegment(e)!==null}compareVertices(e,t){let n=new h;this.m_shape.queryXY(e,n);let r=new h;return this.m_shape.queryXY(t,r),n.compare(r)}clipPolesOut(e,t){return this.clipPolygonOrProjectedPolyline2(e,t)}}class C{getOperatorType(){return 10004}supportsCurves(){return!0}accelerateGeometry(e,t,n){return!1}canAccelerateGeometry(e){return!1}executeMany(e,t,n,r){return new w(e,t,n,r)}execute(e,t,n,r){return T(e,t,n,r)}}class w extends e{m_inputGeometryCursor;m_spatialRefImpl;m_progressTracker;m_envelope;m_tolerance;m_index;constructor(e,n,r,i){super(),this.m_progressTracker=i,this.m_index=-1,e||t(``),this.m_envelope=n,this.m_inputGeometryCursor=e,this.m_spatialRefImpl=r,this.m_tolerance=s(r,n,!1).total()}next(){let e;return(e=this.m_inputGeometryCursor.next())?(n(e),this.m_index=this.m_inputGeometryCursor.getGeometryID(),v(e,this.m_envelope,this.m_tolerance,0,this.m_progressTracker)):null}getGeometryID(){return this.m_index}tock(){return!0}getRank(){return 1}}function T(e,t,n,r){return y(e,t,n,NaN,0,r)}export{C as O,b as a,v as c};
|
|
@@ -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{
|
|
2
|
+
import{G as e}from"./GeometryCursor.js";import{t}from"./Geometry.js";import{d as n,D as r}from"./MultiPathImpl.js";var i=r;class a extends e{m_inputGeoms;m_densificator;m_index;constructor(e,t,n,r,a,o){super(),this.m_densificator=new i(t,n,r,o,!1,a),this.m_index=-1,this.m_inputGeoms=e}tock(){return!0}getRank(){return 1}next(){let e=null;for(;e=this.m_inputGeoms.next();)return t(e),this.m_index=this.m_inputGeoms.getGeometryID(),this.densify(e);return null}getGeometryID(){return this.m_index}densify(e){return this.m_densificator.densify(e)}}class o{getOperatorType(){return 10202}accelerateGeometry(e,t,n){return!1}canAccelerateGeometry(e){return!1}supportsCurves(){return!0}executeMany(e,t,n,r,i,o=12e3){return new a(e,t,n,r,o,i)}execute(e,t,r,i,a,o=12e3){return n(e,t,r,i,a,o)}}export{o as O};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{
|
|
2
|
+
import{t as e}from"./Geometry.js";import{D as t}from"./Distance2DCalculator-DjIp2uQi.js";export{m as makeOutput,a as makeOutputEx}from"./Distance2DCalculator-DjIp2uQi.js";class n{getOperatorType(){return 10100}supportsCurves(){return!0}accelerateGeometry(e,t,n){return!1}canAccelerateGeometry(e){return!1}execute(e,t,n){return this.executeEx(e,t,n,null,null,NaN)}executeEx(n,r,i,a,o,s){if(n.isEmpty()||r.isEmpty())return NaN;e(n),e(r);let c=n,l=r;Number.isNaN(s)&&(s=1/0);let u=new t(s,i).calculate(c,l,a,o);return Number.isFinite(u)?u:NaN}}export{n as OperatorDistance};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{__addDisposableResource as e,__disposeResources as t}from"tslib";import{G as n}from"./GeometryCursor.js";import{
|
|
2
|
+
import{__addDisposableResource as e,__disposeResources as t}from"tslib";import{G as n}from"./GeometryCursor.js";import{b as r,t as i,f as a,G as o,h as s,j as c,a as l}from"./Geometry.js";import{P as u,a as d,L as f}from"./MultiPathImpl.js";import{P as p}from"./Envelope.js";import{m,P as h,s as g}from"./Point2D.js";import{O as _}from"./OperatorDensify.js";class v{getOperatorType(){return 10204}supportsCurves(){return!0}accelerateGeometry(e,t,n){return!1}canAccelerateGeometry(e){return!1}executeMany(e,t,n,r){return new y(e,t,n,r)}execute(e,t,n,i){return e||r(`null param is not allowed.`),new y(null,t,n,i).generalize(e)}}class y extends n{m_progressTracker;m_geoms;m_pline=null;m_point=new p;m_xy;m_stack=[];m_resultstack=[];m_maxDeviation;m_bRemoveDegenerateParts;m_callCount=0;constructor(e,t,n,r){super(),this.m_progressTracker=r,this.m_geoms=e,this.m_maxDeviation=t,this.m_bRemoveDegenerateParts=n}tock(){return!0}getRank(){return 1}next(){let e=this.m_geoms.next();return e===null?null:(i(e),this.generalize(e))}getGeometryID(){return this.m_geoms.getGeometryID()}generalize(n){let r=n.getGeometryType();if(a(r))return n;if(r===o.enumEnvelope){let e=new u({vd:n.getDescription()});return e.addEnvelope(n,!1),this.generalize(e)}if(s(r)){let e=new d({vd:n.getDescription()});return e.addSegment(n,!0),this.generalize(e)}if(c(r)||l(``),n.isEmpty()||this.m_maxDeviation<=0)return n;let i=new _().execute(n,0,this.m_maxDeviation*.05,0,this.m_progressTracker);n.hasNonLinearSegments()&&(this.m_maxDeviation*=.95);let p=i,h=n.createInstance();h.getGeometryType()===o.enumPolygon&&h.setFillRule(n.getFillRule()),this.m_xy=p.getAttributeStreamRef(0);{let n={stack:[],error:void 0,hasError:!1};try{let t=new f;this.m_pline=t,e(n,m(()=>{this.m_pline=null},!1),!1);for(let e=0,t=p.getPathCount();e<t;e++)this.generalizePath(p.getImpl(),e,h.getImpl())}catch(e){n.error=e,n.hasError=!0}finally{t(n)}}return this.m_resultstack.length=0,this.m_stack.length=0,h}generalizePath(e,t,n){if(e.getPathSize(t)<2)return;this.m_resultstack.length=0,this.m_stack.length=0;let r=e.getPathStart(t),i=e.getPathEnd(t)-1,a=e.isClosedPath(t),o=e.isClosedPathInXYPlane(t),s=0,c=-1;this.m_stack.push(a?r:i),this.m_stack.push(r);let l=!1,u=!1;for(!this.m_bRemoveDegenerateParts&&o&&(l=!0,u=!0);this.m_stack.length>1;){let t=this.m_stack.at(-1);this.m_stack.pop();let n=this.m_stack.at(-1),r=e.getXY(t);this.m_pline.setStartXY(r),r=e.getXY(n),this.m_pline.setEndXY(r);let a=[NaN],o=this.findGreatestDistance(t,n,i,a);o>=0&&(l?l=!1:(u&&a[0]>s&&(s=a[0],c=o),a[0]<=this.m_maxDeviation&&(o=-1))),o>=0?(this.m_stack.push(o),this.m_stack.push(t)):this.m_resultstack.push(t)}a||this.m_resultstack.push(this.m_stack[0]);let d=this.m_resultstack.length;if(d===e.getPathSize(t)&&d===this.m_stack.length)n.addPath(e,t,!0);else if(this.m_resultstack.length>0){if(this.m_bRemoveDegenerateParts&&this.m_resultstack.length<=2&&(a||this.m_resultstack.length===1||h.distance(e.getXY(this.m_resultstack[0]),e.getXY(this.m_resultstack[1]))<=this.m_maxDeviation))return;if(u&&c>=0&&s<=this.m_maxDeviation){let e=this.m_resultstack.at(-1)>c;this.m_resultstack.push(c),e&&(this.m_resultstack[this.m_resultstack.length-2]=g(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 t=0,r=this.m_resultstack.length;t<r;t++)e.getPointByVal(this.m_resultstack[t],this.m_point),t===0?n.startPathPoint(this.m_point):n.lineToPoint(this.m_point);if(a){for(let e=this.m_resultstack.length;e<3;e++)n.lineToPoint(this.m_point);n.closePathWithLine()}}}findGreatestDistance(e,t,n,r){let i=t-1;t<=e&&(i=n);let a=-1,o=0,s=new h;for(let t=e+1;t<=i;t++){this.m_xy.queryPoint2D(2*t,s);let e=s.x,n=s.y,r=this.m_pline.getClosestCoordinate(s,!1);s.assign(this.m_pline.getCoord2D(r)),s.x-=e,s.y-=n;let i=s.length();i>o&&(a=t,o=i),this.m_callCount++}return r[0]=o,a}}export{v 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 n,a as r,c as i,i as a,G as o,n as s,h as c,f as l,j as u,o as d}from"./Geometry.js";import{Envelope2D as f}from"./Envelope2D.js";import{a5 as p,D as m,ae as h,af as g,O as _,ag as v,ah as y,ab as b,e as x,ai as S,aj as C,a3 as w,J as T,ak as E,al as D,am as O,an as k,ao as A,r as ee,ap as j,aq as M,ar as N,as as te,at as ne,au as re}from"./UnitFactory.js";import{__addDisposableResource as P,__disposeResources as F}from"tslib";import{P as I,a as ie,E as L}from"./MultiPathImpl.js";import{f as R,c as z,P as B,e as V,h as H,j as ae,s as oe}from"./Envelope.js";import{T as U}from"./Transformation2D.js";import{d as se,m as ce,P as W,S as G,l as K,n as q}from"./Point2D.js";import{c as J}from"./OperatorClip.js";import{c as le}from"./GeometryCleaner-CIE8Wfmb.js";import{O as ue}from"./OperatorDensify.js";import{S as de}from"./SimpleGeometryCursor.js";function fe(e,t,n,s,c,l){s<Number.MAX_VALUE&&s>-Number.MAX_VALUE||r(`Geodesic_bufferer.buffer - bad distance`),i(e);let u=le(e),d=u.getGeometryType();if(a(d)){let e=u.getPointCount(),r=8e6;if(Math.abs(s)>r&&(e>50||d!==o.enumMultiPoint&&n===4&&e>2)){let e=u,i=s>0?1:-1,a=7e6,o=s,d=1;do d++,o=(Math.abs(o)-a)*i;while(Math.abs(o)>r);o=s;for(let r=0;r<d-1;r++)e=Y(e,t,n,a*i,c,d,l),o=(Math.abs(o)-a)*i;return e=Y(e,t,n,o,c,d,l),e}}return Y(u,t,n,s,c,1,l)}class pe{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){let t=new I,n=new Se(this,e,t);return this.processGnomonicBufferPiecesCursor(!0,n)}bufferPolyline(e){let t=new Se(this,e,null);return this.processGnomonicBufferPiecesCursor(!0,t)}bufferMultiPoint(e){let t=new Ce(this,e);return this.processGnomonicBufferPiecesCursor(!1,t)}bufferPoint(e){let t=e.getXY();t.scale(this.m_rpu);let n=new I;if(this.bufferPoint2D(t,!1,n)){let e=V(null,n,!0);n=b(n,e,!0,!0,-1,this.m_progressTracker,0,!1)}return n=new _().foldInto360RangeGeodetic(n,this.m_gcs,2),n}processGnomonicBufferPiecesCursor(e,t){let n=t,r=n.getGnomonic(),i=x(S()),a=new C,o=new p().executeMany(a,i,this.m_progressTracker,2),s=se(6,!1),c=ce(f,6);this.initializeGrid(s,c);let l=[null,null,null,null,null,null],u=[null,null,null,null,null,null],d=[null,null,null,null,null,null],m,h;for(;(m=n.next())!==null;){if(h=n.getGnomonic(),h!==r){if(r!==null){let t=o.next();if(a=null,o=null,t!=null){let n=V(i,t,!0),a=R(n);t=r.unproject(t,a,this.m_progressTracker),this.putInGridCursors(e,t,i,!0,s,c,l,u,d)}}h!==null&&(a=new C,o=new p().executeMany(a,i,this.m_progressTracker,2)),r=h}if(n.isRunningInGnomonic()){if(h.project(m),n.needsSimplify()){let e=V(null,m,!0);m=b(m,e,!0,!0,-1,this.m_progressTracker,0,!1)}a.tick($(m)),o.tock()}else this.putInGridCursors(e,m,i,!0,s,c,l,u,d)}let g,v=!1;for(let e=0;e<6;e++)if(d[e]!=null){v=!0;break}if(v){let t=!1,f=[null,null,null,null,null,null];if(e){let r=n.m_densified;if(n.m_densified=null,r!==null){let n=new U;n.scale(1/this.m_rpu,1/this.m_rpu),r.applyTransformation(n),this.m_distance>0?this.putInGridCursors(e,r,i,!1,s,c,l,u,d):(this.processInGrid(e,r,!1,s,c,l,f),t=!0)}}let m=new C,h=new p().executeMany(m,this.m_gcs,this.m_progressTracker,2);if(o!==null){let t=o.next();a=null,o=null;let n=V(i,t,!0),f=R(n);t=r.unproject(t,f,this.m_progressTracker),this.putInGridCursors(e,t,i,!0,s,c,l,u,d)}for(let e=0;e<6;e++)if(d[e]!=null){let n=d[e].next();d[e]=null,u[e]=null,t&&f[e]!==null&&(n=new w().execute(f[e],n,i,this.m_progressTracker));let r=V(i,n,!0),a=R(r);n=l[e].unproject(n,a,this.m_progressTracker),n=new T().execute(n,this.m_gcs,!0,this.m_progressTracker),m.tick($(n)),h.tock()}g=h.next()}else{let t=!1,s;if(e){let e=n.m_densified;if(n.m_densified=null,e!==null){let n=new U;n.scale(1/this.m_rpu,1/this.m_rpu),e.applyTransformation(n),h.project(e);let r=V(null,e,!0);e=b(e,r,!1,!0,-1,this.m_progressTracker,0,!1),this.m_distance>0?(a.tick($(e)),o.tock()):(s=e,t=!0)}}let c=o.next();a=null,o=null,t&&(c=new w().execute(s,c,i,this.m_progressTracker));let l=V(i,c,!0),u=R(l);g=r.unproject(c,u,this.m_progressTracker),g=new T().execute(g,this.m_gcs,!0,this.m_progressTracker)}return g=new _().foldInto360RangeGeodetic(g,this.m_gcs,2),g}putInGridCursors(e,t,n,r,i,a,o,s,c){let l=[null,null,null,null,null,null];this.processInGrid(e,t,r,i,a,o,l);for(let e=0;e<6;e++)l[e]!==null&&(s[e]===null&&(s[e]=new C,c[e]=new p().executeMany(s[e],n,this.m_progressTracker,2)),s[e].tick($(l[e])),c[e].tock())}processInGrid(e,t,n,r,i,a,o){let s=.01,c=this.insertGeodeticPointsAlongGrid(t,i,s);for(let e=0;e<6;e++){if(r[e])continue;let l=i[e].clone();l.inflateCoords(s,s);let u=H(t,l),d=z(null,u,!1).total(),f=J(c,l,d,NaN,this.m_progressTracker);if(f!==null&&!f.isEmpty()){if(f===c&&(f=f.clone()),a[e]===null){let t=new W;e<3?t.setCoords(0,1):t.setCoords(0,-1);let n=new W;n.setAdd(i[e].getCenter(),t),a[e]=Q(this.m_gcs,n)}a[e].project(f);let t=V(null,f,!0);f=b(f,t,n,!0,-1,this.m_progressTracker,0,!1),o[e]=f}}}insertGeodeticPointsAlongGrid(e,t,n){let r=f.construct(t[3].xmin,t[3].ymin,t[2].xmax,t[2].ymax),i=E(this.m_gcs,r,e,!0,this.m_progressTracker),a=new L,o=a.addGeometry(i);return D(a,o,this.m_gcs,0,2,!0,t[0].xmax+n),D(a,o,this.m_gcs,0,2,!0,t[1].xmax+n),D(a,o,this.m_gcs,0,2,!1,t[1].ymin+n),n!==0&&(D(a,o,this.m_gcs,0,2,!0,t[0].xmax-n),D(a,o,this.m_gcs,0,2,!0,t[1].xmax-n),D(a,o,this.m_gcs,0,2,!1,t[1].ymin-n)),a.getGeometry(o)}initializeGrid(e,t){for(let t=0;t<6;t++)e[t]=!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,n,r,i,a){let o=e[0],s=e.at(-1),c=o.y<s.y?o.y:s.y,l=o.y>s.y?o.y:s.y,u=h.q(this.m_a,this.m_eSquared,c),d=h.q(this.m_a,this.m_eSquared,l);if(this.m_q90-(u+t+this.m_absDistance)>.001&&this.m_q90+(d-t-this.m_absDistance)>.001)return!1;let f=n-K,p=r+K,m=f-Math.PI,g=f+Math.PI,_=p+Math.PI,v=[NaN],y=[NaN],b=[NaN],x=[NaN],S=!1;if(me(this.m_a,this.m_eSquared,this.m_rpu,this.m_absDistance,o,f,m,s,p,v,y),me(this.m_a,this.m_eSquared,this.m_rpu,this.m_absDistance,s,_,p,o,m,b,x),(p<v[0]&&v[0]<_||p<y[0]&&y[0]<_)&&(S=!0),S||(m<b[0]&&b[0]<f||m<x[0]&&x[0]<f)&&(S=!0),!S&&i)return!1;let C=[];for(let t=e.length-1;t>=0;t--)C.push(e[t]);a.setEmpty(),a.addPathPoint2D(null,0,!0);let w=0;w=X(this.m_a,this.m_eSquared,this.m_rpu,this.m_absDistance,this.m_curveType,e,f,p,i,w,a),w=Z(this.m_a,this.m_eSquared,this.m_rpu,this.m_absDistance,s,p,_,this.m_cornerStep,i,w,a,v[0],y[0]),w=X(this.m_a,this.m_eSquared,this.m_rpu,this.m_absDistance,this.m_curveType,C,_,g,i,w,a),w=Z(this.m_a,this.m_eSquared,this.m_rpu,this.m_absDistance,o,m,f,this.m_cornerStep,i,w,a,b[0],x[0]);let T=!1;return i||(T=this.checkAndPrepForPole(a)),S||T}bufferPoint2D(e,t,n){n.setEmpty(),n.addPathPoint2D(null,0,!0),Z(this.m_a,this.m_eSquared,this.m_rpu,this.m_absDistance,e,-this.m_cornerStep,Math.PI*2,this.m_cornerStep,t,0,n);let r=!1;return t||(r=this.checkAndPrepForPole(n)),r}checkAndPrepForPole(e){let t=this.checkAndPrepForPoleTouch(e),n=this.checkAndPrepForPoleWrap(e);return t||n}checkAndPrepForPoleTouch(e){let t=new f;return e.queryEnvelope(t),!O(t.ymax,this.m_gcs90)&&!O(t.ymin,-this.m_gcs90)?!1:(this.prepPoleTouch(e),!0)}checkAndPrepForPoleWrap(e){let t=e.getXY(0),n=e.getXY(e.getPointCount()-1);return Math.abs(t.x-n.x)>this.m_gcs180?(this.prepSinglePoleWrap(e),!0):this.checkAndPrepForDoublePoleWrap(e)}checkAndPrepForDoublePoleWrap(e){return e.calculateArea2D()<0&&(this.prepDoublePoleWrap(e),!0)}prepPoleTouch(e){let t=new I;t.insertPath2D(-1,null,0,0,!0);let n=e.getPathStart(0),r=e.getPathEnd(0),i=r-n,a=-1;for(a=n;a<r;a++){let t=e.getXY(a),n=O(t.y,this.m_gcs90),r=O(t.y,-this.m_gcs90);if(!n&&!r)break}let o=a,s=!1,c=NaN;do{let r=e.getXY(o),a=O(r.y,this.m_gcs90),l=O(r.y,-this.m_gcs90),u=n+(o+1-n)%i;if(!a&&!l)t.insertPoint2D(0,-1,r),c=r.x,s=!1;else{let n=W.construct(c,r.y);t.insertPoint2D(0,-1,n);let i=e.getXY(u),a=O(i.y,this.m_gcs90),o=O(i.y,-this.m_gcs90);!a&&!o&&(n=W.construct(i.x,r.y),s?t.setXY(t.getPointCount()-1,n):t.insertPoint2D(0,-1,n)),s=!0}o=u}while(o!==a);e.setEmpty(),e.add(t,!1)}prepSinglePoleWrap(e){let t=new I,n=new I,r=new U,i=e.getXY(e.getPathStart(0)),a=e.getXY(e.getPathEnd(0)-1),o=this.m_gcs360,s=this.m_gcs180,c=new f;c.setCoords({xmin:-this.m_gcs180,ymin:-this.m_gcs90,xmax:this.m_gcs180,ymax:this.m_gcs90});let l=new f;e.queryEnvelope(l);let u=Math.ceil(l.width()/o),d,p;i.x>a.x?(d=-o,p=this.m_gcs90):(d=o,p=-this.m_gcs90),r.setShiftCoords(d,0),t.addPath(e,0,!0),n.add(t,!1);let m=new B;for(let e=0;e<u;e++)n.applyTransformation(r),n.getPointByVal(0,m),t.lineToPoint(m),t.addSegmentsFromPath(n,0,0,n.getSegmentCount()-1,!1);let h=t.getXY(0),g=t.getXY(t.getPointCount()-1);h.y=p,g.y=p,t.lineTo(g);let _=new W;for(_.setCoordsPoint2D(g),_.x-=.5*d;Math.abs(_.x-h.x)>s;)t.lineTo(_),_.x-=.5*d;t.lineTo(h);let v=c.getCenterX(),y=new f;t.queryEnvelope(y);let b=0,x=y.getCenter().x;x-v>s?b=-Math.ceil((x-v-s)/o):v-x>s&&(b=Math.ceil((v-x-s)/o)),b!==0&&(r.setShiftCoords(b*o,0),t.applyTransformation(r));let S=new L,C=S.addGeometry(t);D(S,C,this.m_gcs,0,2,!0,c.xmin),D(S,C,this.m_gcs,0,2,!0,c.xmax);let w=S.getGeometry(C),T=H(w,c);T.inflateCoords(0,1);let E=z(null,T,!0).total(),O=J(w,c,E,NaN,this.m_progressTracker);e.setEmpty(),e.add(O,!1)}prepDoublePoleWrap(e){let t=this.m_gcs360,n=this.m_gcs180,r=new f;r.setCoords({xmin:-this.m_gcs180,ymin:-this.m_gcs90,xmax:this.m_gcs180,ymax:this.m_gcs90});let i=r.getCenter().x,a=new f;e.queryPathEnvelope(0,a);let o=0,s=a.getCenter().x;if(s-i>n?o=-Math.ceil((s-i-n)/t):i-s>n&&(o=Math.ceil((i-s-n)/t)),o!==0){let n=new U;n.setShiftCoords(o*t,0),e.getImpl().applyTransformationToPath(n,0),e.queryPathEnvelope(0,a),s=a.getCenter().x}let c,l=new f;r.containsExclusiveEnvelope(a)?(c=!1,l.setCoords({env2D:r})):(c=!0,l.setCoords({env2D:r}),l.xmin-=t,l.xmax+=t);let u=e.createInstance();u.addPathPoint2D(null,0,!0);let d=new W;if(d.setCoords(l.xmin,l.ymin),u.insertPoint2D(0,-1,d),d.setCoords(l.xmin,l.ymax),u.insertPoint2D(0,-1,d),d.setCoords(.5*(l.xmin+l.xmax),l.ymax),u.insertPoint2D(0,-1,d),d.setCoords(l.xmax,l.ymax),u.insertPoint2D(0,-1,d),d.setCoords(l.xmax,l.ymin),u.insertPoint2D(0,-1,d),d.setCoords(.5*(l.xmin+l.xmax),l.ymin),u.insertPoint2D(0,-1,d),!c)u.addPath(e,0,!0);else{u.addPath(e,0,!0);let n=new U;s<i?n.setShiftCoords(t,0):n.setShiftCoords(-t,0),e.getImpl().applyTransformationToPath(n,0),u.addPath(e,0,!0);let a=new L,o=a.addGeometry(u);D(a,o,this.m_gcs,0,2,!0,r.xmin),D(a,o,this.m_gcs,0,2,!0,r.xmax),u=a.getGeometry(o);let c=H(u,r);c.inflateCoords(0,1);let l=z(null,c,!0).total();u=J(u,r,l,NaN,this.m_progressTracker)}e.setEmpty(),e.add(u,!1)}setMinCornerStep(){let e={stack:[],error:void 0,hasError:!1};try{let t=Math.min(Math.PI*this.m_a-this.m_absDistance,this.m_absDistance);t=Math.min(t,this.m_a*.125*Math.PI);let n=new W;n.setCoords(0,10*this.m_rpu);let r=45*this.m_rpu,i=P(e,new G(new k,new k),!1),a=P(e,new G(new k,new k),!1),o=P(e,new G(new k,new k),!1),s=P(e,new G(new k,new k),!1),c=new W,l=new W,u=new W,d=new W;for(A.geodesicCoordinate(this.m_a,this.m_eSquared,n.x,n.y,t,0,i.at(0),i.at(1)),c.setCoords(i.at(0).val,i.at(1).val),A.geodesicCoordinate(this.m_a,this.m_eSquared,n.x,n.y,t,r,a.at(0),a.at(1)),l.setCoords(a.at(0).val,a.at(1).val);;){let e={stack:[],error:void 0,hasError:!1};try{let i=.5*(0+r);A.geodesicCoordinate(this.m_a,this.m_eSquared,n.x,n.y,t,i,o.at(0),o.at(1)),u.setCoords(o.at(0).val,o.at(1).val);let f=P(e,new k,!1),p=P(e,new k,!1);A.geodeticDistance(this.m_a,this.m_eSquared,c.x,c.y,l.x,l.y,f,p,null,2),A.geodeticCoordinate(this.m_a,this.m_eSquared,c.x,c.y,.5*f.val,p.val,s.at(0),s.at(1),2),d.setCoords(s.at(0).val,s.at(1).val);let m=P(e,new k,!1);if(A.geodeticDistance(this.m_a,this.m_eSquared,u.x,u.y,d.x,d.y,m,null,null,2),m.val<=this.m_convergenceOffset)break;r=.9*r,A.geodesicCoordinate(this.m_a,this.m_eSquared,n.x,n.y,t,r,a.at(0),a.at(1)),l.setCoords(a.at(0).val,a.at(1).val)}catch(t){e.error=t,e.hasError=!0}finally{F(e)}}let f=r-0,p=2*Math.PI/Math.ceil(2*Math.PI/f);this.m_cornerStep=p}catch(t){e.error=t,e.hasError=!0}finally{F(e)}}setMinSegmentStep(){let e={stack:[],error:void 0,hasError:!1};try{let t=Math.min(Math.PI*this.m_a-this.m_absDistance,this.m_absDistance);t=Math.min(t,this.m_a*.125*Math.PI);let n=new W,r=new W;n.setCoords(0,10*this.m_rpu),r.setCoords(10*this.m_rpu,10*this.m_rpu);let i=P(e,new k,!1),a=P(e,new k,!1),o=P(e,new k,!1);A.geodeticDistance(this.m_a,this.m_eSquared,n.x,n.y,r.x,r.y,o,i,a,this.m_curveType);let s=P(e,new G(new k,new k),!1),c=P(e,new G(new k,new k),!1),l=new W,u=P(e,new k,!1),d=P(e,new G(new k,new k),!1),f=P(e,new G(new k,new k),!1),p=P(e,new G(new k,new k),!1),m=P(e,new G(new k,new k),!1),h=new W,g=new W,_=new W,v=new W,y=1,b=i.val,x=a.val,S=b-Math.PI*.5,C=x+Math.PI*.5,w=o.val;for(A.geodesicCoordinate(this.m_a,this.m_eSquared,n.x,n.y,t,S,d.at(0),d.at(1)),h.setCoords(d.at(0).val,d.at(1).val),A.geodesicCoordinate(this.m_a,this.m_eSquared,r.x,r.y,t,C,f.at(0),f.at(1)),g.setCoords(f.at(0).val,f.at(1).val);;){let e={stack:[],error:void 0,hasError:!1};try{let i=.5*(0+y);A.geodeticCoordinate(this.m_a,this.m_eSquared,n.x,n.y,i*w,b,s.at(0),s.at(1),this.m_curveType),l.setCoords(s.at(0).val,s.at(1).val),A.geodeticDistance(this.m_a,this.m_eSquared,n.x,n.y,l.x,l.y,null,null,u,this.m_curveType);let a=u.val+Math.PI*.5;A.geodesicCoordinate(this.m_a,this.m_eSquared,l.x,l.y,t,a,p.at(0),p.at(1)),_.setCoords(p.at(0).val,p.at(1).val);let o=P(e,new k,!1),d=P(e,new k,!1);A.geodeticDistance(this.m_a,this.m_eSquared,h.x,h.y,g.x,g.y,o,d,null,2),A.geodeticCoordinate(this.m_a,this.m_eSquared,h.x,h.y,.5*o.val,d.val,m.at(0),m.at(1),2),v.setCoords(m.at(0).val,m.at(1).val);let x=P(e,new k,!1);if(A.geodeticDistance(this.m_a,this.m_eSquared,_.x,_.y,v.x,v.y,x,null,null,2),x.val<=this.m_convergenceOffset)break;{let e={stack:[],error:void 0,hasError:!1};try{y=.9*y,A.geodeticCoordinate(this.m_a,this.m_eSquared,n.x,n.y,y*w,b,c.at(0),c.at(1),this.m_curveType),r.setCoords(c.at(0).val,c.at(1).val);let i=P(e,new k,!1);A.geodeticDistance(this.m_a,this.m_eSquared,n.x,n.y,r.x,r.y,null,null,i,this.m_curveType);let a=i.val+Math.PI*.5;A.geodesicCoordinate(this.m_a,this.m_eSquared,r.x,r.y,t,a,f.at(0),f.at(1)),g.setCoords(f.at(0).val,f.at(1).val)}catch(t){e.error=t,e.hasError=!0}finally{F(e)}}}catch(t){e.error=t,e.hasError=!0}finally{F(e)}}let T=y*w;T>1e5&&(T=1e5),this.m_segmentStep=T}catch(t){e.error=t,e.hasError=!0}finally{F(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 Y(e,t,n,r,i,a,p){if(e.isEmpty())return new I({vd:e.getDescription()});let b=e;if(s(b)){let e=10*t.getTolerance(0);b=new ue().execute(b,0,e,0,p,12e3)}let x=new pe(p);x.m_sr=t,x.m_gcs=t.getGCS(),x.m_transform=m(t,x.m_gcs,null);let S=ee();x.m_gcs.querySpheroidData(S);let C=new f;b.queryEnvelope(C),x.m_a=S.majorSemiAxis,x.m_eSquared=S.e2,x.m_rpu=x.m_gcs.getUnit().getUnitToBaseFactor(),x.m_gcs90=Math.PI*.5/x.m_rpu,x.m_gcs180=Math.PI/x.m_rpu,x.m_gcs360=Math.PI*2/x.m_rpu,x.m_gcs60=x.m_gcs360/6,x.m_q90=h.q90(x.m_a,x.m_eSquared),x.m_ellipticToGeodesicMaxRatio=.5*x.m_a*Math.PI/x.m_q90,x.m_radTolerance=x.m_gcs.getTolerance(0)*x.m_rpu,n===4?(x.m_curveType=2,x.m_bShapePreserving=!0):(x.m_curveType=n,x.m_bShapePreserving=!1),x.m_distance=r,x.m_absDistance=Math.abs(r),Number.isNaN(i)||i<=0?x.setConvergenceOffset():x.m_convergenceOffset=Math.max(i,.001),x.m_convergenceOffset/=a;let w=b.getGeometryType(),T;if(c(w)){let e=new ie({vd:b.getDescription()});e.addSegment(b,!0),T=e,w=o.enumPolyline}else if(w===o.enumEnvelope){let e=b,t=new f;e.queryEnvelope(t);let n=R(z(x.m_sr,C,!0));if(!(t.minDimension()<=n)){let t=new I({vd:b.getDescription()});t.addEnvelope(e,!1),T=t,w=o.enumPolygon}else if(t.maxDimension()===0){let t=new B({vd:b.getDescription()});e.getCenter(t),T=t,w=o.enumPoint}else{let t=new ie({vd:b.getDescription()});t.addEnvelope(e,!1),T=t,w=o.enumPolyline}}else T=b;if(x.setMinCornerStep(),l(w)||x.setMinSegmentStep(),x.m_absDistance<=.5*x.m_convergenceOffset)return w===o.enumPolygon?x.m_bShapePreserving?T:g(T,x.m_sr,x.m_curveType,x.m_segmentStep,-1,p):new I({vd:T.getDescription()});if(x.m_distance<0&&w!==o.enumPolygon)return new I({vd:T.getDescription()});if(!x.m_bShapePreserving||!u(w))T=new _().execute(T,x.m_transform,p);else{let e=g(T,t,4,NaN,x.m_convergenceOffset,p);T=new _().execute(e,x.m_transform,p)}if(T=v(T,x.m_gcs),T.isEmpty())return new I({vd:T.getDescription()});!x.m_bShapePreserving&&u(w)&&(T=y(x.m_rpu,T)),T=ge(T,x.m_gcs);let E=new I;switch(w){case o.enumPolygon:E=x.bufferPolygon(T);break;case o.enumPolyline:E=x.bufferPolyline(T);break;case o.enumMultiPoint:E=x.bufferMultiPoint(T);break;case o.enumPoint:E=x.bufferPoint(T);break;default:d(``)}let D=new _().execute(E,x.m_transform.getInverse(),p);return D.mergeVertexDescription(T.getDescription()),D}function X(e,t,n,r,i,a,o,s,c,l,u){let d={stack:[],error:void 0,hasError:!1};try{let f=new W;f.setNAN(),c||u.getPointCount()>0&&(f.setCoordsPoint2D(u.getXY(u.getPointCount()-1)),f.scale(n));let p=P(d,new k,!1),m=P(d,new G(new k,new k),!1),h=new W,g=new W,_=a.at(-1),v=1/n;for(let n=0;n<a.length;n++){let d=a[n],y;n===0?y=o:n===a.length-1?y=s:(A.geodeticDistance(e,t,_.x,_.y,d.x,d.y,null,null,p,i),y=p.val-Math.PI*.5),A.geodesicCoordinate(e,t,d.x,d.y,r,y,m.at(0),m.at(1)),c?g.setCoords(m.at(0).val,m.at(1).val):(h.setCoords(m.at(0).val,m.at(1).val),l=he(d.x,h.x,f.x,l),g.setCoords(l+h.x,h.y),f.setCoordsPoint2D(g)),g.scale(v),u.insertPoint2D(0,-1,g)}return l}catch(e){d.error=e,d.hasError=!0}finally{F(d)}}function Z(e,t,n,r,i,a,o,s,c,l,u,d=NaN,f=NaN){let p={stack:[],error:void 0,hasError:!1};try{if(o-a<s)return l;let m=P(p,new G(new k,new k),!1),h=new W,g=new W,_=new W;g.setNAN(),c||u.getPointCount()>0&&(g.setCoordsPoint2D(u.getXY(u.getPointCount()-1)),g.scale(n));let v=Math.ceil(a/s),y=v++*s;y===a&&(y=v++*s);let b=a,x=1/n;for(;y<o+s&&(b<d&&d<y?(y=d,v--):b<f&&f<y&&(y=f,v--),!(y>=o));)A.geodesicCoordinate(e,t,i.x,i.y,r,y,m.at(0),m.at(1)),c?_.setCoords(m.at(0).val,m.at(1).val):(h.setCoords(m.at(0).val,m.at(1).val),l=he(i.x,h.x,g.x,l),_.setCoords(l+h.x,h.y),g.setCoordsPoint2D(_)),_.scale(x),u.insertPoint2D(0,-1,_),b=y,y=v++*s;return l}catch(e){p.error=e,p.hasError=!0}finally{F(p)}}function me(e,t,n,r,i,a,o,s,c,l,u){let d={stack:[],error:void 0,hasError:!1};try{let n=new W,f=new W,p=P(d,new G(new k,new k),!1);A.geodesicCoordinate(e,t,i.x,i.y,r,a,p.at(0),p.at(1)),n.setCoords(p.at(0).val,p.at(1).val),A.geodesicCoordinate(e,t,i.x,i.y,r,o,p.at(0),p.at(1)),f.setCoords(p.at(0).val,p.at(1).val);let m=P(d,new k,!1);for(A.geodeticDistance(e,t,s.x,s.y,n.x,n.y,null,m,null,0),l[0]=m.val,A.geodeticDistance(e,t,s.x,s.y,f.x,f.y,null,m,null,0),u[0]=m.val;l[0]<=u[0];)l[0]+=q;for(;l[0]>u[0];)l[0]-=q;for(;l[0]>=c;)l[0]-=q,u[0]-=q;for(;l[0]<c;)l[0]+=q,u[0]+=q}catch(e){d.error=e,d.hasError=!0}finally{F(d)}}function he(e,t,n,r){if(Number.isNaN(n)){for(;r+t-e>Math.PI;)r-=q;for(;e-(r+t)>Math.PI;)r+=q;return r}return r+t-n>Math.PI?r-=q:n-(r+t)>Math.PI&&(r+=q),r}function ge(e,t){let n=e.getGeometryType(),r;if(r=u(n)?e.getPathCount():n===o.enumMultiPoint?e.getPointCount():1,r===1)return e;let i=[],a=[];for(let o=0;o<r;o++){i.push(o);let r=new W;if(u(n)){let t=new f;e.queryPathEnvelope(o,t),r.assign(t.getCenter())}else r.assign(e.getXY(o));let s=t.toGeohash(r);a.push(s)}i.sort((e,t)=>a[e]<a[t]?-1:+(a[e]>a[t]));let s=e.createInstance();for(let t=0;t<r;t++){let r=i[t];u(n)?s.addPath(e,r,!0):s.addPoints(e,r,r+1)}return s}function _e(e,t,n,r,i,a){let o={stack:[],error:void 0,hasError:!1};try{if(r>=a)return!1;let s=n[0],c=n.at(-1),l=P(o,new k,!1),u=P(o,new k,!1),d=P(o,new k,!1);A.greatEllipticDistance(e,t,i.x,i.y,s.x,s.y,l,null,null),A.greatEllipticDistance(e,t,i.x,i.y,c.x,c.y,u,null,null),A.greatEllipticDistance(e,t,s.x,s.y,c.x,c.y,d,null,null);let f=Math.min(l.val,u.val)+d.val,p=f+r;if(p<a)return!0;let m=P(o,new k,!1);f=Math.max(l.val,u.val);for(let r=1;r<n.length-1;r++){let a=n[r];A.greatEllipticDistance(e,t,i.x,i.y,a.x,a.y,m,null,null),m.val>f&&(f=m.val)}return p=f+r,p<a}catch(e){o.error=e,o.hasError=!0}finally{F(o)}}function ve(e,t,n,r,i,a,o,s){let c;if(r.length%2==0){let e=r.length>>1,t=r[e],n=r[e-1];c=W.lerp(t,n,.5)}else c=r[r.length-1>>1].clone();let l=c.clone(),u=j(e,t,l,75/180*Math.PI);return _e(e,t,r,i,l,u)?(a!==null&&(a.setCoordsPoint2D(c),a.scale(1/n)),o!==null&&o.setCoordsPoint2D(l),s!==null&&(s[0]=u),!0):!1}function ye(e,t,n,r,i,a){let o={stack:[],error:void 0,hasError:!1};try{if(r>=a)return!1;let s=P(o,new k,!1);return A.greatEllipticDistance(e,t,i.x,i.y,n.x,n.y,s,null,null),s.val+r<a}catch(e){o.error=e,o.hasError=!0}finally{F(o)}}function be(e,t,n,r,i,a,o,s){let c=j(e,t,r,75/180*Math.PI);return ye(e,t,r,i,r,c)?(a!==null&&(a.setCoordsPoint2D(r),a.scale(1/n)),o!==null&&o.setCoordsPoint2D(r),s!==null&&(s[0]=c),!0):!1}function Q(e,t){return new re(e,t)}function $(e){return ae(e,0)||oe(e,0),e}class xe{m_bRunningInGnomonic=!1;m_bNeedsSimplify=!1;m_gnomonic=null;m_gnomonicCenterRad=new W;m_minGnomonicRadius=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 Se extends xe{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 I;m_densifiedPoints=[];m_densified;constructor(e,t,n){super(e.m_progressTracker),this.m_bufferer=e,this.m_multiPath=t,this.m_densified=n,this.m_bNeedsSimplify=!0;let r=new f;this.m_multiPath.queryEnvelope(r);let i=r.getCenter(),a=i.clone();a.scale(this.m_bufferer.m_rpu),this.m_gnomonic=Q(this.m_bufferer.m_gcs,i),this.m_gnomonicCenterRad=a.clone(),this.m_minGnomonicRadius=j(this.m_bufferer.m_a,this.m_bufferer.m_eSquared,a,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(this.m_segIter===null){if(this.m_segIter=this.m_multiPath.getImpl().querySegmentIterator(),!this.m_segIter.nextPath())return null;this.m_densified!==null&&this.m_densified.addPathPoint2D(null,0,!0)}if(!this.m_segIter.hasNextSegment()){if(this.m_segIter.nextPath())this.m_densified!=null&&this.m_densified.addPathPoint2D(null,0,!0);else return null}let t=null;this.m_currentBufferedDelta=0,this.m_currentDensifiedDelta=[0],this.m_numWinds=0,this.m_lastAzimuth=NaN,this.m_bNextSegmentCannotJoin=!1,this.m_densifiedPoints.length=0;let n=0,r=new W,i=new W;for(;this.m_segIter.hasNextSegment()&&this.m_numWinds<16;){let e=this.m_segIter.nextSegment();if(r.setCoordsPoint2D(e.getStartXY()),i.setCoordsPoint2D(e.getEndXY()),r.scale(this.m_bufferer.m_rpu),i.scale(this.m_bufferer.m_rpu),M(r,i))r.x=i.x;else if(N(r,i))i.x=r.x;else{let e=-1,t=-1,n=this.m_segIter.getPathIndex(),a=this.m_multiPath.getPathStart(n),o=this.m_multiPath.getPathEnd(n),s=this.m_segIter.getStartPointIndex(),c=this.m_segIter.getEndPointIndex();if(e=s-1,t=c+1,e<a&&(e=this.m_multiPath.isClosedPath(n)?o-1:-1),t>o-1&&(t=this.m_multiPath.isClosedPath(n)?a:-1),e!==-1){let t=this.m_multiPath.getXY(e);t.scale(this.m_bufferer.m_rpu),N(t,r)&&(r.x=t.x)}if(t!==-1){let e=this.m_multiPath.getXY(t);e.scale(this.m_bufferer.m_rpu),M(i,e)&&(i.x=e.x)}}this.m_densifiedPoints.length=0;let a=te(this.m_bufferer.m_a,this.m_bufferer.m_eSquared,this.m_bufferer.m_curveType,r,i,this.m_bufferer.m_segmentStep,NaN,this.m_bufferer.m_radTolerance,this.m_startAzimuth,this.m_endAzimuth,this.m_densifiedPoints,this.m_currentDensifiedDelta);if(n===0)this.m_bRunningInGnomonic=this.isSegmentBufferInCurrentGnomonic(this.m_densifiedPoints),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(ve(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(a===0||ne(r,i)?(this.m_bufferHelper.setEmpty(),this.m_bufferer.bufferPoint2D(r,this.m_bRunningInGnomonic,this.m_bufferHelper),this.m_bNextSegmentCannotJoin=!0):(this.m_bufferHelper.setEmpty(),this.m_bNextSegmentCannotJoin=this.checkAndPrepSegmentForCrossingAzimuthsOrPoleWrap(a,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(),this.m_densified!=null&&this.m_densified.insertPointsFromPoints(this.m_densified.getPathCount()-1,-1,this.m_densifiedPoints,0,this.m_densifiedPoints.length-1,!0);break}this.m_densified!=null&&this.m_densified.insertPointsFromPoints(this.m_densified.getPathCount()-1,-1,this.m_densifiedPoints,0,this.m_densifiedPoints.length-1,!0),t===null&&(t=new I,t.addPathPoint2D(null,0,!0)),this.addJoinAndBufferLeftSide(t),n++}if(this.m_currentDensifiedDelta=[0],n>0){let e=this.m_segIter.getStartPointIndex(),a=this.m_segIter.getPathIndex();for(;n>0;){if(this.m_segIter.previousSegment(),r.setCoordsPoint2D(this.m_multiPath.getXY(this.m_segIter.getStartPointIndex())),i.setCoordsPoint2D(this.m_multiPath.getXY(this.m_segIter.getEndPointIndex())),r.scale(this.m_bufferer.m_rpu),i.scale(this.m_bufferer.m_rpu),this.m_bRunningInGnomonic){if(M(r,i))r.x=i.x;else if(N(r,i))i.x=r.x;else{let e=-1,t=-1,n=this.m_segIter.getPathIndex(),a=this.m_multiPath.getPathStart(n),o=this.m_multiPath.getPathEnd(n),s=this.m_segIter.getStartPointIndex(),c=this.m_segIter.getEndPointIndex();if(e=s-1,t=c+1,e<a&&(e=this.m_multiPath.isClosedPath(n)?o-1:-1),t>o-1&&(t=this.m_multiPath.isClosedPath(n)?a:-1),e!==-1){let t=this.m_multiPath.getXY(e);t.scale(this.m_bufferer.m_rpu),N(t,r)&&(r.x=t.x)}if(t!==-1){let e=this.m_multiPath.getXY(t);e.scale(this.m_bufferer.m_rpu),M(i,e)&&(i.x=e.x)}}}this.m_densifiedPoints.length=0,te(this.m_bufferer.m_a,this.m_bufferer.m_eSquared,this.m_bufferer.m_curveType,i,r,this.m_bufferer.m_segmentStep,NaN,this.m_bufferer.m_radTolerance,this.m_startAzimuth,this.m_endAzimuth,this.m_densifiedPoints,this.m_currentDensifiedDelta),this.addJoinAndBufferLeftSide(t),n--}return r.setCoordsPoint2D(this.m_multiPath.getXY(this.m_segIter.getStartPointIndex())),r.scale(this.m_bufferer.m_rpu),this.m_currentBufferedDelta=Z(this.m_bufferer.m_a,this.m_bufferer.m_eSquared,this.m_bufferer.m_rpu,this.m_bufferer.m_absDistance,r,this.m_lastAzimuth+Math.PI*.5,this.m_lastAzimuth+1.5*Math.PI,this.m_bufferer.m_cornerStep,this.m_bRunningInGnomonic,this.m_currentBufferedDelta,t),this.m_segIter.resetToVertex(e,a),this.m_segIter.nextSegment(),t}return this.m_bNextSegmentCannotJoin=!1,this.m_segIter.nextSegment(),e=this.m_bufferHelper.clone(),e}isSegmentBufferInCurrentGnomonic(e){return this.m_gnomonic!==null&&_e(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){let t=new W,n=new W,r=[0];return ve(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,n,r)?(this.m_gnomonicCenterRad.setCoordsPoint2D(n),this.m_minGnomonicRadius=r[0],this.m_gnomonic=Q(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){let t=this.m_densifiedPoints[0],n=NaN,r=this.m_startAzimuth[0]-K,i=this.m_endAzimuth[0]+K,a=!1;if(!Number.isNaN(this.m_lastAzimuth)){this.m_lastAzimuth>=this.m_startAzimuth[0]?(n=this.m_lastAzimuth+K,r=n+Math.PI-(this.m_lastAzimuth-this.m_startAzimuth[0])):(n=this.m_lastAzimuth+K,r=n+Math.PI-(q-(this.m_startAzimuth[0]-this.m_lastAzimuth))),a=this.m_lastAzimuth>=this.m_startAzimuth[0]&&this.m_lastAzimuth-this.m_startAzimuth[0]<=Math.PI?!1:!(this.m_lastAzimuth<this.m_startAzimuth[0]&&this.m_startAzimuth[0]-this.m_lastAzimuth>=Math.PI);let i=!1;if(Math.abs(r-n)<=.5*this.m_bufferer.m_cornerStep&&(a||(i=!0)),i){if(e.removePointFromPath(0,e.getPointCount()-1),!this.m_bRunningInGnomonic){let t=new W;t.setCoordsPoint2D(e.getXY(e.getPointCount()-1)),t.scale(this.m_bufferer.m_rpu),t.x-this.m_currentBufferedDelta<-Math.PI?this.m_currentBufferedDelta-=q:t.x-this.m_currentBufferedDelta>Math.PI&&(this.m_currentBufferedDelta+=q)}r=.5*(r+n)}else if(a){let n=new W;n.setCoordsPoint2D(t),n.scale(1/this.m_bufferer.m_rpu),e.insertPoint2D(0,-1,n)}else Z(this.m_bufferer.m_a,this.m_bufferer.m_eSquared,this.m_bufferer.m_rpu,this.m_bufferer.m_absDistance,this.m_densifiedPoints[0],n,r,this.m_bufferer.m_cornerStep,this.m_bRunningInGnomonic,this.m_currentBufferedDelta,e)}this.m_startAzimuth[0]!==this.m_lastAzimuth&&this.m_numWinds++,X(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,r,i,this.m_bRunningInGnomonic,this.m_currentBufferedDelta,e),this.m_lastAzimuth=this.m_endAzimuth[0]}}class Ce extends xe{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;let n=new f;this.m_multiPoint.queryEnvelope(n);let r=n.getCenter(),i=r.clone();i.scale(this.m_bufferer.m_rpu),this.m_gnomonic=Q(this.m_bufferer.m_gcs,r),this.m_gnomonicCenterRad=i.clone(),this.m_minGnomonicRadius=j(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;let 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.tryUpdateGnomonic(e);let t=new I,n=this.m_bufferer.bufferPoint2D(e,this.m_bRunningInGnomonic,t);return this.m_bNeedsSimplify=n,t}isPointBufferInCurrentGnomonic(e){return this.m_gnomonic!==null&&ye(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){let t=new W,n=new W,r=[0];return be(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,n,r)?(this.m_gnomonicCenterRad.setCoordsPoint2D(n),this.m_minGnomonicRadius=r[0],this.m_gnomonic=Q(this.m_bufferer.m_gcs,t),!0):(this.m_gnomonic=null,!1)}}class we{getOperatorType(){return 10110}supportsCurves(){return!0}accelerateGeometry(e,t,n){return!1}canAccelerateGeometry(e){return!1}executeMany(e,t,n,r,i,a,o,s){if(o){let o=new Te(e,t,n,r,i,!1,a,s);return new p().executeMany(o,t,s)}return new Te(e,t,n,r,i,!1,a,s)}execute(e,n,r,i,a,o,s){let c=new de([e]),l=[i],u=this.executeMany(c,n,r,l,a,!1,o,s).next();return u||t(`geodesic buffer null output`),u}}class Te extends e{m_inputGeoms;m_spatialReference;m_curveType;m_progressTracker;m_distances;m_convergenceOffset;m_currentUnionEnvelope2D=new f;m_bOutlineOnly;m_bUnion;m_index=-1;m_dindex=-1;constructor(e,t,i,a,o,s,c,l){super(),this.m_progressTracker=l,s&&n(``),t||r(``),t.getCoordinateSystemType()===0&&r(``),this.m_inputGeoms=e,this.m_spatialReference=t,this.m_curveType=i,this.m_distances=a,this.m_convergenceOffset=o,this.m_bOutlineOnly=s,this.m_bUnion=c}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 fe(e,this.m_spatialReference,this.m_curveType,t,this.m_convergenceOffset,this.m_progressTracker)}}export{we as OperatorGeodesicBuffer};
|
|
2
|
+
import{G as e}from"./GeometryCursor.js";import{d as t,a as n,b as r,t as i,i as a,G as o,n as s,h as c,f as l,j as u,o as d}from"./Geometry.js";import{Envelope2D as f}from"./Envelope2D.js";import{a5 as p,D as m,ae as h,af as g,O as _,ag as v,ah as y,ab as b,e as x,ai as S,aj as C,a3 as w,J as T,ak as E,al as D,am as O,an as k,ao as A,r as ee,ap as j,aq as M,ar as N,as as te,at as ne,au as re}from"./UnitFactory.js";import{__addDisposableResource as P,__disposeResources as F}from"tslib";import{P as I,a as ie,E as L}from"./MultiPathImpl.js";import{f as R,c as z,P as B,e as V,h as H,j as ae,s as oe}from"./Envelope.js";import{T as U}from"./Transformation2D.js";import{c as se,d as ce,P as W,S as G,l as K,n as q}from"./Point2D.js";import{c as J}from"./OperatorClip.js";import{c as le}from"./GeometryCleaner-CIE8Wfmb.js";import{O as ue}from"./OperatorDensify.js";import{S as de}from"./SimpleGeometryCursor.js";function fe(e,t,n,s,c,l){s<Number.MAX_VALUE&&s>-Number.MAX_VALUE||r(`Geodesic_bufferer.buffer - bad distance`),i(e);let u=le(e),d=u.getGeometryType();if(a(d)){let e=u.getPointCount(),r=8e6;if(Math.abs(s)>r&&(e>50||d!==o.enumMultiPoint&&n===4&&e>2)){let e=u,i=s>0?1:-1,a=7e6,o=s,d=1;do d++,o=(Math.abs(o)-a)*i;while(Math.abs(o)>r);o=s;for(let r=0;r<d-1;r++)e=Y(e,t,n,a*i,c,d,l),o=(Math.abs(o)-a)*i;return e=Y(e,t,n,o,c,d,l),e}}return Y(u,t,n,s,c,1,l)}class pe{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){let t=new I,n=new Se(this,e,t);return this.processGnomonicBufferPiecesCursor(!0,n)}bufferPolyline(e){let t=new Se(this,e,null);return this.processGnomonicBufferPiecesCursor(!0,t)}bufferMultiPoint(e){let t=new Ce(this,e);return this.processGnomonicBufferPiecesCursor(!1,t)}bufferPoint(e){let t=e.getXY();t.scale(this.m_rpu);let n=new I;if(this.bufferPoint2D(t,!1,n)){let e=V(null,n,!0);n=b(n,e,!0,!0,-1,this.m_progressTracker,0,!1)}return n=new _().foldInto360RangeGeodetic(n,this.m_gcs,2),n}processGnomonicBufferPiecesCursor(e,t){let n=t,r=n.getGnomonic(),i=x(S()),a=new C,o=new p().executeMany(a,i,this.m_progressTracker,2),s=se(6,!1),c=ce(f,6);this.initializeGrid(s,c);let l=[null,null,null,null,null,null],u=[null,null,null,null,null,null],d=[null,null,null,null,null,null],m,h;for(;(m=n.next())!==null;){if(h=n.getGnomonic(),h!==r){if(r!==null){let t=o.next();if(a=null,o=null,t!=null){let n=V(i,t,!0),a=R(n);t=r.unproject(t,a,this.m_progressTracker),this.putInGridCursors(e,t,i,!0,s,c,l,u,d)}}h!==null&&(a=new C,o=new p().executeMany(a,i,this.m_progressTracker,2)),r=h}if(n.isRunningInGnomonic()){if(h.project(m),n.needsSimplify()){let e=V(null,m,!0);m=b(m,e,!0,!0,-1,this.m_progressTracker,0,!1)}a.tick($(m)),o.tock()}else this.putInGridCursors(e,m,i,!0,s,c,l,u,d)}let g,v=!1;for(let e=0;e<6;e++)if(d[e]!=null){v=!0;break}if(v){let t=!1,f=[null,null,null,null,null,null];if(e){let r=n.m_densified;if(n.m_densified=null,r!==null){let n=new U;n.scale(1/this.m_rpu,1/this.m_rpu),r.applyTransformation(n),this.m_distance>0?this.putInGridCursors(e,r,i,!1,s,c,l,u,d):(this.processInGrid(e,r,!1,s,c,l,f),t=!0)}}let m=new C,h=new p().executeMany(m,this.m_gcs,this.m_progressTracker,2);if(o!==null){let t=o.next();a=null,o=null;let n=V(i,t,!0),f=R(n);t=r.unproject(t,f,this.m_progressTracker),this.putInGridCursors(e,t,i,!0,s,c,l,u,d)}for(let e=0;e<6;e++)if(d[e]!=null){let n=d[e].next();d[e]=null,u[e]=null,t&&f[e]!==null&&(n=new w().execute(f[e],n,i,this.m_progressTracker));let r=V(i,n,!0),a=R(r);n=l[e].unproject(n,a,this.m_progressTracker),n=new T().execute(n,this.m_gcs,!0,this.m_progressTracker),m.tick($(n)),h.tock()}g=h.next()}else{let t=!1,s;if(e){let e=n.m_densified;if(n.m_densified=null,e!==null){let n=new U;n.scale(1/this.m_rpu,1/this.m_rpu),e.applyTransformation(n),h.project(e);let r=V(null,e,!0);e=b(e,r,!1,!0,-1,this.m_progressTracker,0,!1),this.m_distance>0?(a.tick($(e)),o.tock()):(s=e,t=!0)}}let c=o.next();a=null,o=null,t&&(c=new w().execute(s,c,i,this.m_progressTracker));let l=V(i,c,!0),u=R(l);g=r.unproject(c,u,this.m_progressTracker),g=new T().execute(g,this.m_gcs,!0,this.m_progressTracker)}return g=new _().foldInto360RangeGeodetic(g,this.m_gcs,2),g}putInGridCursors(e,t,n,r,i,a,o,s,c){let l=[null,null,null,null,null,null];this.processInGrid(e,t,r,i,a,o,l);for(let e=0;e<6;e++)l[e]!==null&&(s[e]===null&&(s[e]=new C,c[e]=new p().executeMany(s[e],n,this.m_progressTracker,2)),s[e].tick($(l[e])),c[e].tock())}processInGrid(e,t,n,r,i,a,o){let s=.01,c=this.insertGeodeticPointsAlongGrid(t,i,s);for(let e=0;e<6;e++){if(r[e])continue;let l=i[e].clone();l.inflateCoords(s,s);let u=H(t,l),d=z(null,u,!1).total(),f=J(c,l,d,NaN,this.m_progressTracker);if(f!==null&&!f.isEmpty()){if(f===c&&(f=f.clone()),a[e]===null){let t=new W;e<3?t.setCoords(0,1):t.setCoords(0,-1);let n=new W;n.setAdd(i[e].getCenter(),t),a[e]=Q(this.m_gcs,n)}a[e].project(f);let t=V(null,f,!0);f=b(f,t,n,!0,-1,this.m_progressTracker,0,!1),o[e]=f}}}insertGeodeticPointsAlongGrid(e,t,n){let r=f.construct(t[3].xmin,t[3].ymin,t[2].xmax,t[2].ymax),i=E(this.m_gcs,r,e,!0,this.m_progressTracker),a=new L,o=a.addGeometry(i);return D(a,o,this.m_gcs,0,2,!0,t[0].xmax+n),D(a,o,this.m_gcs,0,2,!0,t[1].xmax+n),D(a,o,this.m_gcs,0,2,!1,t[1].ymin+n),n!==0&&(D(a,o,this.m_gcs,0,2,!0,t[0].xmax-n),D(a,o,this.m_gcs,0,2,!0,t[1].xmax-n),D(a,o,this.m_gcs,0,2,!1,t[1].ymin-n)),a.getGeometry(o)}initializeGrid(e,t){for(let t=0;t<6;t++)e[t]=!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,n,r,i,a){let o=e[0],s=e.at(-1),c=o.y<s.y?o.y:s.y,l=o.y>s.y?o.y:s.y,u=h.q(this.m_a,this.m_eSquared,c),d=h.q(this.m_a,this.m_eSquared,l);if(this.m_q90-(u+t+this.m_absDistance)>.001&&this.m_q90+(d-t-this.m_absDistance)>.001)return!1;let f=n-K,p=r+K,m=f-Math.PI,g=f+Math.PI,_=p+Math.PI,v=[NaN],y=[NaN],b=[NaN],x=[NaN],S=!1;if(me(this.m_a,this.m_eSquared,this.m_rpu,this.m_absDistance,o,f,m,s,p,v,y),me(this.m_a,this.m_eSquared,this.m_rpu,this.m_absDistance,s,_,p,o,m,b,x),(p<v[0]&&v[0]<_||p<y[0]&&y[0]<_)&&(S=!0),S||(m<b[0]&&b[0]<f||m<x[0]&&x[0]<f)&&(S=!0),!S&&i)return!1;let C=[];for(let t=e.length-1;t>=0;t--)C.push(e[t]);a.setEmpty(),a.addPathPoint2D(null,0,!0);let w=0;w=X(this.m_a,this.m_eSquared,this.m_rpu,this.m_absDistance,this.m_curveType,e,f,p,i,w,a),w=Z(this.m_a,this.m_eSquared,this.m_rpu,this.m_absDistance,s,p,_,this.m_cornerStep,i,w,a,v[0],y[0]),w=X(this.m_a,this.m_eSquared,this.m_rpu,this.m_absDistance,this.m_curveType,C,_,g,i,w,a),w=Z(this.m_a,this.m_eSquared,this.m_rpu,this.m_absDistance,o,m,f,this.m_cornerStep,i,w,a,b[0],x[0]);let T=!1;return i||(T=this.checkAndPrepForPole(a)),S||T}bufferPoint2D(e,t,n){n.setEmpty(),n.addPathPoint2D(null,0,!0),Z(this.m_a,this.m_eSquared,this.m_rpu,this.m_absDistance,e,-this.m_cornerStep,Math.PI*2,this.m_cornerStep,t,0,n);let r=!1;return t||(r=this.checkAndPrepForPole(n)),r}checkAndPrepForPole(e){let t=this.checkAndPrepForPoleTouch(e),n=this.checkAndPrepForPoleWrap(e);return t||n}checkAndPrepForPoleTouch(e){let t=new f;return e.queryEnvelope(t),!O(t.ymax,this.m_gcs90)&&!O(t.ymin,-this.m_gcs90)?!1:(this.prepPoleTouch(e),!0)}checkAndPrepForPoleWrap(e){let t=e.getXY(0),n=e.getXY(e.getPointCount()-1);return Math.abs(t.x-n.x)>this.m_gcs180?(this.prepSinglePoleWrap(e),!0):this.checkAndPrepForDoublePoleWrap(e)}checkAndPrepForDoublePoleWrap(e){return e.calculateArea2D()<0&&(this.prepDoublePoleWrap(e),!0)}prepPoleTouch(e){let t=new I;t.insertPath2D(-1,null,0,0,!0);let n=e.getPathStart(0),r=e.getPathEnd(0),i=r-n,a=-1;for(a=n;a<r;a++){let t=e.getXY(a),n=O(t.y,this.m_gcs90),r=O(t.y,-this.m_gcs90);if(!n&&!r)break}let o=a,s=!1,c=NaN;do{let r=e.getXY(o),a=O(r.y,this.m_gcs90),l=O(r.y,-this.m_gcs90),u=n+(o+1-n)%i;if(!a&&!l)t.insertPoint2D(0,-1,r),c=r.x,s=!1;else{let n=W.construct(c,r.y);t.insertPoint2D(0,-1,n);let i=e.getXY(u),a=O(i.y,this.m_gcs90),o=O(i.y,-this.m_gcs90);!a&&!o&&(n=W.construct(i.x,r.y),s?t.setXY(t.getPointCount()-1,n):t.insertPoint2D(0,-1,n)),s=!0}o=u}while(o!==a);e.setEmpty(),e.add(t,!1)}prepSinglePoleWrap(e){let t=new I,n=new I,r=new U,i=e.getXY(e.getPathStart(0)),a=e.getXY(e.getPathEnd(0)-1),o=this.m_gcs360,s=this.m_gcs180,c=new f;c.setCoords({xmin:-this.m_gcs180,ymin:-this.m_gcs90,xmax:this.m_gcs180,ymax:this.m_gcs90});let l=new f;e.queryEnvelope(l);let u=Math.ceil(l.width()/o),d,p;i.x>a.x?(d=-o,p=this.m_gcs90):(d=o,p=-this.m_gcs90),r.setShiftCoords(d,0),t.addPath(e,0,!0),n.add(t,!1);let m=new B;for(let e=0;e<u;e++)n.applyTransformation(r),n.getPointByVal(0,m),t.lineToPoint(m),t.addSegmentsFromPath(n,0,0,n.getSegmentCount()-1,!1);let h=t.getXY(0),g=t.getXY(t.getPointCount()-1);h.y=p,g.y=p,t.lineTo(g);let _=new W;for(_.setCoordsPoint2D(g),_.x-=.5*d;Math.abs(_.x-h.x)>s;)t.lineTo(_),_.x-=.5*d;t.lineTo(h);let v=c.getCenterX(),y=new f;t.queryEnvelope(y);let b=0,x=y.getCenter().x;x-v>s?b=-Math.ceil((x-v-s)/o):v-x>s&&(b=Math.ceil((v-x-s)/o)),b!==0&&(r.setShiftCoords(b*o,0),t.applyTransformation(r));let S=new L,C=S.addGeometry(t);D(S,C,this.m_gcs,0,2,!0,c.xmin),D(S,C,this.m_gcs,0,2,!0,c.xmax);let w=S.getGeometry(C),T=H(w,c);T.inflateCoords(0,1);let E=z(null,T,!0).total(),O=J(w,c,E,NaN,this.m_progressTracker);e.setEmpty(),e.add(O,!1)}prepDoublePoleWrap(e){let t=this.m_gcs360,n=this.m_gcs180,r=new f;r.setCoords({xmin:-this.m_gcs180,ymin:-this.m_gcs90,xmax:this.m_gcs180,ymax:this.m_gcs90});let i=r.getCenter().x,a=new f;e.queryPathEnvelope(0,a);let o=0,s=a.getCenter().x;if(s-i>n?o=-Math.ceil((s-i-n)/t):i-s>n&&(o=Math.ceil((i-s-n)/t)),o!==0){let n=new U;n.setShiftCoords(o*t,0),e.getImpl().applyTransformationToPath(n,0),e.queryPathEnvelope(0,a),s=a.getCenter().x}let c,l=new f;r.containsExclusiveEnvelope(a)?(c=!1,l.setCoords({env2D:r})):(c=!0,l.setCoords({env2D:r}),l.xmin-=t,l.xmax+=t);let u=e.createInstance();u.addPathPoint2D(null,0,!0);let d=new W;if(d.setCoords(l.xmin,l.ymin),u.insertPoint2D(0,-1,d),d.setCoords(l.xmin,l.ymax),u.insertPoint2D(0,-1,d),d.setCoords(.5*(l.xmin+l.xmax),l.ymax),u.insertPoint2D(0,-1,d),d.setCoords(l.xmax,l.ymax),u.insertPoint2D(0,-1,d),d.setCoords(l.xmax,l.ymin),u.insertPoint2D(0,-1,d),d.setCoords(.5*(l.xmin+l.xmax),l.ymin),u.insertPoint2D(0,-1,d),!c)u.addPath(e,0,!0);else{u.addPath(e,0,!0);let n=new U;s<i?n.setShiftCoords(t,0):n.setShiftCoords(-t,0),e.getImpl().applyTransformationToPath(n,0),u.addPath(e,0,!0);let a=new L,o=a.addGeometry(u);D(a,o,this.m_gcs,0,2,!0,r.xmin),D(a,o,this.m_gcs,0,2,!0,r.xmax),u=a.getGeometry(o);let c=H(u,r);c.inflateCoords(0,1);let l=z(null,c,!0).total();u=J(u,r,l,NaN,this.m_progressTracker)}e.setEmpty(),e.add(u,!1)}setMinCornerStep(){let e={stack:[],error:void 0,hasError:!1};try{let t=Math.min(Math.PI*this.m_a-this.m_absDistance,this.m_absDistance);t=Math.min(t,this.m_a*.125*Math.PI);let n=new W;n.setCoords(0,10*this.m_rpu);let r=45*this.m_rpu,i=P(e,new G(new k,new k),!1),a=P(e,new G(new k,new k),!1),o=P(e,new G(new k,new k),!1),s=P(e,new G(new k,new k),!1),c=new W,l=new W,u=new W,d=new W;for(A.geodesicCoordinate(this.m_a,this.m_eSquared,n.x,n.y,t,0,i.at(0),i.at(1)),c.setCoords(i.at(0).val,i.at(1).val),A.geodesicCoordinate(this.m_a,this.m_eSquared,n.x,n.y,t,r,a.at(0),a.at(1)),l.setCoords(a.at(0).val,a.at(1).val);;){let e={stack:[],error:void 0,hasError:!1};try{let i=.5*(0+r);A.geodesicCoordinate(this.m_a,this.m_eSquared,n.x,n.y,t,i,o.at(0),o.at(1)),u.setCoords(o.at(0).val,o.at(1).val);let f=P(e,new k,!1),p=P(e,new k,!1);A.geodeticDistance(this.m_a,this.m_eSquared,c.x,c.y,l.x,l.y,f,p,null,2),A.geodeticCoordinate(this.m_a,this.m_eSquared,c.x,c.y,.5*f.val,p.val,s.at(0),s.at(1),2),d.setCoords(s.at(0).val,s.at(1).val);let m=P(e,new k,!1);if(A.geodeticDistance(this.m_a,this.m_eSquared,u.x,u.y,d.x,d.y,m,null,null,2),m.val<=this.m_convergenceOffset)break;r=.9*r,A.geodesicCoordinate(this.m_a,this.m_eSquared,n.x,n.y,t,r,a.at(0),a.at(1)),l.setCoords(a.at(0).val,a.at(1).val)}catch(t){e.error=t,e.hasError=!0}finally{F(e)}}let f=r-0,p=2*Math.PI/Math.ceil(2*Math.PI/f);this.m_cornerStep=p}catch(t){e.error=t,e.hasError=!0}finally{F(e)}}setMinSegmentStep(){let e={stack:[],error:void 0,hasError:!1};try{let t=Math.min(Math.PI*this.m_a-this.m_absDistance,this.m_absDistance);t=Math.min(t,this.m_a*.125*Math.PI);let n=new W,r=new W;n.setCoords(0,10*this.m_rpu),r.setCoords(10*this.m_rpu,10*this.m_rpu);let i=P(e,new k,!1),a=P(e,new k,!1),o=P(e,new k,!1);A.geodeticDistance(this.m_a,this.m_eSquared,n.x,n.y,r.x,r.y,o,i,a,this.m_curveType);let s=P(e,new G(new k,new k),!1),c=P(e,new G(new k,new k),!1),l=new W,u=P(e,new k,!1),d=P(e,new G(new k,new k),!1),f=P(e,new G(new k,new k),!1),p=P(e,new G(new k,new k),!1),m=P(e,new G(new k,new k),!1),h=new W,g=new W,_=new W,v=new W,y=1,b=i.val,x=a.val,S=b-Math.PI*.5,C=x+Math.PI*.5,w=o.val;for(A.geodesicCoordinate(this.m_a,this.m_eSquared,n.x,n.y,t,S,d.at(0),d.at(1)),h.setCoords(d.at(0).val,d.at(1).val),A.geodesicCoordinate(this.m_a,this.m_eSquared,r.x,r.y,t,C,f.at(0),f.at(1)),g.setCoords(f.at(0).val,f.at(1).val);;){let e={stack:[],error:void 0,hasError:!1};try{let i=.5*(0+y);A.geodeticCoordinate(this.m_a,this.m_eSquared,n.x,n.y,i*w,b,s.at(0),s.at(1),this.m_curveType),l.setCoords(s.at(0).val,s.at(1).val),A.geodeticDistance(this.m_a,this.m_eSquared,n.x,n.y,l.x,l.y,null,null,u,this.m_curveType);let a=u.val+Math.PI*.5;A.geodesicCoordinate(this.m_a,this.m_eSquared,l.x,l.y,t,a,p.at(0),p.at(1)),_.setCoords(p.at(0).val,p.at(1).val);let o=P(e,new k,!1),d=P(e,new k,!1);A.geodeticDistance(this.m_a,this.m_eSquared,h.x,h.y,g.x,g.y,o,d,null,2),A.geodeticCoordinate(this.m_a,this.m_eSquared,h.x,h.y,.5*o.val,d.val,m.at(0),m.at(1),2),v.setCoords(m.at(0).val,m.at(1).val);let x=P(e,new k,!1);if(A.geodeticDistance(this.m_a,this.m_eSquared,_.x,_.y,v.x,v.y,x,null,null,2),x.val<=this.m_convergenceOffset)break;{let e={stack:[],error:void 0,hasError:!1};try{y=.9*y,A.geodeticCoordinate(this.m_a,this.m_eSquared,n.x,n.y,y*w,b,c.at(0),c.at(1),this.m_curveType),r.setCoords(c.at(0).val,c.at(1).val);let i=P(e,new k,!1);A.geodeticDistance(this.m_a,this.m_eSquared,n.x,n.y,r.x,r.y,null,null,i,this.m_curveType);let a=i.val+Math.PI*.5;A.geodesicCoordinate(this.m_a,this.m_eSquared,r.x,r.y,t,a,f.at(0),f.at(1)),g.setCoords(f.at(0).val,f.at(1).val)}catch(t){e.error=t,e.hasError=!0}finally{F(e)}}}catch(t){e.error=t,e.hasError=!0}finally{F(e)}}let T=y*w;T>1e5&&(T=1e5),this.m_segmentStep=T}catch(t){e.error=t,e.hasError=!0}finally{F(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 Y(e,t,n,r,i,a,p){if(e.isEmpty())return new I({vd:e.getDescription()});let b=e;if(s(b)){let e=10*t.getTolerance(0);b=new ue().execute(b,0,e,0,p,12e3)}let x=new pe(p);x.m_sr=t,x.m_gcs=t.getGCS(),x.m_transform=m(t,x.m_gcs,null);let S=ee();x.m_gcs.querySpheroidData(S);let C=new f;b.queryEnvelope(C),x.m_a=S.majorSemiAxis,x.m_eSquared=S.e2,x.m_rpu=x.m_gcs.getUnit().getUnitToBaseFactor(),x.m_gcs90=Math.PI*.5/x.m_rpu,x.m_gcs180=Math.PI/x.m_rpu,x.m_gcs360=Math.PI*2/x.m_rpu,x.m_gcs60=x.m_gcs360/6,x.m_q90=h.q90(x.m_a,x.m_eSquared),x.m_ellipticToGeodesicMaxRatio=.5*x.m_a*Math.PI/x.m_q90,x.m_radTolerance=x.m_gcs.getTolerance(0)*x.m_rpu,n===4?(x.m_curveType=2,x.m_bShapePreserving=!0):(x.m_curveType=n,x.m_bShapePreserving=!1),x.m_distance=r,x.m_absDistance=Math.abs(r),Number.isNaN(i)||i<=0?x.setConvergenceOffset():x.m_convergenceOffset=Math.max(i,.001),x.m_convergenceOffset/=a;let w=b.getGeometryType(),T;if(c(w)){let e=new ie({vd:b.getDescription()});e.addSegment(b,!0),T=e,w=o.enumPolyline}else if(w===o.enumEnvelope){let e=b,t=new f;e.queryEnvelope(t);let n=R(z(x.m_sr,C,!0));if(!(t.minDimension()<=n)){let t=new I({vd:b.getDescription()});t.addEnvelope(e,!1),T=t,w=o.enumPolygon}else if(t.maxDimension()===0){let t=new B({vd:b.getDescription()});e.getCenter(t),T=t,w=o.enumPoint}else{let t=new ie({vd:b.getDescription()});t.addEnvelope(e,!1),T=t,w=o.enumPolyline}}else T=b;if(x.setMinCornerStep(),l(w)||x.setMinSegmentStep(),x.m_absDistance<=.5*x.m_convergenceOffset)return w===o.enumPolygon?x.m_bShapePreserving?T:g(T,x.m_sr,x.m_curveType,x.m_segmentStep,-1,p):new I({vd:T.getDescription()});if(x.m_distance<0&&w!==o.enumPolygon)return new I({vd:T.getDescription()});if(!x.m_bShapePreserving||!u(w))T=new _().execute(T,x.m_transform,p);else{let e=g(T,t,4,NaN,x.m_convergenceOffset,p);T=new _().execute(e,x.m_transform,p)}if(T=v(T,x.m_gcs),T.isEmpty())return new I({vd:T.getDescription()});!x.m_bShapePreserving&&u(w)&&(T=y(x.m_rpu,T)),T=ge(T,x.m_gcs);let E=new I;switch(w){case o.enumPolygon:E=x.bufferPolygon(T);break;case o.enumPolyline:E=x.bufferPolyline(T);break;case o.enumMultiPoint:E=x.bufferMultiPoint(T);break;case o.enumPoint:E=x.bufferPoint(T);break;default:d(``)}let D=new _().execute(E,x.m_transform.getInverse(),p);return D.mergeVertexDescription(T.getDescription()),D}function X(e,t,n,r,i,a,o,s,c,l,u){let d={stack:[],error:void 0,hasError:!1};try{let f=new W;f.setNAN(),c||u.getPointCount()>0&&(f.setCoordsPoint2D(u.getXY(u.getPointCount()-1)),f.scale(n));let p=P(d,new k,!1),m=P(d,new G(new k,new k),!1),h=new W,g=new W,_=a.at(-1),v=1/n;for(let n=0;n<a.length;n++){let d=a[n],y;n===0?y=o:n===a.length-1?y=s:(A.geodeticDistance(e,t,_.x,_.y,d.x,d.y,null,null,p,i),y=p.val-Math.PI*.5),A.geodesicCoordinate(e,t,d.x,d.y,r,y,m.at(0),m.at(1)),c?g.setCoords(m.at(0).val,m.at(1).val):(h.setCoords(m.at(0).val,m.at(1).val),l=he(d.x,h.x,f.x,l),g.setCoords(l+h.x,h.y),f.setCoordsPoint2D(g)),g.scale(v),u.insertPoint2D(0,-1,g)}return l}catch(e){d.error=e,d.hasError=!0}finally{F(d)}}function Z(e,t,n,r,i,a,o,s,c,l,u,d=NaN,f=NaN){let p={stack:[],error:void 0,hasError:!1};try{if(o-a<s)return l;let m=P(p,new G(new k,new k),!1),h=new W,g=new W,_=new W;g.setNAN(),c||u.getPointCount()>0&&(g.setCoordsPoint2D(u.getXY(u.getPointCount()-1)),g.scale(n));let v=Math.ceil(a/s),y=v++*s;y===a&&(y=v++*s);let b=a,x=1/n;for(;y<o+s&&(b<d&&d<y?(y=d,v--):b<f&&f<y&&(y=f,v--),!(y>=o));)A.geodesicCoordinate(e,t,i.x,i.y,r,y,m.at(0),m.at(1)),c?_.setCoords(m.at(0).val,m.at(1).val):(h.setCoords(m.at(0).val,m.at(1).val),l=he(i.x,h.x,g.x,l),_.setCoords(l+h.x,h.y),g.setCoordsPoint2D(_)),_.scale(x),u.insertPoint2D(0,-1,_),b=y,y=v++*s;return l}catch(e){p.error=e,p.hasError=!0}finally{F(p)}}function me(e,t,n,r,i,a,o,s,c,l,u){let d={stack:[],error:void 0,hasError:!1};try{let n=new W,f=new W,p=P(d,new G(new k,new k),!1);A.geodesicCoordinate(e,t,i.x,i.y,r,a,p.at(0),p.at(1)),n.setCoords(p.at(0).val,p.at(1).val),A.geodesicCoordinate(e,t,i.x,i.y,r,o,p.at(0),p.at(1)),f.setCoords(p.at(0).val,p.at(1).val);let m=P(d,new k,!1);for(A.geodeticDistance(e,t,s.x,s.y,n.x,n.y,null,m,null,0),l[0]=m.val,A.geodeticDistance(e,t,s.x,s.y,f.x,f.y,null,m,null,0),u[0]=m.val;l[0]<=u[0];)l[0]+=q;for(;l[0]>u[0];)l[0]-=q;for(;l[0]>=c;)l[0]-=q,u[0]-=q;for(;l[0]<c;)l[0]+=q,u[0]+=q}catch(e){d.error=e,d.hasError=!0}finally{F(d)}}function he(e,t,n,r){if(Number.isNaN(n)){for(;r+t-e>Math.PI;)r-=q;for(;e-(r+t)>Math.PI;)r+=q;return r}return r+t-n>Math.PI?r-=q:n-(r+t)>Math.PI&&(r+=q),r}function ge(e,t){let n=e.getGeometryType(),r;if(r=u(n)?e.getPathCount():n===o.enumMultiPoint?e.getPointCount():1,r===1)return e;let i=[],a=[];for(let o=0;o<r;o++){i.push(o);let r=new W;if(u(n)){let t=new f;e.queryPathEnvelope(o,t),r.assign(t.getCenter())}else r.assign(e.getXY(o));let s=t.toGeohash(r);a.push(s)}i.sort((e,t)=>a[e]<a[t]?-1:+(a[e]>a[t]));let s=e.createInstance();for(let t=0;t<r;t++){let r=i[t];u(n)?s.addPath(e,r,!0):s.addPoints(e,r,r+1)}return s}function _e(e,t,n,r,i,a){let o={stack:[],error:void 0,hasError:!1};try{if(r>=a)return!1;let s=n[0],c=n.at(-1),l=P(o,new k,!1),u=P(o,new k,!1),d=P(o,new k,!1);A.greatEllipticDistance(e,t,i.x,i.y,s.x,s.y,l,null,null),A.greatEllipticDistance(e,t,i.x,i.y,c.x,c.y,u,null,null),A.greatEllipticDistance(e,t,s.x,s.y,c.x,c.y,d,null,null);let f=Math.min(l.val,u.val)+d.val,p=f+r;if(p<a)return!0;let m=P(o,new k,!1);f=Math.max(l.val,u.val);for(let r=1;r<n.length-1;r++){let a=n[r];A.greatEllipticDistance(e,t,i.x,i.y,a.x,a.y,m,null,null),m.val>f&&(f=m.val)}return p=f+r,p<a}catch(e){o.error=e,o.hasError=!0}finally{F(o)}}function ve(e,t,n,r,i,a,o,s){let c;if(r.length%2==0){let e=r.length>>1,t=r[e],n=r[e-1];c=W.lerp(t,n,.5)}else c=r[r.length-1>>1].clone();let l=c.clone(),u=j(e,t,l,75/180*Math.PI);return _e(e,t,r,i,l,u)?(a!==null&&(a.setCoordsPoint2D(c),a.scale(1/n)),o!==null&&o.setCoordsPoint2D(l),s!==null&&(s[0]=u),!0):!1}function ye(e,t,n,r,i,a){let o={stack:[],error:void 0,hasError:!1};try{if(r>=a)return!1;let s=P(o,new k,!1);return A.greatEllipticDistance(e,t,i.x,i.y,n.x,n.y,s,null,null),s.val+r<a}catch(e){o.error=e,o.hasError=!0}finally{F(o)}}function be(e,t,n,r,i,a,o,s){let c=j(e,t,r,75/180*Math.PI);return ye(e,t,r,i,r,c)?(a!==null&&(a.setCoordsPoint2D(r),a.scale(1/n)),o!==null&&o.setCoordsPoint2D(r),s!==null&&(s[0]=c),!0):!1}function Q(e,t){return new re(e,t)}function $(e){return ae(e,0)||oe(e,0),e}class xe{m_bRunningInGnomonic=!1;m_bNeedsSimplify=!1;m_gnomonic=null;m_gnomonicCenterRad=new W;m_minGnomonicRadius=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 Se extends xe{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 I;m_densifiedPoints=[];m_densified;constructor(e,t,n){super(e.m_progressTracker),this.m_bufferer=e,this.m_multiPath=t,this.m_densified=n,this.m_bNeedsSimplify=!0;let r=new f;this.m_multiPath.queryEnvelope(r);let i=r.getCenter(),a=i.clone();a.scale(this.m_bufferer.m_rpu),this.m_gnomonic=Q(this.m_bufferer.m_gcs,i),this.m_gnomonicCenterRad=a.clone(),this.m_minGnomonicRadius=j(this.m_bufferer.m_a,this.m_bufferer.m_eSquared,a,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(this.m_segIter===null){if(this.m_segIter=this.m_multiPath.getImpl().querySegmentIterator(),!this.m_segIter.nextPath())return null;this.m_densified!==null&&this.m_densified.addPathPoint2D(null,0,!0)}if(!this.m_segIter.hasNextSegment()){if(this.m_segIter.nextPath())this.m_densified!=null&&this.m_densified.addPathPoint2D(null,0,!0);else return null}let t=null;this.m_currentBufferedDelta=0,this.m_currentDensifiedDelta=[0],this.m_numWinds=0,this.m_lastAzimuth=NaN,this.m_bNextSegmentCannotJoin=!1,this.m_densifiedPoints.length=0;let n=0,r=new W,i=new W;for(;this.m_segIter.hasNextSegment()&&this.m_numWinds<16;){let e=this.m_segIter.nextSegment();if(r.setCoordsPoint2D(e.getStartXY()),i.setCoordsPoint2D(e.getEndXY()),r.scale(this.m_bufferer.m_rpu),i.scale(this.m_bufferer.m_rpu),M(r,i))r.x=i.x;else if(N(r,i))i.x=r.x;else{let e=-1,t=-1,n=this.m_segIter.getPathIndex(),a=this.m_multiPath.getPathStart(n),o=this.m_multiPath.getPathEnd(n),s=this.m_segIter.getStartPointIndex(),c=this.m_segIter.getEndPointIndex();if(e=s-1,t=c+1,e<a&&(e=this.m_multiPath.isClosedPath(n)?o-1:-1),t>o-1&&(t=this.m_multiPath.isClosedPath(n)?a:-1),e!==-1){let t=this.m_multiPath.getXY(e);t.scale(this.m_bufferer.m_rpu),N(t,r)&&(r.x=t.x)}if(t!==-1){let e=this.m_multiPath.getXY(t);e.scale(this.m_bufferer.m_rpu),M(i,e)&&(i.x=e.x)}}this.m_densifiedPoints.length=0;let a=te(this.m_bufferer.m_a,this.m_bufferer.m_eSquared,this.m_bufferer.m_curveType,r,i,this.m_bufferer.m_segmentStep,NaN,this.m_bufferer.m_radTolerance,this.m_startAzimuth,this.m_endAzimuth,this.m_densifiedPoints,this.m_currentDensifiedDelta);if(n===0)this.m_bRunningInGnomonic=this.isSegmentBufferInCurrentGnomonic(this.m_densifiedPoints),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(ve(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(a===0||ne(r,i)?(this.m_bufferHelper.setEmpty(),this.m_bufferer.bufferPoint2D(r,this.m_bRunningInGnomonic,this.m_bufferHelper),this.m_bNextSegmentCannotJoin=!0):(this.m_bufferHelper.setEmpty(),this.m_bNextSegmentCannotJoin=this.checkAndPrepSegmentForCrossingAzimuthsOrPoleWrap(a,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(),this.m_densified!=null&&this.m_densified.insertPointsFromPoints(this.m_densified.getPathCount()-1,-1,this.m_densifiedPoints,0,this.m_densifiedPoints.length-1,!0);break}this.m_densified!=null&&this.m_densified.insertPointsFromPoints(this.m_densified.getPathCount()-1,-1,this.m_densifiedPoints,0,this.m_densifiedPoints.length-1,!0),t===null&&(t=new I,t.addPathPoint2D(null,0,!0)),this.addJoinAndBufferLeftSide(t),n++}if(this.m_currentDensifiedDelta=[0],n>0){let e=this.m_segIter.getStartPointIndex(),a=this.m_segIter.getPathIndex();for(;n>0;){if(this.m_segIter.previousSegment(),r.setCoordsPoint2D(this.m_multiPath.getXY(this.m_segIter.getStartPointIndex())),i.setCoordsPoint2D(this.m_multiPath.getXY(this.m_segIter.getEndPointIndex())),r.scale(this.m_bufferer.m_rpu),i.scale(this.m_bufferer.m_rpu),this.m_bRunningInGnomonic){if(M(r,i))r.x=i.x;else if(N(r,i))i.x=r.x;else{let e=-1,t=-1,n=this.m_segIter.getPathIndex(),a=this.m_multiPath.getPathStart(n),o=this.m_multiPath.getPathEnd(n),s=this.m_segIter.getStartPointIndex(),c=this.m_segIter.getEndPointIndex();if(e=s-1,t=c+1,e<a&&(e=this.m_multiPath.isClosedPath(n)?o-1:-1),t>o-1&&(t=this.m_multiPath.isClosedPath(n)?a:-1),e!==-1){let t=this.m_multiPath.getXY(e);t.scale(this.m_bufferer.m_rpu),N(t,r)&&(r.x=t.x)}if(t!==-1){let e=this.m_multiPath.getXY(t);e.scale(this.m_bufferer.m_rpu),M(i,e)&&(i.x=e.x)}}}this.m_densifiedPoints.length=0,te(this.m_bufferer.m_a,this.m_bufferer.m_eSquared,this.m_bufferer.m_curveType,i,r,this.m_bufferer.m_segmentStep,NaN,this.m_bufferer.m_radTolerance,this.m_startAzimuth,this.m_endAzimuth,this.m_densifiedPoints,this.m_currentDensifiedDelta),this.addJoinAndBufferLeftSide(t),n--}return r.setCoordsPoint2D(this.m_multiPath.getXY(this.m_segIter.getStartPointIndex())),r.scale(this.m_bufferer.m_rpu),this.m_currentBufferedDelta=Z(this.m_bufferer.m_a,this.m_bufferer.m_eSquared,this.m_bufferer.m_rpu,this.m_bufferer.m_absDistance,r,this.m_lastAzimuth+Math.PI*.5,this.m_lastAzimuth+1.5*Math.PI,this.m_bufferer.m_cornerStep,this.m_bRunningInGnomonic,this.m_currentBufferedDelta,t),this.m_segIter.resetToVertex(e,a),this.m_segIter.nextSegment(),t}return this.m_bNextSegmentCannotJoin=!1,this.m_segIter.nextSegment(),e=this.m_bufferHelper.clone(),e}isSegmentBufferInCurrentGnomonic(e){return this.m_gnomonic!==null&&_e(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){let t=new W,n=new W,r=[0];return ve(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,n,r)?(this.m_gnomonicCenterRad.setCoordsPoint2D(n),this.m_minGnomonicRadius=r[0],this.m_gnomonic=Q(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){let t=this.m_densifiedPoints[0],n=NaN,r=this.m_startAzimuth[0]-K,i=this.m_endAzimuth[0]+K,a=!1;if(!Number.isNaN(this.m_lastAzimuth)){this.m_lastAzimuth>=this.m_startAzimuth[0]?(n=this.m_lastAzimuth+K,r=n+Math.PI-(this.m_lastAzimuth-this.m_startAzimuth[0])):(n=this.m_lastAzimuth+K,r=n+Math.PI-(q-(this.m_startAzimuth[0]-this.m_lastAzimuth))),a=this.m_lastAzimuth>=this.m_startAzimuth[0]&&this.m_lastAzimuth-this.m_startAzimuth[0]<=Math.PI?!1:!(this.m_lastAzimuth<this.m_startAzimuth[0]&&this.m_startAzimuth[0]-this.m_lastAzimuth>=Math.PI);let i=!1;if(Math.abs(r-n)<=.5*this.m_bufferer.m_cornerStep&&(a||(i=!0)),i){if(e.removePointFromPath(0,e.getPointCount()-1),!this.m_bRunningInGnomonic){let t=new W;t.setCoordsPoint2D(e.getXY(e.getPointCount()-1)),t.scale(this.m_bufferer.m_rpu),t.x-this.m_currentBufferedDelta<-Math.PI?this.m_currentBufferedDelta-=q:t.x-this.m_currentBufferedDelta>Math.PI&&(this.m_currentBufferedDelta+=q)}r=.5*(r+n)}else if(a){let n=new W;n.setCoordsPoint2D(t),n.scale(1/this.m_bufferer.m_rpu),e.insertPoint2D(0,-1,n)}else Z(this.m_bufferer.m_a,this.m_bufferer.m_eSquared,this.m_bufferer.m_rpu,this.m_bufferer.m_absDistance,this.m_densifiedPoints[0],n,r,this.m_bufferer.m_cornerStep,this.m_bRunningInGnomonic,this.m_currentBufferedDelta,e)}this.m_startAzimuth[0]!==this.m_lastAzimuth&&this.m_numWinds++,X(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,r,i,this.m_bRunningInGnomonic,this.m_currentBufferedDelta,e),this.m_lastAzimuth=this.m_endAzimuth[0]}}class Ce extends xe{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;let n=new f;this.m_multiPoint.queryEnvelope(n);let r=n.getCenter(),i=r.clone();i.scale(this.m_bufferer.m_rpu),this.m_gnomonic=Q(this.m_bufferer.m_gcs,r),this.m_gnomonicCenterRad=i.clone(),this.m_minGnomonicRadius=j(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;let 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.tryUpdateGnomonic(e);let t=new I,n=this.m_bufferer.bufferPoint2D(e,this.m_bRunningInGnomonic,t);return this.m_bNeedsSimplify=n,t}isPointBufferInCurrentGnomonic(e){return this.m_gnomonic!==null&&ye(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){let t=new W,n=new W,r=[0];return be(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,n,r)?(this.m_gnomonicCenterRad.setCoordsPoint2D(n),this.m_minGnomonicRadius=r[0],this.m_gnomonic=Q(this.m_bufferer.m_gcs,t),!0):(this.m_gnomonic=null,!1)}}class we{getOperatorType(){return 10110}supportsCurves(){return!0}accelerateGeometry(e,t,n){return!1}canAccelerateGeometry(e){return!1}executeMany(e,t,n,r,i,a,o,s){if(o){let o=new Te(e,t,n,r,i,!1,a,s);return new p().executeMany(o,t,s)}return new Te(e,t,n,r,i,!1,a,s)}execute(e,n,r,i,a,o,s){let c=new de([e]),l=[i],u=this.executeMany(c,n,r,l,a,!1,o,s).next();return u||t(`geodesic buffer null output`),u}}class Te extends e{m_inputGeoms;m_spatialReference;m_curveType;m_progressTracker;m_distances;m_convergenceOffset;m_currentUnionEnvelope2D=new f;m_bOutlineOnly;m_bUnion;m_index=-1;m_dindex=-1;constructor(e,t,i,a,o,s,c,l){super(),this.m_progressTracker=l,s&&n(``),t||r(``),t.getCoordinateSystemType()===0&&r(``),this.m_inputGeoms=e,this.m_spatialReference=t,this.m_curveType=i,this.m_distances=a,this.m_convergenceOffset=o,this.m_bOutlineOnly=s,this.m_bUnion=c}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 fe(e,this.m_spatialReference,this.m_curveType,t,this.m_convergenceOffset,this.m_progressTracker)}}export{we as OperatorGeodesicBuffer};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{a as e,c as t,G as n,d as r,g as i}from"./Geometry.js";import{P as a,x as o,L as s}from"./MultiPathImpl.js";import{O as c}from"./OperatorDensify.js";import{D as l,J as u,r as d,aD as f,O as p,aN as m,j as h,b as g,ag as _,aF as v,aX as y,aY as b,an as x,ao as S,av as C,aZ as w,aC as T,ay as E}from"./UnitFactory.js";import{P as D,K as O,d as k,o as A,l as j,a as M,E as N,q as ee,f as P,c as F,y as I,z as L,A as R}from"./Point2D.js";import{Envelope2D as z}from"./Envelope2D.js";import{c as B,k as V}from"./Envelope.js";import{O as H}from"./OperatorClip.js";import{O as U}from"./OperatorShapePreservingLength.js";import{__addDisposableResource as W,__disposeResources as G}from"tslib";import{T as K}from"./Transformation2D.js";import{a as q}from"./GeodeticDistanceCalculator-zRp89-dW.js";class te{m_startPt;m_endPt;m_cE2;m_cE;m_c1By2e;m_cRpu;isPcs;PEProjcs;m_points;constructor(e,t,n,r,i=100){this.m_startPt=e.clone(),this.m_endPt=t.clone(),this.m_cE2=r,this.m_cE=Math.sqrt(this.m_cE2),this.m_c1By2e=1/(2*this.m_cE),this.m_cRpu=n.getGCS().getUnit().getUnitToBaseFactor(),this.isPcs=n.getCoordinateSystemType()===2,this.PEProjcs=n.getPECoordSys(),this.m_points=k(i*2,NaN)}setSegmentEndPoints(e,t){this.m_startPt.assign(e),this.m_endPt.assign(t)}makeFunctor(){return e=>{let t=[0,0];t[0]=this.m_startPt.x*(1-e)+this.m_endPt.x*e,t[1]=this.m_startPt.y*(1-e)+this.m_endPt.y*e,this.isPcs&&f.projToGeogCenter(this.PEProjcs,1,t,0);let n=Math.sin(t[1]*this.m_cRpu);return this.m_cE2===0?n:-(Math.log((1-this.m_cE*n)/(1+this.m_cE*n))*this.m_c1By2e)+n/(1-this.m_cE2*n*n)}}}function ne(e,t,n){let r=new z;e.queryEnvelope(r);let i=B(t,r,!0).total(),a=t.getPannableExtent();a.xmin=r.xmin-10*i,a.xmax=r.xmax+10*i;let s=new H().execute(e,a,t,n).getImpl().querySegmentIterator();s.stripAttributes();let c=d();t.querySpheroidData(c);let l=c.e2,u=l===0?2:1,f=new D(0,0),p=new D(0,0),m=new O(0),h=new te(f,p,t,l,100);for(;s.nextPath();)for(;s.hasNextSegment();){let e=s.nextSegment();f.assign(e.getStartXY()),p.assign(e.getEndXY()),h.setSegmentEndPoints(f,p);let t=o(6,0,1,1e-12,1e-15,h.makeFunctor());m.pe((p.x-f.x)*t)}let g=c.majorSemiAxis;return u*g*g*(1-l)*Math.PI*m.getResult()/t.getPannableExtent().width()}function re(e,t,n,r,i){let a=oe(e,t,i),o=J(e,a.first,n,r,i),s=1,c=0,l=0;do{if(s++,a.first*=.5,a.first<t.getTolerance(0)*50)return o;a.second*=2,l=J(e,a.first,n,r,i),c=Math.abs(l-o),o=l}while(Math.abs(o)>1&&c>1e-8*Math.abs(o)&&(a.second<65e3&&s<8||s<4));return l}function J(e,t,n,r,i){let a=new c().execute(e,t,0,0,i),o;o=r?new p().execute(a,r,i):a;let s=n.getUnit().getUnitToBaseFactor()===1?Math.PI/180:1,l=new z;o.queryEnvelope(l);let u=new z,d=new z,f=new z;u.setCoords({xmin:l.xmin,ymin:75*s,xmax:l.xmax,ymax:90*s}),d.setCoords({xmin:l.xmin,ymin:-60*s,xmax:l.xmax,ymax:75*s}),f.setCoords({xmin:l.xmin,ymin:-90*s,xmax:l.xmax,ymax:-60*s}),u.inflateCoords(u.width()*.01,0),d.inflateCoords(d.width()*.01,0),f.inflateCoords(f.width()*.01,0);let m=0;return m+=Y(o,u,n,i),m+=Y(o,d,n,i),m+=Y(o,f,n,i),m}function Y(e,t,n,r){let i=new H().execute(e,t,n,r);if(i!==null&&!i.isEmpty()){let e=new z;i.queryEnvelope(e);let{first:t,second:a}=ae(n,e,!1),o=l(n,t,null),s=new p().execute(i,o,r).calculateArea2D();return a&&t.destroy(),s}return 0}const X=[null,null,null,null,null,null,null];function ie(e,t,n){let a=e.getUnit().getUnitToBaseFactor(),o=t.getCenter();o.scale(a*180/Math.PI);let s=new D;s.x=0,s.y=0;let c=0;if(c===0){o.y>45?(s.y=j,c=0):o.y<-45?(s.y=-j,c=1):o.x>=45&&o.x<135?(s.x=j,c=2):o.x>=135||o.x<-135?(s.x=j,c=3):o.x<-45&&o.x>=-135?(s.x=-j,c=4):(s.x=0,c=5);let e=a*Math.sqrt(M(t.xmin-t.xmax)+M(t.ymin-t.ymax)),n=s.clone(),r=t.getCenter();if(r.scale(a),c<2&&(n.x=r.x),D.distance(n,r)+e*.5>j)return null}let l=X[c];if(l!==null&&l.getGCS().equalHorizontal(e))return l;let u=e.getText(),d=s.x,f=s.y,p=0,_=-1;c===6?(i(n),p=0,_=m.PE_PRJ_CYLINDRICAL_EQAREA):_=m.PE_PRJ_LAMBERT_AZIMUTHAL_EQAREA;let v=h(`EqualAreaPCS`),y;_===m.PE_PRJ_LAMBERT_AZIMUTHAL_EQAREA?y=`PROJCS["${v}",${u},PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",${d}],PARAMETER["Latitude_of_Origin",${f}],UNIT["Meter",1.0]]`:_===m.PE_PRJ_CYLINDRICAL_EQAREA?y=`PROJCS["${v}",${u},PROJECTION["Cylindrical_Equal_Area"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",${d}],PARAMETER["Standard_Parallel_1",${p}],PARAMETER["Latitude_of_Origin",${f}],UNIT["Meter",1.0]]`:r(`getEqualAreaPcsFixed`);let b=g(y);return X[c]&&X[c].destroy(),X[c]=b,b}function ae(e,t,n){let i=ie(e,t,n);if(i!==null)return A(i,!1);let a=e.getText(),o=e.getUnit().getUnitToBaseFactor(),s=(t.xmin+t.width()/2)*o,c=(t.ymin+t.height()/2)*o,l=0,u=0,d=-1;t.ymin*o>=75*Math.PI/180||t.ymax*o<=-60*Math.PI/180?d=m.PE_PRJ_LAMBERT_AZIMUTHAL_EQAREA:t.ymin>0||t.ymax<0?(l=(t.ymin+1/3*t.height())*o,u=(t.ymin+2/3*t.height())*o,d=m.PE_PRJ_ALBERS):(l=(t.ymin+2/3*t.height())*o,d=m.PE_PRJ_CYLINDRICAL_EQAREA);let f=h(`EqualAreaPCS`),p;return d===m.PE_PRJ_LAMBERT_AZIMUTHAL_EQAREA?p=`PROJCS["${f}",${a},PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",${s}],PARAMETER["Latitude_of_Origin",${c}],UNIT["Meter",1.0]]`:d===m.PE_PRJ_ALBERS?p=`PROJCS["${f}",${a},PROJECTION["Albers"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",${s}],PARAMETER["Standard_Parallel_1",${l}],PARAMETER["Standard_Parallel_2",${u}],PARAMETER["Latitude_of_Origin",${c}],UNIT["Meter",1.0]]`:d===m.PE_PRJ_CYLINDRICAL_EQAREA?p=`PROJCS["${f}",${a},PROJECTION["Cylindrical_Equal_Area"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",${s}],PARAMETER["Standard_Parallel_1",${l}],PARAMETER["Latitude_of_Origin",${c}],UNIT["Meter",1.0]]`:r(`getEqualAreaPCSInstance`),A(g(p),!0)}function oe(e,t,n){let r=e.calculateLength2D(),i=new U().execute(e,t,n)/25e3,a=r/e.getSegmentCount()*2,o=Math.min(a,r/i);return o===0&&(o=1),A(o,r/o)}class se{getOperatorType(){return 10314}supportsCurves(){return!0}accelerateGeometry(e,t,n){return!1}canAccelerateGeometry(e){return!1}execute(r,i,o){if(i.getCoordinateSystemType()===0&&e(``),r.isEmpty()||r.getDimension()<2)return 0;if(t(r),r.getGeometryType()===n.enumEnvelope){let e=new a;return e.addEnvelope(r,!1),this.execute(e,i,o)}let s=r;r.getDescription().getAttributeCount()>1&&(s=r.clone(),s.dropAllAttributes());let d=new c().execute(s,0,i.getTolerance(0),0,o),f=null,p=i.getGCS();p!==i&&(f=l(i,p));let m=new u().execute(d,i,!1,o);return m.isEmpty()?0:(m===r&&(m=r.clone()),i.isPannable()?ne(m,i,o):re(m,i,p,f,o))}}function Z(){return{m_p_PCS:new D,m_factor:NaN,setValues:Q,assign:ce}}function Q(e,t){this.m_factor=e,this.m_p_PCS.assign(t)}function ce(e){this.m_factor=e.m_factor,this.m_p_PCS.assign(e.m_p_PCS)}class le{m_ptStart=new V;m_ptEnd=new V;m_deltaX;m_deltaY;m_e;m_e2;m_c1MinusE2;m_baseA;constructor(e,t,n,r){this.m_ptStart.assign(t),this.m_ptEnd.assign(n),this.m_deltaX=this.m_ptEnd.x-this.m_ptStart.x,this.m_deltaY=this.m_ptEnd.y-this.m_ptStart.y,this.m_e=Math.sqrt(e),this.m_e2=e,this.m_c1MinusE2=1-e;let i=Math.sin(r),a;a=this.m_e2===0?2*i:i*(L(this.m_e*i)+1/(1-this.m_e2*i*i)),this.m_baseA=a}setSegmentEndPoints(e,t){this.m_ptStart.assign(e),this.m_ptEnd.assign(t),this.m_deltaX=this.m_ptEnd.x-this.m_ptStart.x,this.m_deltaY=this.m_ptEnd.y-this.m_ptStart.y}makeFunctor(){return e=>{let t=1-e,n=t*this.m_ptStart.x+e*this.m_ptEnd.x,r=t*this.m_ptStart.y+e*this.m_ptEnd.y,i=t*this.m_ptStart.z+e*this.m_ptEnd.z,a=n*n+r*r,o=i/Math.sqrt(i*i+this.m_c1MinusE2*this.m_c1MinusE2*a),s;return s=this.m_e2===0?2*o:o*(L(this.m_e*o)+1/(1-this.m_e2*o*o)),(this.m_deltaY*n-this.m_deltaX*r)/a*(s-this.m_baseA)}}}function ue(){return{e:NaN,one_p_e:NaN,one_m_e:NaN,one_m_e_2:NaN,atanh_e_over_e:NaN,half_qp:NaN,f:NaN,z:NaN}}function $(){return{sin_phi:NaN,one_p_sin_phi:NaN,one_m_sin_phi:NaN,one_m_e_2_sin_2_phi:NaN,sin_half_phi_pf:NaN,sin_half_phi_pz:NaN,sin_half_asin_e_sin_phi_pf:NaN,sin_half_asin_e_sin_phi_pz:NaN,atanh_sin_phi:NaN,atanh_esin_phi:NaN,make_negative:!1,initialize:de,changeSign:fe,assign:pe,clone:me}}function de(e,t,n,r){let i=.5*e;this.sin_phi=Math.sin(e);let a=t*this.sin_phi,o=.5*Math.asin(a);this.one_p_sin_phi=1+this.sin_phi,this.one_m_sin_phi=1-this.sin_phi,this.one_m_e_2_sin_2_phi=(1+a)*(1-a),this.sin_half_phi_pf=Math.sin(i+n),this.sin_half_phi_pz=Math.sin(i+r),this.sin_half_asin_e_sin_phi_pf=Math.sin(o+n),this.sin_half_asin_e_sin_phi_pz=Math.sin(o+r),this.atanh_sin_phi=Math.log(this.sin_half_phi_pf/this.sin_half_phi_pz),this.atanh_esin_phi=Math.log(this.sin_half_asin_e_sin_phi_pf/this.sin_half_asin_e_sin_phi_pz)}function fe(){this.sin_phi=-this.sin_phi;let e=this.one_p_sin_phi;this.one_p_sin_phi=this.one_m_sin_phi,this.one_m_sin_phi=e,e=this.sin_half_phi_pf,this.sin_half_phi_pf=this.sin_half_phi_pz,this.sin_half_phi_pz=e,e=this.sin_half_asin_e_sin_phi_pf,this.sin_half_asin_e_sin_phi_pf=this.sin_half_asin_e_sin_phi_pz,this.sin_half_asin_e_sin_phi_pz=e,this.atanh_sin_phi=-this.atanh_sin_phi,this.atanh_esin_phi=-this.atanh_esin_phi}function pe(e){this.sin_phi=e.sin_phi,this.one_p_sin_phi=e.one_p_sin_phi,this.one_m_sin_phi=e.one_m_sin_phi,this.one_m_e_2_sin_2_phi=e.one_m_e_2_sin_2_phi,this.sin_half_phi_pf=e.sin_half_phi_pf,this.sin_half_phi_pz=e.sin_half_phi_pz,this.sin_half_asin_e_sin_phi_pf=e.sin_half_asin_e_sin_phi_pf,this.sin_half_asin_e_sin_phi_pz=e.sin_half_asin_e_sin_phi_pz,this.atanh_sin_phi=e.atanh_sin_phi,this.atanh_esin_phi=e.atanh_esin_phi,this.make_negative=e.make_negative}function me(){return{...this}}class he{m_a;m_b;m_eSquared;m_inputSR;m_inputGCS;m_transformPCS2GCS=null;m_curveType;m_progressTracker;m_scaleToRadians=new K;m_scaleToDegrees=new K;m_rpu;constructor(t,n,r){this.m_progressTracker=r,i(n!==4),this.m_curveType=n,this.m_inputSR=t,(!t||t.getCoordinateSystemType()===0)&&e(``),this.m_inputGCS=t.getGCS(),this.m_a=0,this.m_eSquared=0,this.m_b=0,this.m_rpu=0}executePolygonGeodeticArea(e){let t=e.clone();if(t.dropAllAttributes(),e.hasNonLinearSegments()&&(t=new c().execute(t,0,this.m_inputSR.getTolerance(0),0,this.m_progressTracker)),this.m_inputSR.isPannable()){let e=new z;t.queryEnvelope(e);let n=this.m_inputSR.getPannableExtent();if(!n.containsEnvelope(e)){let r=n.getCenterX()-e.getCenterX(),i=new K;i.setShiftCoords(r,0),t.applyTransformation(i),e.move(r,0);let a=new N;n.queryIntervalX(a);let o=new N;e.queryIntervalX(o),t=a.contains(o)?_(t,this.m_inputSR):new p().foldInto360RangeGeodetic(t,this.m_inputSR,this.m_curveType)}}let n;if(this.m_transformPCS2GCS?(t=new u().execute(t,this.m_inputSR,!1,this.m_progressTracker),n=t.createInstance(),v(this.m_transformPCS2GCS,t,n,this.m_progressTracker)||(n=new p().execute(t,this.m_transformPCS2GCS,this.m_progressTracker))):n=new u().execute(t,this.m_inputGCS,!1,this.m_progressTracker),n.isEmpty())return 0;if(this.m_curveType===1){let e=d();return this.m_inputGCS.querySpheroidData(e),this.m_a=e.majorSemiAxis,this.m_eSquared=e.e2,this.loxodromeArea(n)}let r=n.getImpl();this.m_rpu=this.m_inputGCS.getUnit().getUnitToBaseFactor(),this.m_scaleToRadians.setScale(this.m_rpu),r.applyTransformation(this.m_scaleToRadians),this.m_scaleToDegrees=this.m_scaleToRadians,this.m_scaleToDegrees.invertThis();let i=d();if(this.m_inputGCS.querySpheroidData(i),this.m_a=i.majorSemiAxis,this.m_b=i.minorSemiAxis,this.m_eSquared=i.e2,this.m_curveType===2)return this.executeClippedPolygonGreatEllipticArea(n);{let e={stack:[],error:void 0,hasError:!1};try{let t=y.unit(9101),r=this.m_inputGCS.getPECoordSys(),i=W(e,r.cloneAlterUnits(t),!1),a=this.executeClippedPolygonGeodeticArea(n,i,0),o,s,c=0;do c++,o=this.executeClippedPolygonGeodeticArea(n,i,c),s=Math.abs(o-a),a=o;while(Math.abs(o)>1&&s>1e-8*Math.abs(o)&&c<7);return o}catch(t){e.error=t,e.hasError=!0}finally{G(e)}}}executeClippedPolygonGeodeticArea(e,t,n){let r={stack:[],error:void 0,hasError:!1};try{let i=new z;e.queryEnvelope(i);let a=W(r,this.getEqualAreaPCSInstance(t,i),!1),o=e.clone();b(a,o);let s=o.getImpl().getAttributeStreamRef(0),c=e.getImpl().getAttributeStreamRef(0),l=W(r,new x,!1),u=W(r,new x,!1),d=[0,0],p=ee(Z,40),m=k(40,-1),h=Z(),g=Z(),_,v,y=a,C=o.calculateArea2D(),w=new O(0),T=Math.PI*.5,E=Math.abs(C)*1e-10+1e-6,A=e.getPathCount(),j,M,N,F,I=new D,L=new D,R=new D,B=new D,V=new D,H=new D,U,G;for(M=e.getPathStart(0),j=0;j<A;j++,M=N)for(N=e.getPathEnd(j),s.queryPoint2D(N-1<<1,R),c.queryPoint2D(N-1<<1,I),Math.abs(I.y)>T&&(I.y=P(T,I.y)),F=M;F<N;F++,R.assign(B),I.assign(L)){if(s.queryPoint2D(F<<1,B),c.queryPoint2D(F<<1,L),Math.abs(L.y)>T&&(L.y=P(T,L.y)),U=D.distance(R,B),U<50||I.y===0&&L.y===0)continue;S.geodeticDistance(this.m_a,this.m_eSquared,I.x,I.y,L.x,L.y,l,u,null,this.m_curveType);let e=l.val,t=u.val;for(h.setValues(0,R),g.setValues(1,B),v=n,p[0].assign(g),m[0]=n,_=0;_>=0;){G=(h.m_factor+g.m_factor)*.5,S.geodeticCoordinate(this.m_a,this.m_eSquared,I.x,I.y,e*G,t,l,u,this.m_curveType),V.x=l.val,V.y=u.val,d[0]=V.x,d[1]=V.y,f.geogToProj(y,1,d),H.x=d[0],H.y=d[1];let n=-H.offset(h.m_p_PCS,g.m_p_PCS),r=D.distance(h.m_p_PCS,g.m_p_PCS),i=.5*n*r;if(w.pe(i),Math.abs(i)>E||Math.abs(i)>0&&v>0)g.setValues(G,H),_++,p[_].assign(g),Math.abs(i)<=E?(v--,m[_-1]=v,m[_]=v):(v=m[_-1],m[_]=v);else{if(_<=0)break;h.assign(g),_--,g.assign(p[_]),v=m[_]}}}return C+=w.getResult(),Math.abs(C)}catch(e){r.error=e,r.hasError=!0}finally{G(r)}}executeClippedPolygonGreatEllipticArea(e){let t=[],n=[],r=new D,i=new D,a=C(1,this.m_eSquared,new D(0,Math.PI*.5)),o=new O(0),s=new O(0),c=new O(0),l=new V,u=new V,d=new z;e.queryLooseEnvelope(d);let f=0;d.containsCoords(d.xmin,0)||(f=Math.abs(d.ymin)<Math.abs(d.ymax)?d.ymin:d.ymax);let p=new le(this.m_eSquared,l,u,f),m=this.m_a*this.m_a,h=e.getImpl().querySegmentIterator();for(h.stripAttributes();h.nextPath();)for(;h.hasNextSegment();){let e=h.nextSegment();r.assign(e.getStartXY()),i.assign(e.getEndXY()),i.x-r.x>Math.PI?r.x+=Math.PI*2:i.x-r.x<-Math.PI&&(i.x+=Math.PI*2),this.splitSegmentCrossingItegralThreshold(e,t,n);for(let e of t)l.assign(C(this.m_a,this.m_eSquared,e.getStartXY())),u.assign(C(this.m_a,this.m_eSquared,e.getEndXY())),p.setSegmentEndPoints(l,u),this.adaptiveIntegrationWithRomberg(p,o);for(let e of n){let t=e.getStartXY(),n=e.getEndXY(),r=f;t.y<0&&(n=F(t,t=n),t.y=-t.y,n.y=-n.y,r=-r);let i=C(1,this.m_eSquared,t),o=C(1,this.m_eSquared,n),l=Math.min(t.y,n.y),u=w(this.m_eSquared,t.x,n.x,r,l);s.pe(u);let d=Math.abs(w(this.m_eSquared,t.x,n.x,l,j)),p=new V;p.setSub(i,a);let h=new V;h.setSub(o,a);let g=new V;g.setCrossProductVector(p,h);let _=m*(d-.5*g.length());_=P(_,n.x-t.x),c.pe(_)}t.length=0,n.length=0}return c.getResult()+m*(.5*(1-this.m_eSquared)*o.getResult()+s.getResult())}getEqualAreaPCSInstance(e,t){let n=t.getCenterX(),r,i,a=t.height(),o;(o=t.ymin>Math.PI*45/180||t.ymax<-Math.PI*45/180)?r=P(Math.PI*.5,t.getCenterY()):(r=t.getCenterY(),i=t.ymin+2/3*a);let s,c=h(`EqualAreaPCS`),l=e.toString();return s=o?y.fromString(m.PE_TYPE_PROJCS,`PROJCS["${c}", ${l}, PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["False_Easting",0],PARAMETER["False_Northing", 0],PARAMETER["Central_Meridian", ${n}], PARAMETER["Latitude_of_Origin", ${r}], UNIT["Meter",1.0]]`,!0):y.fromString(m.PE_TYPE_PROJCS,`PROJCS["${c}", ${l}, PROJECTION["Cylindrical_Equal_Area"],PARAMETER["False_Easting", 0],PARAMETER["False_Northing", 0],PARAMETER["Central_Meridian", ${n}],PARAMETER["Standard_Parallel_1", ${i}],PARAMETER["Latitude_of_Origin", ${r}],UNIT["Meter",1.0]]`,!0),s}splitSegmentCrossingItegralThreshold(e,t,n){let r=C(this.m_a,this.m_eSquared,new D(0,j)),i=C(this.m_a,this.m_eSquared,new D(0,-j)),a=this.splitSegmentPassingThroughPole(e);for(let e of a){let a=e.getStartXY(),o=e.getEndXY(),c=C(this.m_a,this.m_eSquared,a),l=C(this.m_a,this.m_eSquared,o),u=new D,d=new V,f=V.sqrDistance(r,c),p=V.sqrDistance(c,l);if(f<=100){if(p>400)d.assign(l.sub(c)),d.normalizeThis(),d.assign(c.add(d.mul(20))),u.assign(T(this.m_a,this.m_eSquared,d));else{n.push(new s({start:a,end:o}));continue}n.push(new s({start:a,end:u})),a.assign(u)}if(c.assign(C(this.m_a,this.m_eSquared,a)),f=V.sqrDistance(r,l),p=V.sqrDistance(c,l),f<=100){if(p>400)d.assign(l.sub(c)),d.normalizeThis(),d.assign(l.sub(d.mul(20))),u.assign(T(this.m_a,this.m_eSquared,d));else{n.push(new s({start:a,end:o}));continue}n.push(new s({start:u,end:o})),o.assign(u)}if(c.assign(C(this.m_a,this.m_eSquared,a)),l.assign(C(this.m_a,this.m_eSquared,o)),f=V.sqrDistance(i,c),p=V.sqrDistance(c,l),f<=100){if(p>400)d.assign(l.sub(c)),d.normalizeThis(),d.assign(c.add(d.mul(20))),u.assign(T(this.m_a,this.m_eSquared,d));else{n.push(new s({start:a,end:o}));continue}n.push(new s({start:a,end:u})),a.assign(u)}if(c.assign(C(this.m_a,this.m_eSquared,a)),l.assign(C(this.m_a,this.m_eSquared,o)),f=V.sqrDistance(i,l),p=V.sqrDistance(c,l),f<=100){if(p>400)d.assign(l.sub(c)),d.normalizeThis(),d.assign(l.sub(d.mul(20))),u.assign(T(this.m_a,this.m_eSquared,d));else{n.push(new s({start:a,end:o}));continue}n.push(new s({start:u,end:o})),o.assign(u)}t.push(new s({start:a,end:o}))}}splitSegmentPassingThroughPole(e){let t={stack:[],error:void 0,hasError:!1};try{let n=[],r=new V,i=new V,a=new V,o=new D,c=e.getStartXY(),l=e.getEndXY(),u=W(t,new x,!1);if(S.geodeticDistance(this.m_a,this.m_eSquared,c.x,c.y,l.x,l.y,u,null,null,2),Math.abs(l.x-c.x)>3.124139361&&u.val>20){let e=new q(new D(0,90),c.divide(this.m_rpu),l.divide(this.m_rpu),this.m_inputGCS,2,2),t=E(e.makeFunctor(),0,1,1e-10);if(t.second<=10&&t.first>0&&t.first<1||(e.setPointDistFrom(new D(0,-90)),t=E(e.makeFunctor(),0,1,1e-10),t.second<=10&&t.first>0&&t.first<1))return r.assign(C(this.m_a,this.m_eSquared,c)),i.assign(C(this.m_a,this.m_eSquared,l)),I(r,i,t.first,a),o.assign(T(this.m_a,this.m_eSquared,a)),n.push(new s({start:c,end:o})),n.push(new s({start:o,end:l})),n}return n.push(new s({start:c,end:l})),n}catch(e){t.error=e,t.hasError=!0}finally{G(t)}}adaptiveIntegrationWithRomberg(e,t){let n=e.makeFunctor(),r=0,i=1,a=n(r),s=n(i),c=1e-17,l=1e-14,u=(r+i)/2,d=n(u),f=Math.abs(d-a),p=Math.abs(s-d),m=0;for(;m++<32&&(f/p<.1||p/f<.1);)f<p?(t.pe(o(5,r,u,l,c,n)),r=u,a=d):(t.pe(o(5,u,i,l,c,n)),i=u,s=d),u=(r+i)/2,d=Math.abs(n(u)),f=Math.abs(d-a),p=Math.abs(s-d);t.pe(o(5,r,i,l,c,n))}loxodromeAreaHemi(e,t,n,r,i){let a=n.clone(),o=i.clone(),s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S;return a.make_negative&&a.changeSign(),o.make_negative&&o.changeSign(),_=r-t,Math.abs(a.sin_phi)===1||Math.abs(o.sin_phi)===1?e.half_qp*_:a.sin_phi===o.sin_phi?(g=e.one_m_e_2*.5*a.sin_phi*(1/a.one_m_e_2_sin_2_phi+L(e.e*a.sin_phi))*_,g):(x=Math.log(o.sin_half_phi_pf*a.sin_half_phi_pz/(o.sin_half_phi_pz*a.sin_half_phi_pf)),S=Math.log(o.sin_half_asin_e_sin_phi_pf*a.sin_half_asin_e_sin_phi_pz/(o.sin_half_asin_e_sin_phi_pz*a.sin_half_asin_e_sin_phi_pf)),this.m_eSquared===1?(d=0,s=.5*(x+o.sin_phi/o.one_m_e_2_sin_2_phi-a.sin_phi/a.one_m_e_2_sin_2_phi),c=0):(d=-2*e.atanh_e_over_e*(Math.log(o.one_p_sin_phi/a.one_p_sin_phi)-e.e*S),s=(x-e.e*S)/e.one_m_e_2,c=(Math.log(o.one_m_e_2_sin_2_phi/a.one_m_e_2_sin_2_phi)+d/e.atanh_e_over_e)/e.one_m_e_2),l=-S*(a.atanh_esin_phi+o.atanh_esin_phi),u=1/a.one_m_e_2_sin_2_phi-1/o.one_m_e_2_sin_2_phi,f=R(o.one_m_sin_phi/e.one_p_e,e.e)-R(a.one_m_sin_phi/e.one_p_e,e.e),p=R(o.one_p_sin_phi/e.one_p_e,e.e)-R(a.one_p_sin_phi/e.one_p_e,e.e),m=R(a.one_m_sin_phi/-e.one_m_e,e.e)-R(o.one_m_sin_phi/-e.one_m_e,e.e),h=R(a.one_p_sin_phi/-e.one_m_e,e.e)-R(o.one_p_sin_phi/-e.one_m_e,e.e),g=.25/s*(c+l+u+d+.5*(f+p+m+h)),g+=e.half_qp,v=e.one_m_e_2*.5*a.sin_phi*(1/a.one_m_e_2_sin_2_phi+L(e.e*a.sin_phi)),y=e.one_m_e_2*.5*o.sin_phi*(1/o.one_m_e_2_sin_2_phi+L(e.e*o.sin_phi)),y<v&&(b=v,v=y,y=b),g<v&&(g=v),g>y&&(g=y),g*=_,g)}loxodromeArea(e){let t=Math.PI/180,n=0,r=ue(),i=$(),a=$();r.e=Math.sqrt(this.m_eSquared),r.one_p_e=1+r.e,r.one_m_e=1-r.e,r.one_m_e_2=1-this.m_eSquared,r.atanh_e_over_e=L(r.e),r.half_qp=this.m_eSquared>=1?1:.5*(1+r.atanh_e_over_e*r.one_m_e_2),r.f=.25*Math.PI,r.z=.75*Math.PI,a.initialize(0,r.e,r.f,r.z);let o=e.getPathCount(),s=new D,c=new D,l=e.getImpl().getAttributeStreamRef(0);for(let u=0;u<o;u++){let o=e.getPathStart(u),d=e.getPathEnd(u);if(!(d-o<=1)){l.queryPoint2D((d-1)*2,s);for(let e=o;e<d;e++){l.queryPoint2D(e*2,c);let u=s.y*t,d=c.y*t;if(e===o?(i.initialize(u,r.e,r.f,r.z),i.make_negative=!1):i.assign(a),a.initialize(d,r.e,r.f,r.z),a.make_negative=!1,s.y*c.y<0){if(s.y>=90&&c.y<=-90||c.y>=90&&s.y<=-90)return NaN;let e=$();e.initialize(0,r.e,r.f,r.z),e.make_negative=!1;let o=i.atanh_sin_phi-r.e*i.atanh_esin_phi,l=a.atanh_sin_phi-r.e*a.atanh_esin_phi,d=(l*s.x-o*c.x)/(l-o);u<0?(i.make_negative=!0,n-=this.loxodromeAreaHemi(r,s.x*t,i,d*t,e),i.make_negative=!1,n+=this.loxodromeAreaHemi(r,d*t,e,c.x*t,a)):(n+=this.loxodromeAreaHemi(r,s.x*t,i,d*t,e),a.make_negative=!0,n-=this.loxodromeAreaHemi(r,d*t,e,c.x*t,a),a.make_negative=!1)}else s.y>=0?n+=this.loxodromeAreaHemi(r,s.x*t,i,c.x*t,a):(i.make_negative=!0,a.make_negative=!0,n-=this.loxodromeAreaHemi(r,s.x*t,i,c.x*t,a),i.make_negative=!1,a.make_negative=!1);s.assign(c)}}}return this.m_a*n*this.m_a}calculate(e){if(e.isEmpty()||e.getDimension()<2)return 0;if(e.getGeometryType()===n.enumEnvelope){let t=new a;return t.addEnvelope(e,!1),this.calculate(t)}return this.m_inputSR!==this.m_inputGCS&&this.m_transformPCS2GCS===null&&(this.m_transformPCS2GCS=l(this.m_inputSR,this.m_inputGCS,null)),this.executePolygonGeodeticArea(e)}}class ge{getOperatorType(){return 10311}supportsCurves(){return!0}accelerateGeometry(e,t,n){return!1}canAccelerateGeometry(e){return!1}execute(e,n,r,i){return t(e),r===4?new se().execute(e,n,i):new he(n,r,i).calculate(e)}}export{ge as OperatorGeodeticArea};
|
|
2
|
+
import{b as e,t,G as n,d as r,g as i}from"./Geometry.js";import{P as a,x as o,L as s}from"./MultiPathImpl.js";import{O as c}from"./OperatorDensify.js";import{D as l,J as u,r as d,aD as f,O as p,aN as m,j as h,b as g,ag as _,aF as v,aX as y,aY as b,an as x,ao as S,av as C,aZ as w,aC as T,ay as E}from"./UnitFactory.js";import{P as D,K as O,c as k,o as A,l as j,e as M,E as N,q as ee,j as P,s as F,y as I,z as L,A as R}from"./Point2D.js";import{Envelope2D as z}from"./Envelope2D.js";import{c as B,k as V}from"./Envelope.js";import{O as H}from"./OperatorClip.js";import{O as U}from"./OperatorShapePreservingLength.js";import{__addDisposableResource as W,__disposeResources as G}from"tslib";import{T as K}from"./Transformation2D.js";import{a as q}from"./GeodeticDistanceCalculator-zRp89-dW.js";class te{m_startPt;m_endPt;m_cE2;m_cE;m_c1By2e;m_cRpu;isPcs;PEProjcs;m_points;constructor(e,t,n,r,i=100){this.m_startPt=e.clone(),this.m_endPt=t.clone(),this.m_cE2=r,this.m_cE=Math.sqrt(this.m_cE2),this.m_c1By2e=1/(2*this.m_cE),this.m_cRpu=n.getGCS().getUnit().getUnitToBaseFactor(),this.isPcs=n.getCoordinateSystemType()===2,this.PEProjcs=n.getPECoordSys(),this.m_points=k(i*2,NaN)}setSegmentEndPoints(e,t){this.m_startPt.assign(e),this.m_endPt.assign(t)}makeFunctor(){return e=>{let t=[0,0];t[0]=this.m_startPt.x*(1-e)+this.m_endPt.x*e,t[1]=this.m_startPt.y*(1-e)+this.m_endPt.y*e,this.isPcs&&f.projToGeogCenter(this.PEProjcs,1,t,0);let n=Math.sin(t[1]*this.m_cRpu);return this.m_cE2===0?n:-(Math.log((1-this.m_cE*n)/(1+this.m_cE*n))*this.m_c1By2e)+n/(1-this.m_cE2*n*n)}}}function ne(e,t,n){let r=new z;e.queryEnvelope(r);let i=B(t,r,!0).total(),a=t.getPannableExtent();a.xmin=r.xmin-10*i,a.xmax=r.xmax+10*i;let s=new H().execute(e,a,t,n).getImpl().querySegmentIterator();s.stripAttributes();let c=d();t.querySpheroidData(c);let l=c.e2,u=l===0?2:1,f=new D(0,0),p=new D(0,0),m=new O(0),h=new te(f,p,t,l,100);for(;s.nextPath();)for(;s.hasNextSegment();){let e=s.nextSegment();f.assign(e.getStartXY()),p.assign(e.getEndXY()),h.setSegmentEndPoints(f,p);let t=o(6,0,1,1e-12,1e-15,h.makeFunctor());m.pe((p.x-f.x)*t)}let g=c.majorSemiAxis;return u*g*g*(1-l)*Math.PI*m.getResult()/t.getPannableExtent().width()}function re(e,t,n,r,i){let a=oe(e,t,i),o=J(e,a.first,n,r,i),s=1,c=0,l=0;do{if(s++,a.first*=.5,a.first<t.getTolerance(0)*50)return o;a.second*=2,l=J(e,a.first,n,r,i),c=Math.abs(l-o),o=l}while(Math.abs(o)>1&&c>1e-8*Math.abs(o)&&(a.second<65e3&&s<8||s<4));return l}function J(e,t,n,r,i){let a=new c().execute(e,t,0,0,i),o;o=r?new p().execute(a,r,i):a;let s=n.getUnit().getUnitToBaseFactor()===1?Math.PI/180:1,l=new z;o.queryEnvelope(l);let u=new z,d=new z,f=new z;u.setCoords({xmin:l.xmin,ymin:75*s,xmax:l.xmax,ymax:90*s}),d.setCoords({xmin:l.xmin,ymin:-60*s,xmax:l.xmax,ymax:75*s}),f.setCoords({xmin:l.xmin,ymin:-90*s,xmax:l.xmax,ymax:-60*s}),u.inflateCoords(u.width()*.01,0),d.inflateCoords(d.width()*.01,0),f.inflateCoords(f.width()*.01,0);let m=0;return m+=Y(o,u,n,i),m+=Y(o,d,n,i),m+=Y(o,f,n,i),m}function Y(e,t,n,r){let i=new H().execute(e,t,n,r);if(i!==null&&!i.isEmpty()){let e=new z;i.queryEnvelope(e);let{first:t,second:a}=ae(n,e,!1),o=l(n,t,null),s=new p().execute(i,o,r).calculateArea2D();return a&&t.destroy(),s}return 0}const X=[null,null,null,null,null,null,null];function ie(e,t,n){let a=e.getUnit().getUnitToBaseFactor(),o=t.getCenter();o.scale(a*180/Math.PI);let s=new D;s.x=0,s.y=0;let c=0;if(c===0){o.y>45?(s.y=j,c=0):o.y<-45?(s.y=-j,c=1):o.x>=45&&o.x<135?(s.x=j,c=2):o.x>=135||o.x<-135?(s.x=j,c=3):o.x<-45&&o.x>=-135?(s.x=-j,c=4):(s.x=0,c=5);let e=a*Math.sqrt(M(t.xmin-t.xmax)+M(t.ymin-t.ymax)),n=s.clone(),r=t.getCenter();if(r.scale(a),c<2&&(n.x=r.x),D.distance(n,r)+e*.5>j)return null}let l=X[c];if(l!==null&&l.getGCS().equalHorizontal(e))return l;let u=e.getText(),d=s.x,f=s.y,p=0,_=-1;c===6?(i(n),p=0,_=m.PE_PRJ_CYLINDRICAL_EQAREA):_=m.PE_PRJ_LAMBERT_AZIMUTHAL_EQAREA;let v=h(`EqualAreaPCS`),y;_===m.PE_PRJ_LAMBERT_AZIMUTHAL_EQAREA?y=`PROJCS["${v}",${u},PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",${d}],PARAMETER["Latitude_of_Origin",${f}],UNIT["Meter",1.0]]`:_===m.PE_PRJ_CYLINDRICAL_EQAREA?y=`PROJCS["${v}",${u},PROJECTION["Cylindrical_Equal_Area"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",${d}],PARAMETER["Standard_Parallel_1",${p}],PARAMETER["Latitude_of_Origin",${f}],UNIT["Meter",1.0]]`:r(`getEqualAreaPcsFixed`);let b=g(y);return X[c]&&X[c].destroy(),X[c]=b,b}function ae(e,t,n){let i=ie(e,t,n);if(i!==null)return A(i,!1);let a=e.getText(),o=e.getUnit().getUnitToBaseFactor(),s=(t.xmin+t.width()/2)*o,c=(t.ymin+t.height()/2)*o,l=0,u=0,d=-1;t.ymin*o>=75*Math.PI/180||t.ymax*o<=-60*Math.PI/180?d=m.PE_PRJ_LAMBERT_AZIMUTHAL_EQAREA:t.ymin>0||t.ymax<0?(l=(t.ymin+1/3*t.height())*o,u=(t.ymin+2/3*t.height())*o,d=m.PE_PRJ_ALBERS):(l=(t.ymin+2/3*t.height())*o,d=m.PE_PRJ_CYLINDRICAL_EQAREA);let f=h(`EqualAreaPCS`),p;return d===m.PE_PRJ_LAMBERT_AZIMUTHAL_EQAREA?p=`PROJCS["${f}",${a},PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",${s}],PARAMETER["Latitude_of_Origin",${c}],UNIT["Meter",1.0]]`:d===m.PE_PRJ_ALBERS?p=`PROJCS["${f}",${a},PROJECTION["Albers"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",${s}],PARAMETER["Standard_Parallel_1",${l}],PARAMETER["Standard_Parallel_2",${u}],PARAMETER["Latitude_of_Origin",${c}],UNIT["Meter",1.0]]`:d===m.PE_PRJ_CYLINDRICAL_EQAREA?p=`PROJCS["${f}",${a},PROJECTION["Cylindrical_Equal_Area"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",${s}],PARAMETER["Standard_Parallel_1",${l}],PARAMETER["Latitude_of_Origin",${c}],UNIT["Meter",1.0]]`:r(`getEqualAreaPCSInstance`),A(g(p),!0)}function oe(e,t,n){let r=e.calculateLength2D(),i=new U().execute(e,t,n)/25e3,a=r/e.getSegmentCount()*2,o=Math.min(a,r/i);return o===0&&(o=1),A(o,r/o)}class se{getOperatorType(){return 10314}supportsCurves(){return!0}accelerateGeometry(e,t,n){return!1}canAccelerateGeometry(e){return!1}execute(r,i,o){if(i.getCoordinateSystemType()===0&&e(``),r.isEmpty()||r.getDimension()<2)return 0;if(t(r),r.getGeometryType()===n.enumEnvelope){let e=new a;return e.addEnvelope(r,!1),this.execute(e,i,o)}let s=r;r.getDescription().getAttributeCount()>1&&(s=r.clone(),s.dropAllAttributes());let d=new c().execute(s,0,i.getTolerance(0),0,o),f=null,p=i.getGCS();p!==i&&(f=l(i,p));let m=new u().execute(d,i,!1,o);return m.isEmpty()?0:(m===r&&(m=r.clone()),i.isPannable()?ne(m,i,o):re(m,i,p,f,o))}}function Z(){return{m_p_PCS:new D,m_factor:NaN,setValues:Q,assign:ce}}function Q(e,t){this.m_factor=e,this.m_p_PCS.assign(t)}function ce(e){this.m_factor=e.m_factor,this.m_p_PCS.assign(e.m_p_PCS)}class le{m_ptStart=new V;m_ptEnd=new V;m_deltaX;m_deltaY;m_e;m_e2;m_c1MinusE2;m_baseA;constructor(e,t,n,r){this.m_ptStart.assign(t),this.m_ptEnd.assign(n),this.m_deltaX=this.m_ptEnd.x-this.m_ptStart.x,this.m_deltaY=this.m_ptEnd.y-this.m_ptStart.y,this.m_e=Math.sqrt(e),this.m_e2=e,this.m_c1MinusE2=1-e;let i=Math.sin(r),a;a=this.m_e2===0?2*i:i*(L(this.m_e*i)+1/(1-this.m_e2*i*i)),this.m_baseA=a}setSegmentEndPoints(e,t){this.m_ptStart.assign(e),this.m_ptEnd.assign(t),this.m_deltaX=this.m_ptEnd.x-this.m_ptStart.x,this.m_deltaY=this.m_ptEnd.y-this.m_ptStart.y}makeFunctor(){return e=>{let t=1-e,n=t*this.m_ptStart.x+e*this.m_ptEnd.x,r=t*this.m_ptStart.y+e*this.m_ptEnd.y,i=t*this.m_ptStart.z+e*this.m_ptEnd.z,a=n*n+r*r,o=i/Math.sqrt(i*i+this.m_c1MinusE2*this.m_c1MinusE2*a),s;return s=this.m_e2===0?2*o:o*(L(this.m_e*o)+1/(1-this.m_e2*o*o)),(this.m_deltaY*n-this.m_deltaX*r)/a*(s-this.m_baseA)}}}function ue(){return{e:NaN,one_p_e:NaN,one_m_e:NaN,one_m_e_2:NaN,atanh_e_over_e:NaN,half_qp:NaN,f:NaN,z:NaN}}function $(){return{sin_phi:NaN,one_p_sin_phi:NaN,one_m_sin_phi:NaN,one_m_e_2_sin_2_phi:NaN,sin_half_phi_pf:NaN,sin_half_phi_pz:NaN,sin_half_asin_e_sin_phi_pf:NaN,sin_half_asin_e_sin_phi_pz:NaN,atanh_sin_phi:NaN,atanh_esin_phi:NaN,make_negative:!1,initialize:de,changeSign:fe,assign:pe,clone:me}}function de(e,t,n,r){let i=.5*e;this.sin_phi=Math.sin(e);let a=t*this.sin_phi,o=.5*Math.asin(a);this.one_p_sin_phi=1+this.sin_phi,this.one_m_sin_phi=1-this.sin_phi,this.one_m_e_2_sin_2_phi=(1+a)*(1-a),this.sin_half_phi_pf=Math.sin(i+n),this.sin_half_phi_pz=Math.sin(i+r),this.sin_half_asin_e_sin_phi_pf=Math.sin(o+n),this.sin_half_asin_e_sin_phi_pz=Math.sin(o+r),this.atanh_sin_phi=Math.log(this.sin_half_phi_pf/this.sin_half_phi_pz),this.atanh_esin_phi=Math.log(this.sin_half_asin_e_sin_phi_pf/this.sin_half_asin_e_sin_phi_pz)}function fe(){this.sin_phi=-this.sin_phi;let e=this.one_p_sin_phi;this.one_p_sin_phi=this.one_m_sin_phi,this.one_m_sin_phi=e,e=this.sin_half_phi_pf,this.sin_half_phi_pf=this.sin_half_phi_pz,this.sin_half_phi_pz=e,e=this.sin_half_asin_e_sin_phi_pf,this.sin_half_asin_e_sin_phi_pf=this.sin_half_asin_e_sin_phi_pz,this.sin_half_asin_e_sin_phi_pz=e,this.atanh_sin_phi=-this.atanh_sin_phi,this.atanh_esin_phi=-this.atanh_esin_phi}function pe(e){this.sin_phi=e.sin_phi,this.one_p_sin_phi=e.one_p_sin_phi,this.one_m_sin_phi=e.one_m_sin_phi,this.one_m_e_2_sin_2_phi=e.one_m_e_2_sin_2_phi,this.sin_half_phi_pf=e.sin_half_phi_pf,this.sin_half_phi_pz=e.sin_half_phi_pz,this.sin_half_asin_e_sin_phi_pf=e.sin_half_asin_e_sin_phi_pf,this.sin_half_asin_e_sin_phi_pz=e.sin_half_asin_e_sin_phi_pz,this.atanh_sin_phi=e.atanh_sin_phi,this.atanh_esin_phi=e.atanh_esin_phi,this.make_negative=e.make_negative}function me(){return{...this}}class he{m_a;m_b;m_eSquared;m_inputSR;m_inputGCS;m_transformPCS2GCS=null;m_curveType;m_progressTracker;m_scaleToRadians=new K;m_scaleToDegrees=new K;m_rpu;constructor(t,n,r){this.m_progressTracker=r,i(n!==4),this.m_curveType=n,this.m_inputSR=t,(!t||t.getCoordinateSystemType()===0)&&e(``),this.m_inputGCS=t.getGCS(),this.m_a=0,this.m_eSquared=0,this.m_b=0,this.m_rpu=0}executePolygonGeodeticArea(e){let t=e.clone();if(t.dropAllAttributes(),e.hasNonLinearSegments()&&(t=new c().execute(t,0,this.m_inputSR.getTolerance(0),0,this.m_progressTracker)),this.m_inputSR.isPannable()){let e=new z;t.queryEnvelope(e);let n=this.m_inputSR.getPannableExtent();if(!n.containsEnvelope(e)){let r=n.getCenterX()-e.getCenterX(),i=new K;i.setShiftCoords(r,0),t.applyTransformation(i),e.move(r,0);let a=new N;n.queryIntervalX(a);let o=new N;e.queryIntervalX(o),t=a.contains(o)?_(t,this.m_inputSR):new p().foldInto360RangeGeodetic(t,this.m_inputSR,this.m_curveType)}}let n;if(this.m_transformPCS2GCS?(t=new u().execute(t,this.m_inputSR,!1,this.m_progressTracker),n=t.createInstance(),v(this.m_transformPCS2GCS,t,n,this.m_progressTracker)||(n=new p().execute(t,this.m_transformPCS2GCS,this.m_progressTracker))):n=new u().execute(t,this.m_inputGCS,!1,this.m_progressTracker),n.isEmpty())return 0;if(this.m_curveType===1){let e=d();return this.m_inputGCS.querySpheroidData(e),this.m_a=e.majorSemiAxis,this.m_eSquared=e.e2,this.loxodromeArea(n)}let r=n.getImpl();this.m_rpu=this.m_inputGCS.getUnit().getUnitToBaseFactor(),this.m_scaleToRadians.setScale(this.m_rpu),r.applyTransformation(this.m_scaleToRadians),this.m_scaleToDegrees=this.m_scaleToRadians,this.m_scaleToDegrees.invertThis();let i=d();if(this.m_inputGCS.querySpheroidData(i),this.m_a=i.majorSemiAxis,this.m_b=i.minorSemiAxis,this.m_eSquared=i.e2,this.m_curveType===2)return this.executeClippedPolygonGreatEllipticArea(n);{let e={stack:[],error:void 0,hasError:!1};try{let t=y.unit(9101),r=this.m_inputGCS.getPECoordSys(),i=W(e,r.cloneAlterUnits(t),!1),a=this.executeClippedPolygonGeodeticArea(n,i,0),o,s,c=0;do c++,o=this.executeClippedPolygonGeodeticArea(n,i,c),s=Math.abs(o-a),a=o;while(Math.abs(o)>1&&s>1e-8*Math.abs(o)&&c<7);return o}catch(t){e.error=t,e.hasError=!0}finally{G(e)}}}executeClippedPolygonGeodeticArea(e,t,n){let r={stack:[],error:void 0,hasError:!1};try{let i=new z;e.queryEnvelope(i);let a=W(r,this.getEqualAreaPCSInstance(t,i),!1),o=e.clone();b(a,o);let s=o.getImpl().getAttributeStreamRef(0),c=e.getImpl().getAttributeStreamRef(0),l=W(r,new x,!1),u=W(r,new x,!1),d=[0,0],p=ee(Z,40),m=k(40,-1),h=Z(),g=Z(),_,v,y=a,C=o.calculateArea2D(),w=new O(0),T=Math.PI*.5,E=Math.abs(C)*1e-10+1e-6,A=e.getPathCount(),j,M,N,F,I=new D,L=new D,R=new D,B=new D,V=new D,H=new D,U,G;for(M=e.getPathStart(0),j=0;j<A;j++,M=N)for(N=e.getPathEnd(j),s.queryPoint2D(N-1<<1,R),c.queryPoint2D(N-1<<1,I),Math.abs(I.y)>T&&(I.y=P(T,I.y)),F=M;F<N;F++,R.assign(B),I.assign(L)){if(s.queryPoint2D(F<<1,B),c.queryPoint2D(F<<1,L),Math.abs(L.y)>T&&(L.y=P(T,L.y)),U=D.distance(R,B),U<50||I.y===0&&L.y===0)continue;S.geodeticDistance(this.m_a,this.m_eSquared,I.x,I.y,L.x,L.y,l,u,null,this.m_curveType);let e=l.val,t=u.val;for(h.setValues(0,R),g.setValues(1,B),v=n,p[0].assign(g),m[0]=n,_=0;_>=0;){G=(h.m_factor+g.m_factor)*.5,S.geodeticCoordinate(this.m_a,this.m_eSquared,I.x,I.y,e*G,t,l,u,this.m_curveType),V.x=l.val,V.y=u.val,d[0]=V.x,d[1]=V.y,f.geogToProj(y,1,d),H.x=d[0],H.y=d[1];let n=-H.offset(h.m_p_PCS,g.m_p_PCS),r=D.distance(h.m_p_PCS,g.m_p_PCS),i=.5*n*r;if(w.pe(i),Math.abs(i)>E||Math.abs(i)>0&&v>0)g.setValues(G,H),_++,p[_].assign(g),Math.abs(i)<=E?(v--,m[_-1]=v,m[_]=v):(v=m[_-1],m[_]=v);else{if(_<=0)break;h.assign(g),_--,g.assign(p[_]),v=m[_]}}}return C+=w.getResult(),Math.abs(C)}catch(e){r.error=e,r.hasError=!0}finally{G(r)}}executeClippedPolygonGreatEllipticArea(e){let t=[],n=[],r=new D,i=new D,a=C(1,this.m_eSquared,new D(0,Math.PI*.5)),o=new O(0),s=new O(0),c=new O(0),l=new V,u=new V,d=new z;e.queryLooseEnvelope(d);let f=0;d.containsCoords(d.xmin,0)||(f=Math.abs(d.ymin)<Math.abs(d.ymax)?d.ymin:d.ymax);let p=new le(this.m_eSquared,l,u,f),m=this.m_a*this.m_a,h=e.getImpl().querySegmentIterator();for(h.stripAttributes();h.nextPath();)for(;h.hasNextSegment();){let e=h.nextSegment();r.assign(e.getStartXY()),i.assign(e.getEndXY()),i.x-r.x>Math.PI?r.x+=Math.PI*2:i.x-r.x<-Math.PI&&(i.x+=Math.PI*2),this.splitSegmentCrossingItegralThreshold(e,t,n);for(let e of t)l.assign(C(this.m_a,this.m_eSquared,e.getStartXY())),u.assign(C(this.m_a,this.m_eSquared,e.getEndXY())),p.setSegmentEndPoints(l,u),this.adaptiveIntegrationWithRomberg(p,o);for(let e of n){let t=e.getStartXY(),n=e.getEndXY(),r=f;t.y<0&&(n=F(t,t=n),t.y=-t.y,n.y=-n.y,r=-r);let i=C(1,this.m_eSquared,t),o=C(1,this.m_eSquared,n),l=Math.min(t.y,n.y),u=w(this.m_eSquared,t.x,n.x,r,l);s.pe(u);let d=Math.abs(w(this.m_eSquared,t.x,n.x,l,j)),p=new V;p.setSub(i,a);let h=new V;h.setSub(o,a);let g=new V;g.setCrossProductVector(p,h);let _=m*(d-.5*g.length());_=P(_,n.x-t.x),c.pe(_)}t.length=0,n.length=0}return c.getResult()+m*(.5*(1-this.m_eSquared)*o.getResult()+s.getResult())}getEqualAreaPCSInstance(e,t){let n=t.getCenterX(),r,i,a=t.height(),o;(o=t.ymin>Math.PI*45/180||t.ymax<-Math.PI*45/180)?r=P(Math.PI*.5,t.getCenterY()):(r=t.getCenterY(),i=t.ymin+2/3*a);let s,c=h(`EqualAreaPCS`),l=e.toString();return s=o?y.fromString(m.PE_TYPE_PROJCS,`PROJCS["${c}", ${l}, PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["False_Easting",0],PARAMETER["False_Northing", 0],PARAMETER["Central_Meridian", ${n}], PARAMETER["Latitude_of_Origin", ${r}], UNIT["Meter",1.0]]`,!0):y.fromString(m.PE_TYPE_PROJCS,`PROJCS["${c}", ${l}, PROJECTION["Cylindrical_Equal_Area"],PARAMETER["False_Easting", 0],PARAMETER["False_Northing", 0],PARAMETER["Central_Meridian", ${n}],PARAMETER["Standard_Parallel_1", ${i}],PARAMETER["Latitude_of_Origin", ${r}],UNIT["Meter",1.0]]`,!0),s}splitSegmentCrossingItegralThreshold(e,t,n){let r=C(this.m_a,this.m_eSquared,new D(0,j)),i=C(this.m_a,this.m_eSquared,new D(0,-j)),a=this.splitSegmentPassingThroughPole(e);for(let e of a){let a=e.getStartXY(),o=e.getEndXY(),c=C(this.m_a,this.m_eSquared,a),l=C(this.m_a,this.m_eSquared,o),u=new D,d=new V,f=V.sqrDistance(r,c),p=V.sqrDistance(c,l);if(f<=100){if(p>400)d.assign(l.sub(c)),d.normalizeThis(),d.assign(c.add(d.mul(20))),u.assign(T(this.m_a,this.m_eSquared,d));else{n.push(new s({start:a,end:o}));continue}n.push(new s({start:a,end:u})),a.assign(u)}if(c.assign(C(this.m_a,this.m_eSquared,a)),f=V.sqrDistance(r,l),p=V.sqrDistance(c,l),f<=100){if(p>400)d.assign(l.sub(c)),d.normalizeThis(),d.assign(l.sub(d.mul(20))),u.assign(T(this.m_a,this.m_eSquared,d));else{n.push(new s({start:a,end:o}));continue}n.push(new s({start:u,end:o})),o.assign(u)}if(c.assign(C(this.m_a,this.m_eSquared,a)),l.assign(C(this.m_a,this.m_eSquared,o)),f=V.sqrDistance(i,c),p=V.sqrDistance(c,l),f<=100){if(p>400)d.assign(l.sub(c)),d.normalizeThis(),d.assign(c.add(d.mul(20))),u.assign(T(this.m_a,this.m_eSquared,d));else{n.push(new s({start:a,end:o}));continue}n.push(new s({start:a,end:u})),a.assign(u)}if(c.assign(C(this.m_a,this.m_eSquared,a)),l.assign(C(this.m_a,this.m_eSquared,o)),f=V.sqrDistance(i,l),p=V.sqrDistance(c,l),f<=100){if(p>400)d.assign(l.sub(c)),d.normalizeThis(),d.assign(l.sub(d.mul(20))),u.assign(T(this.m_a,this.m_eSquared,d));else{n.push(new s({start:a,end:o}));continue}n.push(new s({start:u,end:o})),o.assign(u)}t.push(new s({start:a,end:o}))}}splitSegmentPassingThroughPole(e){let t={stack:[],error:void 0,hasError:!1};try{let n=[],r=new V,i=new V,a=new V,o=new D,c=e.getStartXY(),l=e.getEndXY(),u=W(t,new x,!1);if(S.geodeticDistance(this.m_a,this.m_eSquared,c.x,c.y,l.x,l.y,u,null,null,2),Math.abs(l.x-c.x)>3.124139361&&u.val>20){let e=new q(new D(0,90),c.divide(this.m_rpu),l.divide(this.m_rpu),this.m_inputGCS,2,2),t=E(e.makeFunctor(),0,1,1e-10);if(t.second<=10&&t.first>0&&t.first<1||(e.setPointDistFrom(new D(0,-90)),t=E(e.makeFunctor(),0,1,1e-10),t.second<=10&&t.first>0&&t.first<1))return r.assign(C(this.m_a,this.m_eSquared,c)),i.assign(C(this.m_a,this.m_eSquared,l)),I(r,i,t.first,a),o.assign(T(this.m_a,this.m_eSquared,a)),n.push(new s({start:c,end:o})),n.push(new s({start:o,end:l})),n}return n.push(new s({start:c,end:l})),n}catch(e){t.error=e,t.hasError=!0}finally{G(t)}}adaptiveIntegrationWithRomberg(e,t){let n=e.makeFunctor(),r=0,i=1,a=n(r),s=n(i),c=1e-17,l=1e-14,u=(r+i)/2,d=n(u),f=Math.abs(d-a),p=Math.abs(s-d),m=0;for(;m++<32&&(f/p<.1||p/f<.1);)f<p?(t.pe(o(5,r,u,l,c,n)),r=u,a=d):(t.pe(o(5,u,i,l,c,n)),i=u,s=d),u=(r+i)/2,d=Math.abs(n(u)),f=Math.abs(d-a),p=Math.abs(s-d);t.pe(o(5,r,i,l,c,n))}loxodromeAreaHemi(e,t,n,r,i){let a=n.clone(),o=i.clone(),s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S;return a.make_negative&&a.changeSign(),o.make_negative&&o.changeSign(),_=r-t,Math.abs(a.sin_phi)===1||Math.abs(o.sin_phi)===1?e.half_qp*_:a.sin_phi===o.sin_phi?(g=e.one_m_e_2*.5*a.sin_phi*(1/a.one_m_e_2_sin_2_phi+L(e.e*a.sin_phi))*_,g):(x=Math.log(o.sin_half_phi_pf*a.sin_half_phi_pz/(o.sin_half_phi_pz*a.sin_half_phi_pf)),S=Math.log(o.sin_half_asin_e_sin_phi_pf*a.sin_half_asin_e_sin_phi_pz/(o.sin_half_asin_e_sin_phi_pz*a.sin_half_asin_e_sin_phi_pf)),this.m_eSquared===1?(d=0,s=.5*(x+o.sin_phi/o.one_m_e_2_sin_2_phi-a.sin_phi/a.one_m_e_2_sin_2_phi),c=0):(d=-2*e.atanh_e_over_e*(Math.log(o.one_p_sin_phi/a.one_p_sin_phi)-e.e*S),s=(x-e.e*S)/e.one_m_e_2,c=(Math.log(o.one_m_e_2_sin_2_phi/a.one_m_e_2_sin_2_phi)+d/e.atanh_e_over_e)/e.one_m_e_2),l=-S*(a.atanh_esin_phi+o.atanh_esin_phi),u=1/a.one_m_e_2_sin_2_phi-1/o.one_m_e_2_sin_2_phi,f=R(o.one_m_sin_phi/e.one_p_e,e.e)-R(a.one_m_sin_phi/e.one_p_e,e.e),p=R(o.one_p_sin_phi/e.one_p_e,e.e)-R(a.one_p_sin_phi/e.one_p_e,e.e),m=R(a.one_m_sin_phi/-e.one_m_e,e.e)-R(o.one_m_sin_phi/-e.one_m_e,e.e),h=R(a.one_p_sin_phi/-e.one_m_e,e.e)-R(o.one_p_sin_phi/-e.one_m_e,e.e),g=.25/s*(c+l+u+d+.5*(f+p+m+h)),g+=e.half_qp,v=e.one_m_e_2*.5*a.sin_phi*(1/a.one_m_e_2_sin_2_phi+L(e.e*a.sin_phi)),y=e.one_m_e_2*.5*o.sin_phi*(1/o.one_m_e_2_sin_2_phi+L(e.e*o.sin_phi)),y<v&&(b=v,v=y,y=b),g<v&&(g=v),g>y&&(g=y),g*=_,g)}loxodromeArea(e){let t=Math.PI/180,n=0,r=ue(),i=$(),a=$();r.e=Math.sqrt(this.m_eSquared),r.one_p_e=1+r.e,r.one_m_e=1-r.e,r.one_m_e_2=1-this.m_eSquared,r.atanh_e_over_e=L(r.e),r.half_qp=this.m_eSquared>=1?1:.5*(1+r.atanh_e_over_e*r.one_m_e_2),r.f=.25*Math.PI,r.z=.75*Math.PI,a.initialize(0,r.e,r.f,r.z);let o=e.getPathCount(),s=new D,c=new D,l=e.getImpl().getAttributeStreamRef(0);for(let u=0;u<o;u++){let o=e.getPathStart(u),d=e.getPathEnd(u);if(!(d-o<=1)){l.queryPoint2D((d-1)*2,s);for(let e=o;e<d;e++){l.queryPoint2D(e*2,c);let u=s.y*t,d=c.y*t;if(e===o?(i.initialize(u,r.e,r.f,r.z),i.make_negative=!1):i.assign(a),a.initialize(d,r.e,r.f,r.z),a.make_negative=!1,s.y*c.y<0){if(s.y>=90&&c.y<=-90||c.y>=90&&s.y<=-90)return NaN;let e=$();e.initialize(0,r.e,r.f,r.z),e.make_negative=!1;let o=i.atanh_sin_phi-r.e*i.atanh_esin_phi,l=a.atanh_sin_phi-r.e*a.atanh_esin_phi,d=(l*s.x-o*c.x)/(l-o);u<0?(i.make_negative=!0,n-=this.loxodromeAreaHemi(r,s.x*t,i,d*t,e),i.make_negative=!1,n+=this.loxodromeAreaHemi(r,d*t,e,c.x*t,a)):(n+=this.loxodromeAreaHemi(r,s.x*t,i,d*t,e),a.make_negative=!0,n-=this.loxodromeAreaHemi(r,d*t,e,c.x*t,a),a.make_negative=!1)}else s.y>=0?n+=this.loxodromeAreaHemi(r,s.x*t,i,c.x*t,a):(i.make_negative=!0,a.make_negative=!0,n-=this.loxodromeAreaHemi(r,s.x*t,i,c.x*t,a),i.make_negative=!1,a.make_negative=!1);s.assign(c)}}}return this.m_a*n*this.m_a}calculate(e){if(e.isEmpty()||e.getDimension()<2)return 0;if(e.getGeometryType()===n.enumEnvelope){let t=new a;return t.addEnvelope(e,!1),this.calculate(t)}return this.m_inputSR!==this.m_inputGCS&&this.m_transformPCS2GCS===null&&(this.m_transformPCS2GCS=l(this.m_inputSR,this.m_inputGCS,null)),this.executePolygonGeodeticArea(e)}}class ge{getOperatorType(){return 10311}supportsCurves(){return!0}accelerateGeometry(e,t,n){return!1}canAccelerateGeometry(e){return!1}execute(e,n,r,i){return t(e),r===4?new se().execute(e,n,i):new he(n,r,i).calculate(e)}}export{ge as OperatorGeodeticArea};
|
|
@@ -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,
|
|
2
|
+
import{G as e}from"./GeometryCursor.js";import{d as t,a as n,b as r,t as i}from"./Geometry.js";import{af as a}from"./UnitFactory.js";import{S as o}from"./SimpleGeometryCursor.js";class s{getOperatorType(){return 10310}supportsCurves(){return!0}accelerateGeometry(e,t,n){return!1}canAccelerateGeometry(e){return!1}executeMany(e,t,n,r,i){return new c(e,n,r,t,-1,-1,i)}execute(e,n,r,i,a){let s=new o([e]),c=this.executeMany(s,n,r,i,a).next();return c||t(`null output`),c}}class c extends e{m_inputGeoms;m_spatialReference;m_curveType;m_maxLengthMeters;m_maxDeviationMeters;m_maxAngle;m_progressTracker;m_index;constructor(e,t,i,a,o,s,c){super(),this.m_progressTracker=c,s>0&&n(``),i!==4&&o>0&&n(``),t||r(``),t.getCoordinateSystemType()===0&&r(``),!(a>0)&&!(o>0)&&r(``),this.m_index=-1,this.m_inputGeoms=e,this.m_spatialReference=t,this.m_curveType=i,this.m_maxLengthMeters=a,this.m_maxDeviationMeters=o,this.m_maxAngle=s}next(){{let e;for(;e=this.m_inputGeoms.next();)return i(e),this.m_index=this.m_inputGeoms.getGeometryID(),this.geodeticDensify(e);return null}}getGeometryID(){return this.m_index}tock(){return!0}getRank(){return 1}geodeticDensify(e){return a(e,this.m_spatialReference,this.m_curveType,this.m_maxLengthMeters,this.m_maxDeviationMeters,this.m_progressTracker)}}export{s as OperatorGeodeticDensifyByLength,c as OperatorGeodeticDensifyCursor};
|
|
@@ -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{
|
|
2
|
+
import{__addDisposableResource as e,__disposeResources as t}from"tslib";import{b as n,t as r}from"./Geometry.js";import{G as i,m as a}from"./GeodeticDistanceCalculator-zRp89-dW.js";class o{getOperatorType(){return 10316}supportsCurves(){return!0}accelerateGeometry(e,t,n){return!1}canAccelerateGeometry(e){return!1}execute(e,t,n,r,i){return this.executeEx(e,t,n,r,i,null,null,NaN)}executeEx(o,s,c,l,u,d,f,p){let m={stack:[],error:void 0,hasError:!1};try{if(c.getCoordinateSystemType()===0&&n(``),r(o),r(s),o.isEmpty()||s.isEmpty())return NaN;Number.isNaN(p)&&(p=Number.MAX_VALUE);let t=e(m,new i(c,l,u,p,1),!1),h=a(),g=a(),_=t.calculate(o,s,h,g);return d&&d.outPoint.assign(h.outPoint),f&&f.outPoint.assign(g.outPoint),_}catch(e){m.error=e,m.hasError=!0}finally{t(m)}}}export{o as OperatorGeodeticDistance,a as makeOutput};
|
|
@@ -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{
|
|
2
|
+
import{__addDisposableResource as e,__disposeResources as t}from"tslib";import{b as n,t as r,G as i,h as a}from"./Geometry.js";import{O as o}from"./OperatorShapePreservingLength.js";import{c as s,a as c}from"./MultiPathImpl.js";import{E as l}from"./Point2D.js";import{ag as u,aE as d,aF as f,O as p,an as m,ao as h,r as g}from"./UnitFactory.js";import{O as _}from"./OperatorDensify.js";class v{getOperatorType(){return 10311}supportsCurves(){return!0}accelerateGeometry(e,t,n){return!1}canAccelerateGeometry(e){return!1}execute(e,t,m,h){if(m===4)return new o().execute(e,t,h);if(t.getCoordinateSystemType()===0&&n(``),r(e),e.isEmpty()||e.getDimension()<1)return 0;let v=t.getGCS(),y=g();v.querySpheroidData(y);let b=y.majorSemiAxis,x=y.e2,S=v.getUnit().getUnitToBaseFactor(),C,w=e.getGeometryType();if(w===i.enumPolygon?C=e.getBoundary():w===i.enumEnvelope?C=s(e):a(w)?(C=new c({vd:e.getDescription()}),C.addSegment(e,!0)):C=e,C.hasNonLinearSegments()&&(C=new _().execute(C,0,t.getTolerance(0),0,h)),v!==t){let n=t.getSRToGCSTransform();if(t.isPannable()){C=u(C,t),w===i.enumPolyline&&C===e&&(C=e.clone());let n=new l;t.getPannableExtent().queryIntervalX(n);for(let e=0,t=C.getPointCount();e<t;e++){let t=C.getXY(e);t.x=d(t.x,n),C.setXY(e,t)}}let r=C.createInstance();C=f(n,C,r,h)?r:new p().execute(C,n,h)}return this._ExecuteMultiPathGeodeticLength(C,m,b,x,S)}_ExecuteMultiPathGeodeticLength(n,r,i,a,o){let s={stack:[],error:void 0,hasError:!1};try{let t=e(s,new m,!1),c=0,l=n.querySegmentIterator();for(;l.nextPath();)for(;l.hasNextSegment();){let e=l.nextSegment(),n=e.getStartXY(),s=e.getEndXY();n.scale(o),s.scale(o),h.geodeticDistance(i,a,n.x,n.y,s.x,s.y,t,null,null,r),c+=t.val}return c}catch(e){s.error=e,s.hasError=!0}finally{t(s)}}}export{v 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{
|
|
2
|
+
import{G as e}from"./GeometryCursor.js";import{t}from"./Geometry.js";import{a5 as n}from"./UnitFactory.js";import{Envelope2D as r}from"./Envelope2D.js";import{B as i}from"./Bufferer-CclWhXVb.js";class a{getOperatorType(){return 10111}supportsCurves(){return!0}accelerateGeometry(e,t,n){return!1}canAccelerateGeometry(e){return!1}executeMany(e,t,r,i,a,s,c,l,u,d,f){if(u){let u=new o(e,t,r,i,a,s,c,l,f);return new n().executeMany(u,t,f,2)}return new o(e,t,r,i,a,s,c,l,f)}}class o 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 r;m_index=-1;m_dindex=-1;constructor(e,t,n,r,a,o,s,c,l){super(),this.m_progressTracker=l,this.m_bufferer=new i(l),this.m_inputGeoms=e,this.m_spatialReference=t,this.m_distances=n,this.m_maxDeviation=s,this.m_maxVerticesInFullCircle=c,this.m_joins=r,this.m_caps=a,this.m_miterLimit=o}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{a 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,G as n,
|
|
2
|
+
import{G as e}from"./GeometryCursor.js";import{e as t,G as n,t as r}from"./Geometry.js";import{E as i,n as a}from"./MultiPathImpl.js";import{Envelope2D as o}from"./Envelope2D.js";import{c as s,P as c}from"./Envelope.js";import{l,L as u,s as d,M as f,N as p,Q as m,R as h,T as g,U as _,V as v}from"./UnitFactory.js";class y{getOperatorType(){return 10009}supportsCurves(){return!0}accelerateGeometry(e,t,n){return!1}canAccelerateGeometry(e){return!1}executeMany(e,t,n,r=0){return new b(e,t,n,r)}}class b extends e{m_inputGeometries;m_sr;m_progressTracker;m_shape=new i;m_currentGeom=a;m_options;m_progressCounter=0;m_geomIndex=-1;m_geomTypeIndex=-1;m_index=-1;m_bBuilt=!1;m_bOutputOnlyModified=!1;m_bSimplifyPolygons=!1;m_bSnapToSr=!1;constructor(e,n,r,i){super(),this.m_progressTracker=r,this.m_inputGeometries=e,this.m_sr=n,this.m_options=i,i===1||i===2?(this.m_bOutputOnlyModified=!0,this.m_options=0,this.m_bSimplifyPolygons=!0,this.m_bSnapToSr=n!=null&&i===2,this.m_bSnapToSr&&!l()&&t(`PE is required for snapping to spatial reference operation`)):i===0&&(this.m_bSimplifyPolygons=!0)}progress_(e=!1){}tock(){return!0}getRank(){return 1}moveToNextGeom(){for(;;){if(this.m_bBuilt?this.m_currentGeom=this.m_shape.getNextGeometry(this.m_currentGeom):(this.m_currentGeom=this.m_shape.getFirstGeometry(),this.m_bBuilt=!0),this.m_currentGeom!==a){let e=!1;if(this.m_bSimplifyPolygons&&this.m_shape.getGeometryType(this.m_currentGeom)===n.enumPolygon&&(e=u(this.m_shape,this.m_currentGeom,-1,!1,a,this.m_progressTracker)),this.m_bOutputOnlyModified&&!e&&!this.m_shape.getGeometryModified(this.m_currentGeom))continue}break}}next(){if(this.m_bBuilt)this.moveToNextGeom();else{this.m_geomIndex=this.m_shape.createGeometryUserIndex();let e=new o;for(let t=this.m_inputGeometries.next();t!=null;t=this.m_inputGeometries.next()){this.progress_(),r(t);let i=!1;this.m_bSnapToSr&&(t=t.clone(),i=d(this.m_sr,t));let a=this.m_shape.addGeometry(t);this.m_shape.setGeometryUserIndex(a,this.m_geomIndex,this.m_inputGeometries.getGeometryID());let s=t.getGeometryType();s===n.enumPoint&&(this.m_geomTypeIndex===-1&&(this.m_geomTypeIndex=this.m_shape.createGeometryUserIndex()),this.m_shape.setGeometryUserIndex(a,this.m_geomTypeIndex,s));let c=new o;t.queryLooseEnvelope(c),e.mergeEnvelope2D(c),i&&this.m_shape.setGeometryModified(a,!0)}let t=s(this.m_sr,e,!0),i=s(this.m_sr,e,!1);e.inflate(t.total()*10),this.m_shape.forceSetEnvelope2D(e);let c=null,l=0,y=0;if(this.m_shape.hasCurves()){c=new _;let n=f(t.total(),e);l=p(t.total()),y=v(n,l),m(this.m_shape,n,t.total(),12e3,c,null,this.m_progressTracker)}if(h(this.m_shape,i,this.m_progressTracker)){if(g(this.m_shape,t.add(y),this.m_progressTracker,this.m_options===0,this.m_bOutputOnlyModified),c!==null){if(this.m_bSimplifyPolygons){for(let e=this.m_shape.getFirstGeometry();e!==a;e=this.m_shape.getNextGeometry(e))this.m_shape.getGeometryType(e)===n.enumPolygon&&u(this.m_shape,e,-1,!1,a,this.m_progressTracker)&&this.m_shape.setGeometryModified(e,!0);this.m_bSimplifyPolygons=!1}c.stitchCurves(this.m_shape,a,l,!0),c.clearStitcher(this.m_shape)}}else this.m_bSimplifyPolygons=!1,c!==null&&(c.stitchCurves(this.m_shape,a,l,!0),c.clearStitcher(this.m_shape));this.moveToNextGeom()}if(this.m_currentGeom!==a){if(this.m_index=this.m_shape.getGeometryUserIndex(this.m_currentGeom,this.m_geomIndex),this.m_geomTypeIndex!==-1&&this.m_shape.getGeometryUserIndex(this.m_currentGeom,this.m_geomTypeIndex)===n.enumPoint){let e=new c({vd:this.m_shape.getVertexDescription()});return this.m_shape.queryPointGeometryOnly(this.m_currentGeom,e),this.m_bSnapToSr&&d(this.m_sr,e),e}{let e=this.m_shape.getGeometry(this.m_currentGeom);return this.m_bSnapToSr&&d(this.m_sr,e),e}}return null}getGeometryID(){return this.m_index}}export{y 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,P as r}from"./MultiPathImpl.js";import{
|
|
2
|
+
import{G as e}from"./GeometryCursor.js";import{E as t,n,P as r}from"./MultiPathImpl.js";import{t as i,G as a,g as o,b as s}from"./Geometry.js";import{Envelope2D as c}from"./Envelope2D.js";import{i as l,e as u,P as d}from"./Envelope.js";import{J as f,M as p,a8 as m,a9 as h,U as g,aa as _}from"./UnitFactory.js";class v{getOperatorType(){return 10700}accelerateGeometry(e,t,n){return!1}canAccelerateGeometry(e){return!1}supportsCurves(){return!0}executeMany(e,t,n,r=1){return new y(e,t,n,r)}}class y extends e{m_inputGeoms;m_spatialReference;m_progressTracker;m_currentGeometry;m_singlePartIndex;m_singlePartCount;m_polygonStart;m_index;m_options;constructor(e,t,n,r){super(),this.m_progressTracker=n,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){let e=this.m_inputGeoms.next();if(e===null)return null;if(i(e),e.getGeometryType()===a.enumPolygon){if(this.m_options===1)this.m_currentGeometry=new f().execute(e,this.m_spatialReference,!1,this.m_progressTracker);else if(this.m_options===2){if(e.getPathCount()<2)this.m_currentGeometry=e;else{let i=e.getImpl().getIsSimple(0,[0]);if(l(i))this.m_currentGeometry=e;else{let i=new t,a=i.addGeometry(e),s=null;if(i.hasCurves()){s=new g;let t=new c;e.queryEnvelope(t);let n=u(null,e,!0),r=p(n.total(),t);m(i,r,n.total(),12e3,null,s,null,this.m_progressTracker)}let l=i.createPathUserIndex();{let e=0;for(let t=i.getFirstPath(a);t!==n;t=i.getNextPath(t))i.setPathUserIndex(t,l,e++)}let d=h(i,a,this.m_progressTracker);o(d>=0);let f=[];for(let e=i.getFirstPath(a);e!==n;e=i.getNextPath(e))f.push(e);f.sort((e,t)=>Math.abs(i.getPathUserIndex(e,d))-Math.abs(i.getPathUserIndex(t,d)));let _=e,v=new r({vd:e.getDescription()});v.reserveParts(_.getPointCount(),_.getPathCount());for(let e=0,t=f.length;e<t;e++){let t=f[e],n=i.getPathUserIndex(t,l),r=_.calculateRingArea2D(n)>0,a=i.getPathUserIndex(t,d)>=0;v.addPath(_,n,r===a)}this.m_currentGeometry=v}}}else s(``)}else this.m_currentGeometry=e;this.m_singlePartCount=b(this.m_currentGeometry),this.m_singlePartIndex=0,this.m_polygonStart=0,this.m_index=this.m_inputGeoms.getGeometryID()}let e=this.getSingleGeometry(this.m_singlePartIndex,this.m_singlePartCount,this.m_polygonStart,this.m_currentGeometry);return e.getGeometryType()===a.enumPolygon&&(this.m_polygonStart+=e.getPathCount()),this.m_singlePartIndex++,e}getGeometryID(){return this.m_index}getSingleGeometry(e,t,n,r){let i=r.getGeometryType(),o=null;switch(i){case a.enumMultiPoint:o=new d({vd:r.getDescription()}),r.isEmpty()||r.getPointByVal(e,o);break;case a.enumPolyline:if(t===1)o=r;else{o=r.createInstance(),o.getImpl().addPath(r.getImpl(),e,!0);let t=[0],n=r.getImpl().getIsSimple(0,t);o.getImpl().setIsSimple(n,t[0],!0)}break;case a.enumPolygon:if(t===1)o=r;else{o=r.createInstance();let e=o.getImpl(),t=r.getImpl(),i=t.getPathFlagsStreamRef(),a=n,s=t.getPathCount();do e.addPath(t,a,!0),a++;while(a<s&&!(i.read(a)&8));e.getPathFlagsStreamRef().setBits(0,8);let c=[0],l=t.getIsSimple(0,c);e.setIsSimple(l,c[0],!0)}break;default:o=r}return o}}function b(e){return e.isEmpty()?1:_(e)}export{v as O};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{
|
|
2
|
+
import{b as e,a as t,G as n}from"./Geometry.js";import{Envelope2D as r}from"./Envelope2D.js";import{m as i,a,c as o}from"./SideCalculator2D-DX0718xq.js";import{d as s}from"./Envelope.js";import{P as c}from"./Point2D.js";import{K as l}from"./UnitFactory.js";class u{getOperatorType(){return 10500}accelerateGeometry(e,t,n){return!1}canAccelerateGeometry(e){return!1}supportsCurves(){return!0}getNearestCoordinate(r,a,o,s){if(a.isNAN()&&e(`NAN xy coordinates are not allowed`),r.isEmpty())return i();switch(r.getGeometryType()){case n.enumPoint:return this.pointGetNearestVertex(r,a);case n.enumMultiPoint:return this.multiVertexGetNearestVertex(r,a);case n.enumPolyline:case n.enumPolygon:return this.multiPathGetNearestCoordinate(r,a,o,s);default:t(``)}}getNearestVertex(r,a){if(a.isNAN()&&e(`NAN xy coordinates are not allowed`),r.isEmpty())return i();switch(r.getGeometryType()){case n.enumPoint:return this.pointGetNearestVertex(r,a);case n.enumMultiPoint:case n.enumPolyline:case n.enumPolygon:return this.multiVertexGetNearestVertex(r,a);default:t(``)}}getNearestVertices(r,i,a,o){if(o===0&&e(``),i.isNAN()&&e(`NAN xy coordinates are not allowed`),r.isEmpty())return[];switch(r.getGeometryType()){case n.enumPoint:return this.pointGetNearestVertices(r,i,a,o);case n.enumMultiPoint:case n.enumPolyline:case n.enumPolygon:return this.multiVertexGetNearestVertices(r,i,a,o);default:t(``)}}multiPathGetNearestCoordinate(t,i,u,d){if(t.getGeometryType()===n.enumPolygon&&u){let e=new r;t.queryEnvelope(e);let n=s(null,e,!1),o;if(o=d?l(t,i,0):l(t,i,n),o!==0){let e=a(i,-1,0);return d&&(e.m_bRightSide=!0),e}}let f=t.querySegmentIterator(),p=new c,m=-1,h=-1,g=Number.MAX_VALUE,_=0;for(;f.nextPath();)for(;f.hasNextSegment();){let e=f.nextSegment(),t=e.getClosestCoordinate(i,!1),n=e.getCoord2D(t),r=c.sqrDistance(n,i);r<g?(_=1,p.assign(n),m=f.getStartPointIndex(),h=f.getPathIndex(),g=r):r===g&&_++}m===-1&&e(``);let v=a(p,m,Math.sqrt(g));if(d){if(t.getGeometryType()!==n.enumPolygon){let e=!1;if(_>1){let n=o(t,i,m,h);e=n!==0&&n!==3}else{f.resetToVertex(m,h);let t=f.nextSegment();e=o(t,i)!==0}v.m_bRightSide=e}else u||l(t,i,0)!==0&&(v.m_bRightSide=!0)}return v}pointGetNearestVertex(e,t){let n=e.getXY(),r=c.distance(n,t);return a(n,0,r)}multiVertexGetNearestVertex(e,t){let n=e.getAttributeStreamRef(0),r=e.getPointCount(),i=-1,o=new c,s=Number.MAX_VALUE,l=new c;for(let e=0;e<r;e++){n.queryPoint2D(2*e,l);let r=c.sqrDistance(l,t);r<s&&(o.assign(l),i=e,s=r)}return a(o,i,Math.sqrt(s))}pointGetNearestVertices(e,t,n,r){let i=[];if(r!==0){let r=n*n,o=e.getXY(),s=c.sqrDistance(o,t);s<=r&&i.push(a(o,0,Math.sqrt(s)))}return i}multiVertexGetNearestVertices(e,t,n,r){let i=[];if(r!==0){let o=e.getAttributeStreamRef(0),s=e.getPointCount();i.length=r+1;let l=n*n;for(let e=0;e<s;e++){let n=o.read(2*e),r=o.read(2*e+1),s=t.x-n,u=t.y-r,d=s*s+u*u;d<=l&&i.push(a(c.construct(n,r),e,Math.sqrt(d)))}i.sort((e,t)=>e.m_distance-t.m_distance)}return i.slice(0,r)}}export{u 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{
|
|
2
|
+
import{__addDisposableResource as e,__disposeResources as t}from"tslib";import{b as n,G as r,j as i,a,d as o,g as s}from"./Geometry.js";import{m as c,a as l,c as u}from"./SideCalculator2D-DX0718xq.js";import{P as d,b as f,S as p,s as m}from"./MultiPathImpl.js";import{P as h,c as g,s as _,d as v}from"./Point2D.js";import{P as y,k as b}from"./Envelope.js";import{G as x}from"./GeometryCursor.js";import{O as S,x as C,az as w,av as T,aG as E,aH as D,aI as O,aC as k,r as A,aJ as j,aK as M,aL as N,an as P,ao as F,aM as I,aN as L}from"./UnitFactory.js";import{O as ee}from"./OperatorShapePreservingDensify.js";class R{getOperatorType(){return 10501}supportsCurves(){return!0}accelerateGeometry(e,t,n){return!1}canAccelerateGeometry(e){return!1}getNearestCoordinate(e,t,m,g,_,v){if(t.isNAN()&&n(`NAN xy coordinates are not allowed`),e.isEmpty())return c();if(Number.isNaN(g)&&(g=0),g>=0||n(`maxDeviationMeters`),e.getDimension()===0)return this.getNearestVertex(e,t,m);let x=e.getGeometryType();if(x===r.enumGeometryCollection){let n=e,r=c();for(let e=0,i=n.getGeometryCount();e<i;++e){let i=n.getGeometry(e),a=this.getNearestCoordinate(i,t,m,g,_,v);if(!a.isEmpty()){if(a.m_distance===0)return a;a.m_distance>=r.m_distance||(r=a,r.m_geometryIndex=e)}}return r}if(x===r.enumEnvelope){let n=new d;return n.addEnvelope(e,!1),this.getNearestCoordinate(n,t,m,g,_,v)}i(x)||a(`Operation is not implemented for this geometry type`);let j=e;if((_||v)&&x===r.enumPolygon){let n=()=>{let e=l(t,-1,0);return e.m_bRightSide=!0,e};if(m.isPannable()){let r=new S().foldInto360Range(new y(t),m);if(r.isEmpty())return c();let i=new S().foldInto360Range(e,m);if(i.isEmpty())return c();if(new C().execute(i,r,m,null)&&_)return n()}else{let e=new S().clipToSpatialReference(new y(t),m,null,1);if(e.isEmpty())return c();let r=w(j,m,0,null);if(r.isEmpty())return c();if(new C().execute(r,e,m,null)&&_)return n()}}let M=m===m.getGCS()?null:m.getSRToGCSTransform(),N=new h;if(M?new S().transform(M,[t],1,[N],!1):N.assign(t),N.isNAN())return c();let P=B(j,t,m,1),F=P.m_distance;if(F===0)return P;Number.isNaN(F)?F=1/0:F*=1+1e-7;let I=m.getGCS(),L=I.getUnit().getUnitToBaseFactor(),R=N.clone();R.scale(L);let z=A();m.querySpheroidData(z);let H=T(z.majorSemiAxis,z.e2,R),W=E(z.majorSemiAxis,z.e2),te=new U(j.querySegmentIterator());g===0&&(g=.01);let ne=z.majorSemiAxis*f(45),G=new ee().executeMany(te,m,ne,g,0,null),K=[],q=-1,J=new b,Y=new p;for(let t=G.next();t!==null;t=G.next()){if(t.isEmpty())continue;let n=G.getGeometryID(),r=e.getPathIndexFromPointIndex(n);e.isClosedPath(r)&&(j.getPathEnd(r),n+1);let i=t;for(let e=0,t=i.getPathCount();e<t;++e){K.length=0;for(let t=i.getPathStart(e),n=i.getPathEnd(e);t<n;++t)K.push(i.getXY(t));if(M&&new S().transform(M,K,K.length,K,!1),K.length>3){let e=V(K,K.length,N,I,1);if(e.m_distance<F){F=e.m_distance,J.assign(T(z.majorSemiAxis,z.e2,e.m_coordinate.mul(L))),q=n;let t=e.m_vertexIndex;t+1===K.length&&--t,i.getSegmentBuffer(t,Y,!0)}}K.forEach(e=>e.mulThis(L));let t=T(z.majorSemiAxis,z.e2,K[0]),r=new b;for(let e=1,a=K.length;e<a;++e){let a=T(z.majorSemiAxis,z.e2,K[e]);if(D(W,H,t,a,r)<F){let{second:r}=O(z.majorSemiAxis,z.e2,H,t,a,2,null);if(r<=F){let r=new b,{second:o}=O(z.majorSemiAxis,z.e2,H,t,a,0,r);o<F&&(F=o,J.assign(r),q=n,i.getSegmentBuffer(e-1,Y,!0))}}t.assign(a)}}}if(!Number.isFinite(F))return c();q===-1&&n(``);let X=k(z.majorSemiAxis,z.e2,J);X.divThis(L);let Z=X.clone(),Q=m===m.getGCS()?null:m.getGCSToSRTransform();Q&&new S().transform(Q,[X],1,[Z],!1),Z.isNAN()&&o(`closestPoint2DSr.isNAN()`),s(!Y.empty());let re=Y.get().getClosestCoordinate(Z,!1);Z.assign(Y.get().getCoord2D(re)),M?new S().transform(M,[Z],1,[X],!1):X.assign(Z),s(!X.isNAN());let ie=this.getNearestVertex(new y(X),N,m.getGCS()),$=l(Z,q,ie.m_distance);if(v&&e.getDimension()>0){let n=u(e,t,-1,-1);$.m_bRightSide=n!==0&&n!==3}return $}getNearestVertex(e,t,i){if(t.isNAN()&&n(`NAN xy coordinates are not allowed`),e.isEmpty())return c();switch(e.getGeometryType()){case r.enumPoint:return z(e,t,i);case r.enumMultiPoint:case r.enumPolyline:case r.enumPolygon:return B(e,t,i);default:a(``)}}getNearestVertexPoint2D(e,t,n,r){return V(e,t,n,r)}getNearestVertices(e,t,i,o,s){if(t.isNAN()&&n(`NAN xy coordinates are not allowed`),e.isEmpty())return[];switch(e.getGeometryType()){case r.enumPoint:{let n=z(e,t,i);if(!n.isEmpty()&&n.m_distance<o&&s>=1){let e=[];return e.push(n),e}return[]}case r.enumMultiPoint:case r.enumPolyline:case r.enumPolygon:return H(e,t,i,o,s);default:a(``)}}}function z(r,i,a){let o={stack:[],error:void 0,hasError:!1};try{if(a.getCoordinateSystemType()===0&&n(`Cannot use local SR`),a.getCoordinateSystemType()!==1){let e=[,,];e[0]=r.getXY(),e[1]=i.clone();let t=v(h,2);I(a,e,2,t)!==2&&n(`Point cannot be projected to GCS`);let o=a.getGCS(),s=z(new y(t[0]),t[1],o);return l(s.m_coordinate,0,s.m_distance)}let t=a.getUnit().getUnitToBaseFactor(),s=r.getXY();s.scale(t);let c=i.clone();c.scale(t);let u=A();a.querySpheroidData(u);let d=e(o,new P,!1);F.geodeticDistance(u.majorSemiAxis,u.e2,s.x,s.y,c.x,c.y,d,null,null,L.PE_LINETYPE_GEODESIC);let f=r.getXY();return l(f,0,d.val)}catch(e){o.error=e,o.hasError=!0}finally{t(o)}}function B(r,i,a,o=0){a.getCoordinateSystemType()===0&&n(`Cannot use local SR`);let s=r.getAttributeStreamRef(0),c=r.getPointCount(),u=a.getGCS(),d=i.clone();if(a.getCoordinateSystemType()!==1){let e=a.getSRToGCSTransform();if(j(e,[i],1,[d],null),d.isNAN())return l(h.getNAN(),-1,NaN);let t=new S().execute(r,e,null);s=t.getAttributeStreamRef(0),c=t.getPointCount()}let f=u.getUnit().getUnitToBaseFactor(),p=g(c,0);for(let e=0;e<c;++e)p[e]=e;m(c,p);let v=A();u.querySpheroidData(v);let y=d.clone();y.scale(f);let x=T(v.majorSemiAxis,v.e2,y),C=-1,w=Number.MAX_VALUE,E=M(v.majorSemiAxis,v.e2),D=c,O=new h,k=new h;for(let e=0;e<D;){if(s.queryPoint2D(2*p[e],O),O.isNAN())continue;k.assign(O),k.scale(f);let t=T(v.majorSemiAxis,v.e2,k);if(b.distance(t,x)>w){p[D-1]=_(p[e],p[e]=p[D-1]),D--;continue}let n=N(E,t,x);n<w&&(C=p[e],w=n),e++}if(v.e2!==0){let n={stack:[],error:void 0,hasError:!1};try{let t=e(n,new P,!1);for(let e=0;e<D;e++){if(s.queryPoint2D(2*p[e],O),O.isNAN())continue;k.assign(O),k.scale(f);let n=T(v.majorSemiAxis,v.e2,k);b.distance(n,x)>w||(F.geodeticDistance(v.majorSemiAxis,v.e2,y.x,y.y,k.x,k.y,t,null,null,o),t.val<w&&(C=p[e],w=t.val))}}catch(e){n.error=e,n.hasError=!0}finally{t(n)}}let I=new h;return C!==-1&&I.assign(r.getXY(C)),l(I,C,w)}function V(r,i,a,o,s=0){o.getCoordinateSystemType()===0&&n(`Cannot use local SR`);let u=o.getGCS(),d=a.clone();if(o.getCoordinateSystemType()!==1){let e=o.getSRToGCSTransform();if(j(e,[a],1,[d],null),d.isNAN())return c();let t=v(h,i);j(e,r,i,t,null);let n=V(t,i,a,u,s);return n.isEmpty()?n:l(r[n.m_vertexIndex],n.m_vertexIndex,n.m_distance)}let f=u.getUnit().getUnitToBaseFactor(),p=g(i,0);for(let e=0;e<i;++e)p[e]=e;m(i,p);let y=A();u.querySpheroidData(y);let x=d.clone();x.scale(f);let S=T(y.majorSemiAxis,y.e2,x),C=-1,w=Number.MAX_VALUE,E=M(y.majorSemiAxis,y.e2),D=i;for(let e=0;e<D;){let t=r[p[e]];if(t.isNAN())continue;let n=t.clone();n.scale(f);let i=T(y.majorSemiAxis,y.e2,n);if(b.distance(i,S)>w){p[D-1]=_(p[e],p[e]=p[D-1]),D--;continue}let a=N(E,i,S);a<w&&(C=p[e],w=a),e++}if(y.e2!==0){let n={stack:[],error:void 0,hasError:!1};try{let t=e(n,new P,!1);for(let e=0;e<D;e++){let n=r[p[e]];if(n.isNAN())continue;let i=n.clone();i.scale(f);let a=T(y.majorSemiAxis,y.e2,i);b.distance(a,S)>w||(F.geodeticDistance(y.majorSemiAxis,y.e2,x.x,x.y,i.x,i.y,t,null,null,s),t.val<w&&(C=p[e],w=t.val))}}catch(e){n.error=e,n.hasError=!0}finally{t(n)}}let O=new h;return C!==-1&&O.assign(r[C]),l(O,C,w)}function H(r,i,a,o,s){let c={stack:[],error:void 0,hasError:!1};try{a.getCoordinateSystemType()===0&&n(`Cannot use local SR`);let t=r.getAttributeStreamRef(0),u=r.getPointCount(),d=a.getGCS(),f=i.clone();if(a.getCoordinateSystemType()!==1){let e=a.getSRToGCSTransform();if(j(e,[i],1,[f],null),f.isNAN())return[];let n=new S().execute(r,e,null);t=n.getAttributeStreamRef(0),u=n.getPointCount()}let p=d.getUnit().getUnitToBaseFactor(),v=g(u,0);for(let e=0;e<u;++e)v[e]=e;m(u,v);let y=A();d.querySpheroidData(y);let x=f.clone();x.scale(p);let C=T(y.majorSemiAxis,y.e2,x),w=[],E=u,D=new h,O=new h;for(let e=0;e<E;){if(t.queryPoint2D(2*v[e],D),D.isNAN())continue;O.assign(D),O.scale(p);let n=T(y.majorSemiAxis,y.e2,O);if(b.distance(n,C)>o){v[E-1]=_(v[e],v[e]=v[E-1]),E--;continue}e++}let k=(e,t)=>e.m_distance-t.m_distance,M=e(c,new P,!1);for(let e=0;e<E;e++)t.queryPoint2D(2*v[e],D),!D.isNAN()&&(F.geodeticDistance(y.majorSemiAxis,y.e2,x.x,x.y,D.x*p,D.y*p,M,null,null,L.PE_LINETYPE_GEODESIC),M.val<o&&w.push(l(D,v[e],M.val)));return w.sort(k),w.slice(0,s)}catch(e){c.error=e,c.hasError=!0}finally{t(c)}}class U extends x{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{R as OperatorProximityGeodesic};
|