@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 +1 @@
|
|
|
1
|
-
{"title":"Переглядач орієнтованих зображень","currentFootprint":"Поточний контур","accuracy":"Точність","accuracyInformation":"Точність обчислюється з використанням властивості «Точність орієнтації», визначеної у службі шару орієнтованих зображень.","additionalFootprints":"Додаткові контури","additionalCameraLocations":"Місця розташування додаткових камер","basemap":"Базова карта","groundArea":"Площа земної поверхні","groundDistance":"Відстань на земній поверхні","imageAttributes":"Атрибути зображення","imageEnhancement":"Покращення зображення","videoEnhancement":"Покращення відео","imageGallery":"Колекція зображень","float":"Без закріплення","dock":"Док","footprint":"Контур","heightAboveGround":"Висота над рівнем землі","groundLocation":"Місце розташування на земній поверхні","noImageError":"Немає доступного зображення для вибраного місця розташування.","onLoadMessage":"Виберіть місце розташування на карті, щоб переглянути зображення.","imageLoadError":"Під час завантаження зображення сталася помилка.","measurementTools":"Інструменти вимірювання по зображенню","measurementTable":"Таблиця вимірювання","mapImageConversionTool":"Інструмент Місце розташування карти-зображення","brightness":"Яскравість","contrast":"Контрастність","sharpness":"Різкість","navigationTool":"Інструмент навігації","noLocalPort":"Значення для локального порту не надано. Для завантаження локальних зображень потрібен локальний порт.","noAttachment":"Немає доступного зображення або вкладення для вибраного місця розташування.","noImageAtElevation":"Немає доступного зображення для вибраної висоти.","currentFootprintTooltip":"Перемкнути видимість контуру відображеного зображення.","additionalFootprintsTooltip":"Перемикнути видимість усіх додаткових контурів, які містять місце розташування інтересу.","additionalCameraLocationsTooltip":"Перемикнути видимість усіх додаткових місць розташування камер для зображень, які містять місце розташування інтересу.","navigationTooltip":"Дослідити повернуті зображення відносно місця розташування.","imageEnhancementTooltip":"Налаштувати яскравість, контрастність і чіткість зображення.","imageGalleryTooltip":"Переглянути ескізи всіх зображень, що зображують місце розташування інтересу.","mapImageConversionTooltip":"Натисніть на зображення, щоб побачити це місце розташування на карті, і навпаки.","newMeasurement":"Нове вимірювання","unsupportedPanoramicImageryError":"Viewer наразі не підтримує візуалізацію {datasetFormat} 360-градусних зображень.","showPopups":"Показати спливаючі вікна","startMeasurement":"Почати вимірювання","selectUnitSystem":"Виберіть систему одиниць","overlayCameraLocations":"Накладення місць розташування камери","overlayMapFeatures":"Накладення об'єктів карти","imageOverlays":"Накладання зображення","invalidCameraHeadingWarningTitle":"Неприпустиме CameraHeading","invalidCameraHeadingWarningDescription":"Значення CameraHeading недійсне для вибраного зображення. Усі інструменти переглядача орієнтованих зображень, у яких використовується CameraHeading, вимкнено. Щоб увімкнути інструменти, призначте дійсне значення для поля у таблиці атрибутів.","createFeaturesFromImage":"Створити обʼєкти із зображення","showAllFeatures":"Показати всі обʼєкти","showFeatures":"Показати об'єкти із зображення","decimalDegrees":"Десяткові градуси","value":"Значення","xy":"XY","xyz":"XYZ (метри)","xyzFeet":"XYZ (фути)","x":"X","y":"Y","z":"Z","type":"Тип","slope":"Ухил","aspect":"Орієнтація","distance":"Відстань","horizontal":"Горизонтальна","vertical":"Вертикальна","measurementViewerHeading":"Триангульоване вимірювання – Другий вид","triangularMeasurementHeading":"Триангульовані вимірювання","triangulatedDistanceHeading":"Тріангульована відстань","triangulatedAreaHeading":"Тріангульована площа","triangulatedLocationHeading":"Тріангульоване місце розташування","configureImageNavigation":"Налаштувати навігацію по зображеннях","configureNavigation":"Налаштувати навігацію","preserveHeading":"Зберегти курс","preserveHeadingDescription":"Не змінювати напрямок камери під час переміщення до наступного зображення.","preservePitch":"Зберегти тангаж","preservePitchDescription":"Не змінювати тангаж камери під час переміщення до наступного зображення.","boundingBoxSize":"Розмір обмежувального прямокутника","thresholdLabel":"Порогове значення (+/-) градусів","noActiveViewerFound":"Активного засобу перегляду не знайдено. Завантажте зображення, щоб активувати засіб перегляду.","noImageLoaded":"Зображення не завантажено.","selectImageForNavigation":"Виберіть зображення для навігації.","noLayerSelected":"Шар не вибрано. Виберіть шар орієнтованих зображень, щоб активувати засіб перегляду.","navigationError":"Під час переміщення до зображення сталася така помилка: {error}.","imageNavigation":"Навігація по зображеннях","imageNavigationDescription":"Виберіть варіант для переміщення між зображеннями або послідовно, або у будь-якому напрямку засобу перегляду поточного зображення.","sequentialNavigation":"Послідовна навігація","sequentialNavigationDescription":"Перейти до наступного зображення у послідовності.","directionalNavigation":"Спрямована навігація","directionalNavigationDescription":"Перейти до наступного зображення у відносному напрямку засобу перегляду поточного зображення.","previous":"Назад","next":"Далі","start":"На початок","end":"У кінець","skipForward":"Перескочити вперед","skipBackward":"Перескочити назад","Play":"Відтворити","Pause":"Пауза","mute":"Вимкнути звук","unmute":"Увімкнути звук","featuresCapturedFromImage":"Відображати усі обʼєкти, захоплені з поточного зображення.","noFeatureFoundWithObjectId":"Неможливо показати зображення, що стосується, оскільки із заданим ідентифікатором {objectId} не знайдено жодного обʼєкта.","depthImageNotSupportedTitle":"Непідтримувана глибина зображення","depthImageNotSupportedDescription":"Для зображень глибини підтримуються тільки формати COG/MRF.","sequentialNavigationWarning":"У послідовності не знайдено жодного зображення для переходу.","dataCaptureSave":"Новий обʼєкт створено.","dataCaptureDelete":"Обʼєкт видалено.","exploreImages":"Оглянути зображення","exploreImages3D":"Оглянути зображення 3D","utilityTools":"Комунальні об'єкти","graphicTools":"Інструменти графіки","searchTools":"Інструменти пошуку","displayImages":"Відобразити зображення","overlays":"Накладення","superimposeSettings":"Параметри суміщення","superimposeSliderTitle":"Скоригувати положення сітки","superimposeSliderTooltip":"Переміщуйте сітку між ближньою та дальньою межами діапазону за допомогою повзунка.","releaseCameraLock":"Розблокувати камеру","enableCameraLock":"Заблокувати камеру","superimposeView":"Вид суміщення","superimposeImageDescription":"Зображення в режимі накладання"}
|
|
1
|
+
{"title":"Переглядач орієнтованих зображень","currentFootprint":"Поточний контур","accuracy":"Точність","accuracyInformation":"Точність обчислюється з використанням властивості «Точність орієнтації», визначеної у службі шару орієнтованих зображень.","additionalFootprints":"Додаткові контури","additionalCameraLocations":"Місця розташування додаткових камер","basemap":"Базова карта","groundArea":"Площа земної поверхні","groundDistance":"Відстань на земній поверхні","imageAttributes":"Атрибути зображення","imageEnhancement":"Покращення зображення","videoEnhancement":"Покращення відео","imageGallery":"Колекція зображень","float":"Без закріплення","dock":"Док","footprint":"Контур","heightAboveGround":"Висота над рівнем землі","groundLocation":"Місце розташування на земній поверхні","noImageError":"Немає доступного зображення для вибраного місця розташування.","onLoadMessage":"Виберіть місце розташування на карті, щоб переглянути зображення.","imageLoadError":"Під час завантаження зображення сталася помилка.","measurementTools":"Інструменти вимірювання по зображенню","measurementTable":"Таблиця вимірювання","mapImageConversionTool":"Інструмент Місце розташування карти-зображення","brightness":"Яскравість","contrast":"Контрастність","sharpness":"Різкість","navigationTool":"Інструмент навігації","noLocalPort":"Значення для локального порту не надано. Для завантаження локальних зображень потрібен локальний порт.","noAttachment":"Немає доступного зображення або вкладення для вибраного місця розташування.","noImageAtElevation":"Немає доступного зображення для вибраної висоти.","currentFootprintTooltip":"Перемкнути видимість контуру відображеного зображення.","additionalFootprintsTooltip":"Перемикнути видимість усіх додаткових контурів, які містять місце розташування інтересу.","additionalCameraLocationsTooltip":"Перемикнути видимість усіх додаткових місць розташування камер для зображень, які містять місце розташування інтересу.","navigationTooltip":"Дослідити повернуті зображення відносно місця розташування.","imageEnhancementTooltip":"Налаштувати яскравість, контрастність і чіткість зображення.","imageGalleryTooltip":"Переглянути ескізи всіх зображень, що зображують місце розташування інтересу.","mapImageConversionTooltip":"Натисніть на зображення, щоб побачити це місце розташування на карті, і навпаки.","newMeasurement":"Нове вимірювання","unsupportedPanoramicImageryError":"Viewer наразі не підтримує візуалізацію {datasetFormat} 360-градусних зображень.","showPopups":"Показати спливаючі вікна","startMeasurement":"Почати вимірювання","selectUnitSystem":"Виберіть систему одиниць","overlayCameraLocations":"Накладення місць розташування камери","overlayMapFeatures":"Накладення об'єктів карти","imageOverlays":"Накладання зображення","invalidCameraHeadingWarningTitle":"Неприпустиме CameraHeading","invalidCameraHeadingWarningDescription":"Значення CameraHeading недійсне для вибраного зображення. Усі інструменти переглядача орієнтованих зображень, у яких використовується CameraHeading, вимкнено. Щоб увімкнути інструменти, призначте дійсне значення для поля у таблиці атрибутів.","createFeaturesFromImage":"Створити обʼєкти із зображення","showAllFeatures":"Показати всі обʼєкти","showFeatures":"Показати об'єкти із зображення","decimalDegrees":"Десяткові градуси","value":"Значення","xy":"XY","xyz":"XYZ (метри)","xyzFeet":"XYZ (фути)","x":"X","y":"Y","z":"Z","type":"Тип","slope":"Ухил","aspect":"Орієнтація","distance":"Відстань","horizontal":"Горизонтальна","vertical":"Вертикальна","measurementViewerHeading":"Триангульоване вимірювання – Другий вид","triangularMeasurementHeading":"Триангульовані вимірювання","triangulatedDistanceHeading":"Тріангульована відстань","triangulatedAreaHeading":"Тріангульована площа","triangulatedLocationHeading":"Тріангульоване місце розташування","configureImageNavigation":"Налаштувати навігацію по зображеннях","configureNavigation":"Налаштувати навігацію","preserveHeading":"Зберегти курс","preserveHeadingDescription":"Не змінювати напрямок камери під час переміщення до наступного зображення.","preservePitch":"Зберегти тангаж","preservePitchDescription":"Не змінювати тангаж камери під час переміщення до наступного зображення.","boundingBoxSize":"Розмір обмежувального прямокутника","thresholdLabel":"Порогове значення (+/-) градусів","noActiveViewerFound":"Активного засобу перегляду не знайдено. Завантажте зображення, щоб активувати засіб перегляду.","noImageLoaded":"Зображення не завантажено.","selectImageForNavigation":"Виберіть зображення для навігації.","noLayerSelected":"Шар не вибрано. Виберіть шар орієнтованих зображень, щоб активувати засіб перегляду.","navigationError":"Під час переміщення до зображення сталася така помилка: {error}.","imageNavigation":"Навігація по зображеннях","imageNavigationDescription":"Виберіть варіант для переміщення між зображеннями або послідовно, або у будь-якому напрямку засобу перегляду поточного зображення.","sequentialNavigation":"Послідовна навігація","sequentialNavigationDescription":"Перейти до наступного зображення у послідовності.","directionalNavigation":"Спрямована навігація","directionalNavigationDescription":"Перейти до наступного зображення у відносному напрямку засобу перегляду поточного зображення.","previous":"Назад","next":"Далі","start":"На початок","end":"У кінець","skipForward":"Перескочити вперед","skipBackward":"Перескочити назад","Play":"Відтворити","Pause":"Пауза","mute":"Вимкнути звук","unmute":"Увімкнути звук","featuresCapturedFromImage":"Відображати усі обʼєкти, захоплені з поточного зображення.","noFeatureFoundWithObjectId":"Неможливо показати зображення, що стосується, оскільки із заданим ідентифікатором {objectId} не знайдено жодного обʼєкта.","depthImageNotSupportedTitle":"Непідтримувана глибина зображення","depthImageNotSupportedDescription":"Для зображень глибини підтримуються тільки формати COG/MRF.","sequentialNavigationWarning":"У послідовності не знайдено жодного зображення для переходу.","dataCaptureSave":"Новий обʼєкт створено.","dataCaptureDelete":"Обʼєкт видалено.","exploreImages":"Оглянути зображення","exploreImages3D":"Оглянути зображення 3D","search3DFilters":"ґ_Configure search option________________________Ї","verticalRange":"ґ_Enable Vertical Search Range_____________________________Ї","frustumRange":"ґ_Enable Frustum Search Range____________________________Ї","utilityTools":"Комунальні об'єкти","graphicTools":"Інструменти графіки","searchTools":"Інструменти пошуку","displayImages":"Відобразити зображення","overlays":"Накладення","superimposeSettings":"Параметри суміщення","superimposeSliderTitle":"Скоригувати положення сітки","superimposeSliderTooltip":"Переміщуйте сітку між ближньою та дальньою межами діапазону за допомогою повзунка.","releaseCameraLock":"Розблокувати камеру","enableCameraLock":"Заблокувати камеру","superimposeView":"Вид суміщення","superimposeImageDescription":"Зображення в режимі накладання"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"title":"Trình xem hình ảnh định hướng","currentFootprint":"Footprint hiện tại","accuracy":"Độ chính xác","accuracyInformation":"Độ chính xác được tính toán bằng thuộc tính Độ chính xác Hướng được xác định trong dịch vụ của lớp hình ảnh định hướng.","additionalFootprints":"Footprint bổ sung","additionalCameraLocations":"Các vị trí máy ảnh bổ sung","basemap":"Bản đồ nền","groundArea":"Khu vực mặt đất","groundDistance":"Khoảng cách mặt đất","imageAttributes":"Thuộc tính hình ảnh","imageEnhancement":"Nâng cao chất lượng hình ảnh","videoEnhancement":"Cải tiến video","imageGallery":"Thư viện hình ảnh","float":"Hiện","dock":"Ẩn","footprint":"Footprint","heightAboveGround":"Chiều cao trên mặt đất","groundLocation":"Vị trí mặt đất","noImageError":"Không có sẵn hình ảnh nào cho vị trí đã chọn.","onLoadMessage":"Chọn một vị trí trên bản đồ để xem hình ảnh.","imageLoadError":"Đã xảy ra lỗi khi tải hình ảnh.","measurementTools":"Công cụ đo lường hình ảnh","measurementTable":"Bảng đo lường","mapImageConversionTool":"Công cụ định vị bản đồ-hình ảnh","brightness":"Độ sáng","contrast":"Độ tương phản","sharpness":"Độ nét","navigationTool":"Công cụ điều hướng","noLocalPort":"Giá trị cho cổng thông tin cục bộ không được cung cấp. Cần có cổng thông tin cục bộ để tải hình ảnh cục bộ.","noAttachment":"Không có sẵn hình ảnh hoặc tệp đính kèm nào cho vị trí đã chọn.","noImageAtElevation":"Không có hình ảnh khả dụng tại độ cao đã chọn.","currentFootprintTooltip":"Chuyển đổi khả năng hiển thị footprint của hình ảnh được hiển thị.","additionalFootprintsTooltip":"Chuyển đổi khả năng hiển thị của tất cả các footprint bổ sung chứa vị trí quan tâm.","additionalCameraLocationsTooltip":"Chuyển đổi khả năng hiển thị của tất cả các vị trí camera bổ sung của hình ảnh chứa vị trí quan tâm.","navigationTooltip":"Khám phá hình ảnh trả về liên quan đến vị trí quan tâm.","imageEnhancementTooltip":"Điều chỉnh độ sáng, độ tương phản và độ sắc nét của hình ảnh.","imageGalleryTooltip":"Khám phá hình thu nhỏ của tất cả các hình ảnh mô tả vị trí quan tâm.","mapImageConversionTooltip":"Nhấp vào hình ảnh để xem vị trí đó ở đâu trên bản đồ và ngược lại.","newMeasurement":"Phép đo lường mới","unsupportedPanoramicImageryError":"Trình xem hiện không hỗ trợ hiển thị hình ảnh 360 độ {datasetFormat}.","showPopups":"Hiện thị cửa sổ pop-up","startMeasurement":"Bắt đầu đo","selectUnitSystem":"Chọn Hệ thống Đơn vị","overlayCameraLocations":"Chồng lớp vị trí máy ảnh","overlayMapFeatures":"Chồng lớp đối tượng bản đồ","imageOverlays":"Chồng lớp hình ảnh","invalidCameraHeadingWarningTitle":"CameraHeading không hợp lệ","invalidCameraHeadingWarningDescription":"Giá trị CameraHeading không hợp lệ cho hình ảnh đã chọn. Tất cả công cụ trình xem hình ảnh định hướng sử dụng giá trị CameraHeading đã bị tắt. Chỉ định một giá trị hợp lệ cho trường trong bảng thuộc tính để bật các công cụ.","createFeaturesFromImage":"Tạo đối tượng từ hình ảnh","showAllFeatures":"Hiển thị tất cả đối tượng","showFeatures":"Hiển thị đối tượng từ hình ảnh","decimalDegrees":"Độ thập phân","value":"Giá trị","xy":"XY","xyz":"XYZ (mét)","xyzFeet":"XYZ (foot)","x":"X","y":"Y","z":"Z","type":"Loại","slope":"Độ dốc","aspect":"Hướng","distance":"Khoảng cách","horizontal":"Ngang","vertical":"Dọc","measurementViewerHeading":"Đo lường Tam giác - Chế độ xem Thứ hai","triangularMeasurementHeading":"Đo lường Tam giác","triangulatedDistanceHeading":"Khoảng cách Tam giác","triangulatedAreaHeading":"Khu vực Tam giác","triangulatedLocationHeading":"Vị trí Tam giác","configureImageNavigation":"Cấu hình điều hướng hình ảnh","configureNavigation":"Cấu hình điều hướng","preserveHeading":"Giữ nguyên hướng","preserveHeadingDescription":"Giữ nguyên hướng máy ảnh khi điều hướng đến hình ảnh tiếp theo.","preservePitch":"Giữ nguyên cao độ","preservePitchDescription":"Giữ nguyên cao độ máy ảnh khi điều hướng đến hình ảnh tiếp theo.","boundingBoxSize":"Kích thước hộp giới hạn","thresholdLabel":"Ngưỡng (+/-) độ","noActiveViewerFound":"Không tìm thấy trình xem nào đang hoạt động. Vui lòng tải hình ảnh để bật trình xem.","noImageLoaded":"Không có hình ảnh nào được tải.","selectImageForNavigation":"Vui lòng chọn hình ảnh để điều hướng.","noLayerSelected":"Không có lớp nào được chọn. Vui lòng chọn lớp hình ảnh định hướng để bật trình xem.","navigationError":"Đã xảy ra lỗi sau trong khi điều hướng đến hình ảnh: {error}.","imageNavigation":"Điều hướng hình ảnh","imageNavigationDescription":"Chọn một tùy chọn để điều hướng giữa các hình ảnh theo thứ tự hoặc theo hướng bất kỳ từ chế độ xem hình ảnh hiện tại.","sequentialNavigation":"Điều hướng tuần tự","sequentialNavigationDescription":"Điều hướng đến hình ảnh tiếp theo theo trình tự.","directionalNavigation":"Điều hướng có hướng","directionalNavigationDescription":"Điều hướng đến hình ảnh tiếp theo theo hướng tương đối từ chế độ xem hình ảnh hiện tại.","previous":"Trước","next":"Tiếp","start":"Đi đến đầu","end":"Đi đến cuối","skipForward":"Bỏ qua phía trước","skipBackward":"Bỏ qua phía sau","Play":"Phát","Pause":"Tạm dừng","mute":"Tắt tiếng","unmute":"Huỷ tắt tiếng","featuresCapturedFromImage":"Hiển thị tất cả đối tượng thu thập được từ hình ảnh hiện tại.","noFeatureFoundWithObjectId":"Không thể hiển thị hình ảnh liên quan do không tìm thấy đối tượng nào có ID Đối tượng {objectId} được cung cấp.","depthImageNotSupportedTitle":"Hình ảnh có Chiều sâu Không được hỗ trợ","depthImageNotSupportedDescription":"Hình ảnh có chiều sâu chỉ hỗ trợ định dạng COG/MRF.","sequentialNavigationWarning":"Không tìm thấy hình ảnh trong trình tự để điều hướng.","dataCaptureSave":"Đã tạo đối tượng mới.","dataCaptureDelete":"Đã xóa đối tượng.","exploreImages":"Khám phá hình ảnh","exploreImages3D":"Khám phá hình ảnh 3D","utilityTools":"Tiện ích","graphicTools":"Công cụ đồ họa","searchTools":"Công cụ tìm kiếm","displayImages":"Hiển thị hình ảnh","overlays":"Lớp phủ","superimposeSettings":"Cài đặt chồng chéo","superimposeSliderTitle":"Điều chỉnh Vị trí Lưới","superimposeSliderTooltip":"Sử dụng thanh trượt để di chuyển lưới giữa các phạm vi khoảng cách gần và xa.","releaseCameraLock":"Mở khóa camera","enableCameraLock":"Bật khóa máy ảnh","superimposeView":"Chế độ xem chồng chéo","superimposeImageDescription":"Hình ảnh trong chế độ xem chồng chéo"}
|
|
1
|
+
{"title":"Trình xem hình ảnh định hướng","currentFootprint":"Footprint hiện tại","accuracy":"Độ chính xác","accuracyInformation":"Độ chính xác được tính toán bằng thuộc tính Độ chính xác Hướng được xác định trong dịch vụ của lớp hình ảnh định hướng.","additionalFootprints":"Footprint bổ sung","additionalCameraLocations":"Các vị trí máy ảnh bổ sung","basemap":"Bản đồ nền","groundArea":"Khu vực mặt đất","groundDistance":"Khoảng cách mặt đất","imageAttributes":"Thuộc tính hình ảnh","imageEnhancement":"Nâng cao chất lượng hình ảnh","videoEnhancement":"Cải tiến video","imageGallery":"Thư viện hình ảnh","float":"Hiện","dock":"Ẩn","footprint":"Footprint","heightAboveGround":"Chiều cao trên mặt đất","groundLocation":"Vị trí mặt đất","noImageError":"Không có sẵn hình ảnh nào cho vị trí đã chọn.","onLoadMessage":"Chọn một vị trí trên bản đồ để xem hình ảnh.","imageLoadError":"Đã xảy ra lỗi khi tải hình ảnh.","measurementTools":"Công cụ đo lường hình ảnh","measurementTable":"Bảng đo lường","mapImageConversionTool":"Công cụ định vị bản đồ-hình ảnh","brightness":"Độ sáng","contrast":"Độ tương phản","sharpness":"Độ nét","navigationTool":"Công cụ điều hướng","noLocalPort":"Giá trị cho cổng thông tin cục bộ không được cung cấp. Cần có cổng thông tin cục bộ để tải hình ảnh cục bộ.","noAttachment":"Không có sẵn hình ảnh hoặc tệp đính kèm nào cho vị trí đã chọn.","noImageAtElevation":"Không có hình ảnh khả dụng tại độ cao đã chọn.","currentFootprintTooltip":"Chuyển đổi khả năng hiển thị footprint của hình ảnh được hiển thị.","additionalFootprintsTooltip":"Chuyển đổi khả năng hiển thị của tất cả các footprint bổ sung chứa vị trí quan tâm.","additionalCameraLocationsTooltip":"Chuyển đổi khả năng hiển thị của tất cả các vị trí camera bổ sung của hình ảnh chứa vị trí quan tâm.","navigationTooltip":"Khám phá hình ảnh trả về liên quan đến vị trí quan tâm.","imageEnhancementTooltip":"Điều chỉnh độ sáng, độ tương phản và độ sắc nét của hình ảnh.","imageGalleryTooltip":"Khám phá hình thu nhỏ của tất cả các hình ảnh mô tả vị trí quan tâm.","mapImageConversionTooltip":"Nhấp vào hình ảnh để xem vị trí đó ở đâu trên bản đồ và ngược lại.","newMeasurement":"Phép đo lường mới","unsupportedPanoramicImageryError":"Trình xem hiện không hỗ trợ hiển thị hình ảnh 360 độ {datasetFormat}.","showPopups":"Hiện thị cửa sổ pop-up","startMeasurement":"Bắt đầu đo","selectUnitSystem":"Chọn Hệ thống Đơn vị","overlayCameraLocations":"Chồng lớp vị trí máy ảnh","overlayMapFeatures":"Chồng lớp đối tượng bản đồ","imageOverlays":"Chồng lớp hình ảnh","invalidCameraHeadingWarningTitle":"CameraHeading không hợp lệ","invalidCameraHeadingWarningDescription":"Giá trị CameraHeading không hợp lệ cho hình ảnh đã chọn. Tất cả công cụ trình xem hình ảnh định hướng sử dụng giá trị CameraHeading đã bị tắt. Chỉ định một giá trị hợp lệ cho trường trong bảng thuộc tính để bật các công cụ.","createFeaturesFromImage":"Tạo đối tượng từ hình ảnh","showAllFeatures":"Hiển thị tất cả đối tượng","showFeatures":"Hiển thị đối tượng từ hình ảnh","decimalDegrees":"Độ thập phân","value":"Giá trị","xy":"XY","xyz":"XYZ (mét)","xyzFeet":"XYZ (foot)","x":"X","y":"Y","z":"Z","type":"Loại","slope":"Độ dốc","aspect":"Hướng","distance":"Khoảng cách","horizontal":"Ngang","vertical":"Dọc","measurementViewerHeading":"Đo lường Tam giác - Chế độ xem Thứ hai","triangularMeasurementHeading":"Đo lường Tam giác","triangulatedDistanceHeading":"Khoảng cách Tam giác","triangulatedAreaHeading":"Khu vực Tam giác","triangulatedLocationHeading":"Vị trí Tam giác","configureImageNavigation":"Cấu hình điều hướng hình ảnh","configureNavigation":"Cấu hình điều hướng","preserveHeading":"Giữ nguyên hướng","preserveHeadingDescription":"Giữ nguyên hướng máy ảnh khi điều hướng đến hình ảnh tiếp theo.","preservePitch":"Giữ nguyên cao độ","preservePitchDescription":"Giữ nguyên cao độ máy ảnh khi điều hướng đến hình ảnh tiếp theo.","boundingBoxSize":"Kích thước hộp giới hạn","thresholdLabel":"Ngưỡng (+/-) độ","noActiveViewerFound":"Không tìm thấy trình xem nào đang hoạt động. Vui lòng tải hình ảnh để bật trình xem.","noImageLoaded":"Không có hình ảnh nào được tải.","selectImageForNavigation":"Vui lòng chọn hình ảnh để điều hướng.","noLayerSelected":"Không có lớp nào được chọn. Vui lòng chọn lớp hình ảnh định hướng để bật trình xem.","navigationError":"Đã xảy ra lỗi sau trong khi điều hướng đến hình ảnh: {error}.","imageNavigation":"Điều hướng hình ảnh","imageNavigationDescription":"Chọn một tùy chọn để điều hướng giữa các hình ảnh theo thứ tự hoặc theo hướng bất kỳ từ chế độ xem hình ảnh hiện tại.","sequentialNavigation":"Điều hướng tuần tự","sequentialNavigationDescription":"Điều hướng đến hình ảnh tiếp theo theo trình tự.","directionalNavigation":"Điều hướng có hướng","directionalNavigationDescription":"Điều hướng đến hình ảnh tiếp theo theo hướng tương đối từ chế độ xem hình ảnh hiện tại.","previous":"Trước","next":"Tiếp","start":"Đi đến đầu","end":"Đi đến cuối","skipForward":"Bỏ qua phía trước","skipBackward":"Bỏ qua phía sau","Play":"Phát","Pause":"Tạm dừng","mute":"Tắt tiếng","unmute":"Huỷ tắt tiếng","featuresCapturedFromImage":"Hiển thị tất cả đối tượng thu thập được từ hình ảnh hiện tại.","noFeatureFoundWithObjectId":"Không thể hiển thị hình ảnh liên quan do không tìm thấy đối tượng nào có ID Đối tượng {objectId} được cung cấp.","depthImageNotSupportedTitle":"Hình ảnh có Chiều sâu Không được hỗ trợ","depthImageNotSupportedDescription":"Hình ảnh có chiều sâu chỉ hỗ trợ định dạng COG/MRF.","sequentialNavigationWarning":"Không tìm thấy hình ảnh trong trình tự để điều hướng.","dataCaptureSave":"Đã tạo đối tượng mới.","dataCaptureDelete":"Đã xóa đối tượng.","exploreImages":"Khám phá hình ảnh","exploreImages3D":"Khám phá hình ảnh 3D","search3DFilters":"Đ_Configure search option________________________ớ","verticalRange":"Đ_Enable Vertical Search Range_____________________________ớ","frustumRange":"Đ_Enable Frustum Search Range____________________________ớ","utilityTools":"Tiện ích","graphicTools":"Công cụ đồ họa","searchTools":"Công cụ tìm kiếm","displayImages":"Hiển thị hình ảnh","overlays":"Lớp phủ","superimposeSettings":"Cài đặt chồng chéo","superimposeSliderTitle":"Điều chỉnh Vị trí Lưới","superimposeSliderTooltip":"Sử dụng thanh trượt để di chuyển lưới giữa các phạm vi khoảng cách gần và xa.","releaseCameraLock":"Mở khóa camera","enableCameraLock":"Bật khóa máy ảnh","superimposeView":"Chế độ xem chồng chéo","superimposeImageDescription":"Hình ảnh trong chế độ xem chồng chéo"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"title":"已定向影像查看器","currentFootprint":"当前覆盖区","accuracy":"精度","accuracyInformation":"精度是通过定向影像图层服务中定义的方向精度属性计算的。","additionalFootprints":"附加覆盖区","additionalCameraLocations":"附加相机位置","basemap":"底图","groundArea":"地面面积","groundDistance":"地面距离","imageAttributes":"图像属性","imageEnhancement":"图像增强","videoEnhancement":"视频增强功能","imageGallery":"图像库","float":"浮动","dock":"停靠","footprint":"覆盖区","heightAboveGround":"地面上方高度","groundLocation":"地面位置","noImageError":"所选位置没有可用图像。","onLoadMessage":"在地图上选择一个位置以查看影像。","imageLoadError":"加载图像时出错。","measurementTools":"图像测量工具","measurementTable":"测量表","mapImageConversionTool":"地图影像位置工具","brightness":"亮度","contrast":"对比度","sharpness":"锐度","navigationTool":"导航工具","noLocalPort":"没有提供本地端口的值。 加载本地图像需要本地端口。","noAttachment":"所选位置没有可用图像或附件。","noImageAtElevation":"所选高程处无可用图像。","currentFootprintTooltip":"切换已显示影像的覆盖区可见性。","additionalFootprintsTooltip":"切换包含感兴趣位置的所有额外覆盖区的可见性。","additionalCameraLocationsTooltip":"切换包含感兴趣位置的影像的所有额外相机位置的可见性。","navigationTooltip":"探索与感兴趣位置相关的返回图像。","imageEnhancementTooltip":"调整图像亮度、对比度和锐化度。","imageGalleryTooltip":"探索描绘感兴趣位置的所有图像的缩略图。","mapImageConversionTooltip":"单击影像可查看其在地图上的位置,反之亦然。","newMeasurement":"新测量","unsupportedPanoramicImageryError":"查看器当前不支持可视化 {datasetFormat} 360 度影像。","showPopups":"显示弹出窗口","startMeasurement":"开始测量","selectUnitSystem":"选择单位系统","overlayCameraLocations":"叠加相机位置","overlayMapFeatures":"叠加地图要素","imageOverlays":"图像叠加","invalidCameraHeadingWarningTitle":"无效 CameraHeading","invalidCameraHeadingWarningDescription":"CameraHeading 值对于所选图像无效。 所有使用 CameraHeading 值的定向影像查看器工具均被禁用。 要启用这些工具,需要为属性表中的字段分配有效值。","createFeaturesFromImage":"从图像创建要素","showAllFeatures":"显示所有要素","showFeatures":"显示图像中的要素","decimalDegrees":"十进制度","value":"值","xy":"XY","xyz":"XYZ (米)","xyzFeet":"XYZ (英尺)","x":"X","y":"Y","z":"Z","type":"类型","slope":"坡度","aspect":"坡向","distance":"距离","horizontal":"水平","vertical":"垂直","measurementViewerHeading":"三角测量 - 第二个视图","triangularMeasurementHeading":"三角测量","triangulatedDistanceHeading":"三角距离","triangulatedAreaHeading":"三角面积","triangulatedLocationHeading":"三角位置","configureImageNavigation":"配置图像导航","configureNavigation":"配置导航","preserveHeading":"保留朝向","preserveHeadingDescription":"当导航至下一图像时,保留相机朝向。","preservePitch":"保留仰俯角","preservePitchDescription":"当导航至下一图像时,保留相机仰俯角。","boundingBoxSize":"边界框大小","thresholdLabel":"阈值(+/-)度","noActiveViewerFound":"未找到任何活动的查看器。 请加载图像以启用查看器。","noImageLoaded":"未加载任何图像。","selectImageForNavigation":"请选择要导航的图像。","noLayerSelected":"未选择任何图层。 请选择定向影像图层以启用查看器。","navigationError":"导航至图像时发生以下错误:{error}。","imageNavigation":"图像导航","imageNavigationDescription":"选择一个选项以按顺序或者以当前图像视图的任意方向在图像之间导航。","sequentialNavigation":"顺序导航","sequentialNavigationDescription":"导航至序列中的下一个图像。","directionalNavigation":"方向导航","directionalNavigationDescription":"以当前图像视图的相对方向导航至下一个图像。","previous":"后退","next":"前进","start":"转至开始","end":"转至结束","skipForward":"快进","skipBackward":"快退","Play":"播放","Pause":"暂停","mute":"静音","unmute":"取消静音","featuresCapturedFromImage":"显示从当前图像捕获的所有要素。","noFeatureFoundWithObjectId":"无法显示与提供的对象 ID {objectId} 相关联的图像,因为未找到任何要素。","depthImageNotSupportedTitle":"不支持的深度图像","depthImageNotSupportedDescription":"深度图像仅支持 COG/MRF 格式。","sequentialNavigationWarning":"在要导航的序列中未找到图像。","dataCaptureSave":"已创建新要素。","dataCaptureDelete":"要素已删除。","exploreImages":"浏览图像","exploreImages3D":"浏览 3D 图像","utilityTools":"实用工具","graphicTools":"图形工具","searchTools":"搜索工具","displayImages":"显示图像","overlays":"叠加","superimposeSettings":"叠加设置","superimposeSliderTitle":"调整网格位置","superimposeSliderTooltip":"使用滑块在近距离范围和远距离范围之间移动网格。","releaseCameraLock":"释放相机锁","enableCameraLock":"启用相机锁","superimposeView":"叠加视图","superimposeImageDescription":"叠加视图中的图像"}
|
|
1
|
+
{"title":"已定向影像查看器","currentFootprint":"当前覆盖区","accuracy":"精度","accuracyInformation":"精度是通过定向影像图层服务中定义的方向精度属性计算的。","additionalFootprints":"附加覆盖区","additionalCameraLocations":"附加相机位置","basemap":"底图","groundArea":"地面面积","groundDistance":"地面距离","imageAttributes":"图像属性","imageEnhancement":"图像增强","videoEnhancement":"视频增强功能","imageGallery":"图像库","float":"浮动","dock":"停靠","footprint":"覆盖区","heightAboveGround":"地面上方高度","groundLocation":"地面位置","noImageError":"所选位置没有可用图像。","onLoadMessage":"在地图上选择一个位置以查看影像。","imageLoadError":"加载图像时出错。","measurementTools":"图像测量工具","measurementTable":"测量表","mapImageConversionTool":"地图影像位置工具","brightness":"亮度","contrast":"对比度","sharpness":"锐度","navigationTool":"导航工具","noLocalPort":"没有提供本地端口的值。 加载本地图像需要本地端口。","noAttachment":"所选位置没有可用图像或附件。","noImageAtElevation":"所选高程处无可用图像。","currentFootprintTooltip":"切换已显示影像的覆盖区可见性。","additionalFootprintsTooltip":"切换包含感兴趣位置的所有额外覆盖区的可见性。","additionalCameraLocationsTooltip":"切换包含感兴趣位置的影像的所有额外相机位置的可见性。","navigationTooltip":"探索与感兴趣位置相关的返回图像。","imageEnhancementTooltip":"调整图像亮度、对比度和锐化度。","imageGalleryTooltip":"探索描绘感兴趣位置的所有图像的缩略图。","mapImageConversionTooltip":"单击影像可查看其在地图上的位置,反之亦然。","newMeasurement":"新测量","unsupportedPanoramicImageryError":"查看器当前不支持可视化 {datasetFormat} 360 度影像。","showPopups":"显示弹出窗口","startMeasurement":"开始测量","selectUnitSystem":"选择单位系统","overlayCameraLocations":"叠加相机位置","overlayMapFeatures":"叠加地图要素","imageOverlays":"图像叠加","invalidCameraHeadingWarningTitle":"无效 CameraHeading","invalidCameraHeadingWarningDescription":"CameraHeading 值对于所选图像无效。 所有使用 CameraHeading 值的定向影像查看器工具均被禁用。 要启用这些工具,需要为属性表中的字段分配有效值。","createFeaturesFromImage":"从图像创建要素","showAllFeatures":"显示所有要素","showFeatures":"显示图像中的要素","decimalDegrees":"十进制度","value":"值","xy":"XY","xyz":"XYZ (米)","xyzFeet":"XYZ (英尺)","x":"X","y":"Y","z":"Z","type":"类型","slope":"坡度","aspect":"坡向","distance":"距离","horizontal":"水平","vertical":"垂直","measurementViewerHeading":"三角测量 - 第二个视图","triangularMeasurementHeading":"三角测量","triangulatedDistanceHeading":"三角距离","triangulatedAreaHeading":"三角面积","triangulatedLocationHeading":"三角位置","configureImageNavigation":"配置图像导航","configureNavigation":"配置导航","preserveHeading":"保留朝向","preserveHeadingDescription":"当导航至下一图像时,保留相机朝向。","preservePitch":"保留仰俯角","preservePitchDescription":"当导航至下一图像时,保留相机仰俯角。","boundingBoxSize":"边界框大小","thresholdLabel":"阈值(+/-)度","noActiveViewerFound":"未找到任何活动的查看器。 请加载图像以启用查看器。","noImageLoaded":"未加载任何图像。","selectImageForNavigation":"请选择要导航的图像。","noLayerSelected":"未选择任何图层。 请选择定向影像图层以启用查看器。","navigationError":"导航至图像时发生以下错误:{error}。","imageNavigation":"图像导航","imageNavigationDescription":"选择一个选项以按顺序或者以当前图像视图的任意方向在图像之间导航。","sequentialNavigation":"顺序导航","sequentialNavigationDescription":"导航至序列中的下一个图像。","directionalNavigation":"方向导航","directionalNavigationDescription":"以当前图像视图的相对方向导航至下一个图像。","previous":"后退","next":"前进","start":"转至开始","end":"转至结束","skipForward":"快进","skipBackward":"快退","Play":"播放","Pause":"暂停","mute":"静音","unmute":"取消静音","featuresCapturedFromImage":"显示从当前图像捕获的所有要素。","noFeatureFoundWithObjectId":"无法显示与提供的对象 ID {objectId} 相关联的图像,因为未找到任何要素。","depthImageNotSupportedTitle":"不支持的深度图像","depthImageNotSupportedDescription":"深度图像仅支持 COG/MRF 格式。","sequentialNavigationWarning":"在要导航的序列中未找到图像。","dataCaptureSave":"已创建新要素。","dataCaptureDelete":"要素已删除。","exploreImages":"浏览图像","exploreImages3D":"浏览 3D 图像","search3DFilters":"试_Configure search option________________________验","verticalRange":"试_Enable Vertical Search Range_____________________________验","frustumRange":"试_Enable Frustum Search Range____________________________验","utilityTools":"实用工具","graphicTools":"图形工具","searchTools":"搜索工具","displayImages":"显示图像","overlays":"叠加","superimposeSettings":"叠加设置","superimposeSliderTitle":"调整网格位置","superimposeSliderTooltip":"使用滑块在近距离范围和远距离范围之间移动网格。","releaseCameraLock":"释放相机锁","enableCameraLock":"启用相机锁","superimposeView":"叠加视图","superimposeImageDescription":"叠加视图中的图像"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"title":"導向的影像檢視器","currentFootprint":"目前覆蓋區","accuracy":"準確性","accuracyInformation":"準確度是使用導向的影像圖層服務中定義的方向準確度屬性所計算的。","additionalFootprints":"其他覆蓋區","additionalCameraLocations":"其他相機位置","basemap":"底圖","groundArea":"地面面積","groundDistance":"地面距離","imageAttributes":"圖片屬性","imageEnhancement":"圖片增強功能","videoEnhancement":"影片增強功能","imageGallery":"圖片庫","float":"浮點","dock":"固定","footprint":"覆蓋區","heightAboveGround":"高於地面的高度","groundLocation":"地面位置","noImageError":"沒有可供所選位置使用的圖片。","onLoadMessage":"在地圖上選擇位置以檢視影像。","imageLoadError":"載入圖像時出錯。","measurementTools":"圖像測量工具","measurementTable":"測量表","mapImageConversionTool":"地圖-圖像位置工具","brightness":"亮度","contrast":"對比","sharpness":"銳利度","navigationTool":"導航工具","noLocalPort":"未提供本機連接埠的值。 載入本機圖像需要本機連接埠。","noAttachment":"沒有可供所選位置使用的圖片或附件。","noImageAtElevation":"沒有可供所選高程使用的圖像。","currentFootprintTooltip":"切換顯示的圖像之覆蓋區的可見性。","additionalFootprintsTooltip":"切換包含感興趣位置的其他所有覆蓋區的可見性。","additionalCameraLocationsTooltip":"切換包含感興趣位置之圖像的其他所有相機位置的可見性。","navigationTooltip":"探索與感興趣位置相關的傳回圖像。","imageEnhancementTooltip":"調整圖像亮度、對比和銳度。","imageGalleryTooltip":"探索描繪感興趣位置的所有圖像的縮圖。","mapImageConversionTooltip":"按一下圖像即可查看該位置在地圖上的位置,反之亦然。","newMeasurement":"新測量","unsupportedPanoramicImageryError":"檢視器目前不支援視覺化 {datasetFormat} 360 度影像。","showPopups":"顯示彈出訊息","startMeasurement":"開啟測量","selectUnitSystem":"選擇單位系統","overlayCameraLocations":"疊加相機位置","overlayMapFeatures":"疊加地圖圖徵","imageOverlays":"圖像重疊","invalidCameraHeadingWarningTitle":"CameraHeading 無效","invalidCameraHeadingWarningDescription":"CameraHeading 值對於所選圖像無效。 所有使用 CameraHeading 值的導向的影像檢視器工具均已停用。 為屬性表中的欄位指派有效值以啟用工具。","createFeaturesFromImage":"從圖像建立圖徵","showAllFeatures":"顯示所有圖徵","showFeatures":"從圖像中顯示圖徵","decimalDegrees":"十進制度","value":"數值","xy":"XY","xyz":"XYZ (公尺)","xyzFeet":"XYZ (英尺)","x":"X","y":"Y","z":"Z","type":"類型","slope":"坡度","aspect":"部份","distance":"距離","horizontal":"水平對齊","vertical":"垂直","measurementViewerHeading":"三角測量 - 第二視圖","triangularMeasurementHeading":"三角測量","triangulatedDistanceHeading":"三角距離","triangulatedAreaHeading":"三角面積","triangulatedLocationHeading":"三角位置","configureImageNavigation":"配置圖像導航","configureNavigation":"配置導航","preserveHeading":"保留前進方向","preserveHeadingDescription":"導航到下一張圖像時保留相機前進方向。","preservePitch":"保留俯仰角度","preservePitchDescription":"導航到下一張圖像時保留相機俯仰角度。","boundingBoxSize":"週框方塊大小","thresholdLabel":"閾值 (+/-) 角度","noActiveViewerFound":"找不到作用中檢視器。 請載入圖像以啟用檢視器。","noImageLoaded":"未載入圖像。","selectImageForNavigation":"請選擇圖像以導覽。","noLayerSelected":"未選擇圖層。 請選擇導向的影像圖層以啟用檢視器。","navigationError":"導覽至圖像時發生以下錯誤: {error}。","imageNavigation":"圖像導覽","imageNavigationDescription":"選擇選項,按順序或按目前圖像視圖的任意方向在圖像之間導覽。","sequentialNavigation":"循序導航","sequentialNavigationDescription":"導覽到序列中的下一張圖像。","directionalNavigation":"定向導航","directionalNavigationDescription":"按照目前圖像視圖的相對方向導覽到下一張圖像。","previous":"上一頁","next":"下一步","start":"移至開頭","end":"移至結尾","skipForward":"向前跳","skipBackward":"向後跳","Play":"播放","Pause":"暫停","mute":"靜音","unmute":"取消靜音","featuresCapturedFromImage":"顯示從目前圖影擷取的所有圖徵。","noFeatureFoundWithObjectId":"無法顯示與提供的物件 ID {objectId} 關聯的圖像,因為找不到任何圖徵。","depthImageNotSupportedTitle":"不支援的深度圖像","depthImageNotSupportedDescription":"深度圖像僅支援 COG/MRF 格式。","sequentialNavigationWarning":"在要導覽的序列中找不到圖像。","dataCaptureSave":"已建立新圖徵。","dataCaptureDelete":"已刪除圖徵。","exploreImages":"探索圖像","exploreImages3D":"探索圖像 3D","utilityTools":"公共設施","graphicTools":"圖形工具","searchTools":"搜尋工具","displayImages":"顯示圖像","overlays":"疊加","superimposeSettings":"疊加設定","superimposeSliderTitle":"調整網格位置","superimposeSliderTooltip":"使用滑桿在近距離和遠距離範圍之間移動網格。","releaseCameraLock":"釋放相機鎖定","enableCameraLock":"啟用相機鎖定","superimposeView":"疊加視圖","superimposeImageDescription":"疊加視圖中的圖像"}
|
|
1
|
+
{"title":"導向的影像檢視器","currentFootprint":"目前覆蓋區","accuracy":"準確性","accuracyInformation":"準確度是使用導向的影像圖層服務中定義的方向準確度屬性所計算的。","additionalFootprints":"其他覆蓋區","additionalCameraLocations":"其他相機位置","basemap":"底圖","groundArea":"地面面積","groundDistance":"地面距離","imageAttributes":"圖片屬性","imageEnhancement":"圖片增強功能","videoEnhancement":"影片增強功能","imageGallery":"圖片庫","float":"浮點","dock":"固定","footprint":"覆蓋區","heightAboveGround":"高於地面的高度","groundLocation":"地面位置","noImageError":"沒有可供所選位置使用的圖片。","onLoadMessage":"在地圖上選擇位置以檢視影像。","imageLoadError":"載入圖像時出錯。","measurementTools":"圖像測量工具","measurementTable":"測量表","mapImageConversionTool":"地圖-圖像位置工具","brightness":"亮度","contrast":"對比","sharpness":"銳利度","navigationTool":"導航工具","noLocalPort":"未提供本機連接埠的值。 載入本機圖像需要本機連接埠。","noAttachment":"沒有可供所選位置使用的圖片或附件。","noImageAtElevation":"沒有可供所選高程使用的圖像。","currentFootprintTooltip":"切換顯示的圖像之覆蓋區的可見性。","additionalFootprintsTooltip":"切換包含感興趣位置的其他所有覆蓋區的可見性。","additionalCameraLocationsTooltip":"切換包含感興趣位置之圖像的其他所有相機位置的可見性。","navigationTooltip":"探索與感興趣位置相關的傳回圖像。","imageEnhancementTooltip":"調整圖像亮度、對比和銳度。","imageGalleryTooltip":"探索描繪感興趣位置的所有圖像的縮圖。","mapImageConversionTooltip":"按一下圖像即可查看該位置在地圖上的位置,反之亦然。","newMeasurement":"新測量","unsupportedPanoramicImageryError":"檢視器目前不支援視覺化 {datasetFormat} 360 度影像。","showPopups":"顯示彈出訊息","startMeasurement":"開啟測量","selectUnitSystem":"選擇單位系統","overlayCameraLocations":"疊加相機位置","overlayMapFeatures":"疊加地圖圖徵","imageOverlays":"圖像重疊","invalidCameraHeadingWarningTitle":"CameraHeading 無效","invalidCameraHeadingWarningDescription":"CameraHeading 值對於所選圖像無效。 所有使用 CameraHeading 值的導向的影像檢視器工具均已停用。 為屬性表中的欄位指派有效值以啟用工具。","createFeaturesFromImage":"從圖像建立圖徵","showAllFeatures":"顯示所有圖徵","showFeatures":"從圖像中顯示圖徵","decimalDegrees":"十進制度","value":"數值","xy":"XY","xyz":"XYZ (公尺)","xyzFeet":"XYZ (英尺)","x":"X","y":"Y","z":"Z","type":"類型","slope":"坡度","aspect":"部份","distance":"距離","horizontal":"水平對齊","vertical":"垂直","measurementViewerHeading":"三角測量 - 第二視圖","triangularMeasurementHeading":"三角測量","triangulatedDistanceHeading":"三角距離","triangulatedAreaHeading":"三角面積","triangulatedLocationHeading":"三角位置","configureImageNavigation":"配置圖像導航","configureNavigation":"配置導航","preserveHeading":"保留前進方向","preserveHeadingDescription":"導航到下一張圖像時保留相機前進方向。","preservePitch":"保留俯仰角度","preservePitchDescription":"導航到下一張圖像時保留相機俯仰角度。","boundingBoxSize":"週框方塊大小","thresholdLabel":"閾值 (+/-) 角度","noActiveViewerFound":"找不到作用中檢視器。 請載入圖像以啟用檢視器。","noImageLoaded":"未載入圖像。","selectImageForNavigation":"請選擇圖像以導覽。","noLayerSelected":"未選擇圖層。 請選擇導向的影像圖層以啟用檢視器。","navigationError":"導覽至圖像時發生以下錯誤: {error}。","imageNavigation":"圖像導覽","imageNavigationDescription":"選擇選項,按順序或按目前圖像視圖的任意方向在圖像之間導覽。","sequentialNavigation":"循序導航","sequentialNavigationDescription":"導覽到序列中的下一張圖像。","directionalNavigation":"定向導航","directionalNavigationDescription":"按照目前圖像視圖的相對方向導覽到下一張圖像。","previous":"上一頁","next":"下一步","start":"移至開頭","end":"移至結尾","skipForward":"向前跳","skipBackward":"向後跳","Play":"播放","Pause":"暫停","mute":"靜音","unmute":"取消靜音","featuresCapturedFromImage":"顯示從目前圖影擷取的所有圖徵。","noFeatureFoundWithObjectId":"無法顯示與提供的物件 ID {objectId} 關聯的圖像,因為找不到任何圖徵。","depthImageNotSupportedTitle":"不支援的深度圖像","depthImageNotSupportedDescription":"深度圖像僅支援 COG/MRF 格式。","sequentialNavigationWarning":"在要導覽的序列中找不到圖像。","dataCaptureSave":"已建立新圖徵。","dataCaptureDelete":"已刪除圖徵。","exploreImages":"探索圖像","exploreImages3D":"探索圖像 3D","search3DFilters":"試_Configure search option________________________驗","verticalRange":"試_Enable Vertical Search Range_____________________________驗","frustumRange":"試_Enable Frustum Search Range____________________________驗","utilityTools":"公共設施","graphicTools":"圖形工具","searchTools":"搜尋工具","displayImages":"顯示圖像","overlays":"疊加","superimposeSettings":"疊加設定","superimposeSliderTitle":"調整網格位置","superimposeSliderTooltip":"使用滑桿在近距離和遠距離範圍之間移動網格。","releaseCameraLock":"釋放相機鎖定","enableCameraLock":"啟用相機鎖定","superimposeView":"疊加視圖","superimposeImageDescription":"疊加視圖中的圖像"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"title":"導向的影像檢視器","currentFootprint":"目前覆蓋區","accuracy":"準確性","accuracyInformation":"準確度是使用導向的影像圖層服務中定義的方向準確度屬性所計算的。","additionalFootprints":"其他覆蓋區","additionalCameraLocations":"其他相機位置","basemap":"底圖","groundArea":"地面面積","groundDistance":"地面距離","imageAttributes":"圖片屬性","imageEnhancement":"圖片增強功能","videoEnhancement":"影片增強功能","imageGallery":"圖片庫","float":"浮點","dock":"固定","footprint":"覆蓋區","heightAboveGround":"高於地面的高度","groundLocation":"地面位置","noImageError":"沒有可供所選位置使用的圖片。","onLoadMessage":"在地圖上選擇位置以檢視影像。","imageLoadError":"載入圖像時出錯。","measurementTools":"圖像測量工具","measurementTable":"測量表","mapImageConversionTool":"地圖-圖像位置工具","brightness":"亮度","contrast":"對比","sharpness":"銳利度","navigationTool":"導航工具","noLocalPort":"未提供本機連接埠的值。 載入本機圖像需要本機連接埠。","noAttachment":"沒有可供所選位置使用的圖片或附件。","noImageAtElevation":"沒有可供所選高程使用的圖像。","currentFootprintTooltip":"切換顯示的圖像之覆蓋區的可見性。","additionalFootprintsTooltip":"切換包含感興趣位置的其他所有覆蓋區的可見性。","additionalCameraLocationsTooltip":"切換包含感興趣位置之圖像的其他所有相機位置的可見性。","navigationTooltip":"探索與感興趣位置相關的傳回圖像。","imageEnhancementTooltip":"調整圖像亮度、對比和銳度。","imageGalleryTooltip":"探索描繪感興趣位置的所有圖像的縮圖。","mapImageConversionTooltip":"按一下圖像即可查看該位置在地圖上的位置,反之亦然。","newMeasurement":"新測量","unsupportedPanoramicImageryError":"檢視器目前不支援視覺化 {datasetFormat} 360 度影像。","showPopups":"顯示彈出訊息","startMeasurement":"開啟測量","selectUnitSystem":"選擇單位系統","overlayCameraLocations":"疊加相機位置","overlayMapFeatures":"疊加地圖圖徵","imageOverlays":"圖像重疊","invalidCameraHeadingWarningTitle":"CameraHeading 無效","invalidCameraHeadingWarningDescription":"CameraHeading 值對於所選圖像無效。 所有使用 CameraHeading 值的導向的影像檢視器工具均已停用。 為屬性表中的欄位指派有效值以啟用工具。","createFeaturesFromImage":"從圖像建立圖徵","showAllFeatures":"顯示所有圖徵","showFeatures":"從圖像中顯示圖徵","decimalDegrees":"十進制度","value":"數值","xy":"XY","xyz":"XYZ (公尺)","xyzFeet":"XYZ (英尺)","x":"X","y":"Y","z":"Z","type":"類型","slope":"坡度","aspect":"部份","distance":"距離","horizontal":"水平對齊","vertical":"垂直","measurementViewerHeading":"三角測量 - 第二視圖","triangularMeasurementHeading":"三角測量","triangulatedDistanceHeading":"三角距離","triangulatedAreaHeading":"三角面積","triangulatedLocationHeading":"三角位置","configureImageNavigation":"配置圖像導航","configureNavigation":"配置導航","preserveHeading":"保留前進方向","preserveHeadingDescription":"導航到下一張圖像時保留相機前進方向。","preservePitch":"保留俯仰角度","preservePitchDescription":"導航到下一張圖像時保留相機俯仰角度。","boundingBoxSize":"週框方塊大小","thresholdLabel":"閾值 (+/-) 角度","noActiveViewerFound":"找不到作用中檢視器。 請載入圖像以啟用檢視器。","noImageLoaded":"未載入圖像。","selectImageForNavigation":"請選擇圖像以導覽。","noLayerSelected":"未選擇圖層。 請選擇導向的影像圖層以啟用檢視器。","navigationError":"導覽至圖像時發生以下錯誤: {error}。","imageNavigation":"圖像導覽","imageNavigationDescription":"選擇選項,按順序或按目前圖像視圖的任意方向在圖像之間導覽。","sequentialNavigation":"循序導航","sequentialNavigationDescription":"導覽到序列中的下一張圖像。","directionalNavigation":"定向導航","directionalNavigationDescription":"按照目前圖像視圖的相對方向導覽到下一張圖像。","previous":"上一頁","next":"下一步","start":"移至開頭","end":"移至結尾","skipForward":"向前跳","skipBackward":"向後跳","Play":"播放","Pause":"暫停","mute":"靜音","unmute":"取消靜音","featuresCapturedFromImage":"顯示從目前圖影擷取的所有圖徵。","noFeatureFoundWithObjectId":"無法顯示與提供的物件 ID {objectId} 關聯的圖像,因為找不到任何圖徵。","depthImageNotSupportedTitle":"不支援的深度圖像","depthImageNotSupportedDescription":"深度圖像僅支援 COG/MRF 格式。","sequentialNavigationWarning":"在要導覽的序列中找不到圖像。","dataCaptureSave":"已建立新圖徵。","dataCaptureDelete":"已刪除圖徵。","exploreImages":"探索圖像","exploreImages3D":"探索圖像 3D","utilityTools":"公共設施","graphicTools":"圖形工具","searchTools":"搜尋工具","displayImages":"顯示圖像","overlays":"疊加","superimposeSettings":"疊加設定","superimposeSliderTitle":"調整網格位置","superimposeSliderTooltip":"使用滑桿在近距離和遠距離範圍之間移動網格。","releaseCameraLock":"釋放相機鎖定","enableCameraLock":"啟用相機鎖定","superimposeView":"疊加視圖","superimposeImageDescription":"疊加視圖中的圖像"}
|
|
1
|
+
{"title":"導向的影像檢視器","currentFootprint":"目前覆蓋區","accuracy":"準確性","accuracyInformation":"準確度是使用導向的影像圖層服務中定義的方向準確度屬性所計算的。","additionalFootprints":"其他覆蓋區","additionalCameraLocations":"其他相機位置","basemap":"底圖","groundArea":"地面面積","groundDistance":"地面距離","imageAttributes":"圖片屬性","imageEnhancement":"圖片增強功能","videoEnhancement":"影片增強功能","imageGallery":"圖片庫","float":"浮點","dock":"固定","footprint":"覆蓋區","heightAboveGround":"高於地面的高度","groundLocation":"地面位置","noImageError":"沒有可供所選位置使用的圖片。","onLoadMessage":"在地圖上選擇位置以檢視影像。","imageLoadError":"載入圖像時出錯。","measurementTools":"圖像測量工具","measurementTable":"測量表","mapImageConversionTool":"地圖-圖像位置工具","brightness":"亮度","contrast":"對比","sharpness":"銳利度","navigationTool":"導航工具","noLocalPort":"未提供本機連接埠的值。 載入本機圖像需要本機連接埠。","noAttachment":"沒有可供所選位置使用的圖片或附件。","noImageAtElevation":"沒有可供所選高程使用的圖像。","currentFootprintTooltip":"切換顯示的圖像之覆蓋區的可見性。","additionalFootprintsTooltip":"切換包含感興趣位置的其他所有覆蓋區的可見性。","additionalCameraLocationsTooltip":"切換包含感興趣位置之圖像的其他所有相機位置的可見性。","navigationTooltip":"探索與感興趣位置相關的傳回圖像。","imageEnhancementTooltip":"調整圖像亮度、對比和銳度。","imageGalleryTooltip":"探索描繪感興趣位置的所有圖像的縮圖。","mapImageConversionTooltip":"按一下圖像即可查看該位置在地圖上的位置,反之亦然。","newMeasurement":"新測量","unsupportedPanoramicImageryError":"檢視器目前不支援視覺化 {datasetFormat} 360 度影像。","showPopups":"顯示彈出訊息","startMeasurement":"開啟測量","selectUnitSystem":"選擇單位系統","overlayCameraLocations":"疊加相機位置","overlayMapFeatures":"疊加地圖圖徵","imageOverlays":"圖像重疊","invalidCameraHeadingWarningTitle":"CameraHeading 無效","invalidCameraHeadingWarningDescription":"CameraHeading 值對於所選圖像無效。 所有使用 CameraHeading 值的導向的影像檢視器工具均已停用。 為屬性表中的欄位指派有效值以啟用工具。","createFeaturesFromImage":"從圖像建立圖徵","showAllFeatures":"顯示所有圖徵","showFeatures":"從圖像中顯示圖徵","decimalDegrees":"十進制度","value":"數值","xy":"XY","xyz":"XYZ (公尺)","xyzFeet":"XYZ (英尺)","x":"X","y":"Y","z":"Z","type":"類型","slope":"坡度","aspect":"部份","distance":"距離","horizontal":"水平對齊","vertical":"垂直","measurementViewerHeading":"三角測量 - 第二視圖","triangularMeasurementHeading":"三角測量","triangulatedDistanceHeading":"三角距離","triangulatedAreaHeading":"三角面積","triangulatedLocationHeading":"三角位置","configureImageNavigation":"配置圖像導航","configureNavigation":"配置導航","preserveHeading":"保留前進方向","preserveHeadingDescription":"導航到下一張圖像時保留相機前進方向。","preservePitch":"保留俯仰角度","preservePitchDescription":"導航到下一張圖像時保留相機俯仰角度。","boundingBoxSize":"週框方塊大小","thresholdLabel":"閾值 (+/-) 角度","noActiveViewerFound":"找不到作用中檢視器。 請載入圖像以啟用檢視器。","noImageLoaded":"未載入圖像。","selectImageForNavigation":"請選擇圖像以導覽。","noLayerSelected":"未選擇圖層。 請選擇導向的影像圖層以啟用檢視器。","navigationError":"導覽至圖像時發生以下錯誤: {error}。","imageNavigation":"圖像導覽","imageNavigationDescription":"選擇選項,按順序或按目前圖像視圖的任意方向在圖像之間導覽。","sequentialNavigation":"循序導航","sequentialNavigationDescription":"導覽到序列中的下一張圖像。","directionalNavigation":"定向導航","directionalNavigationDescription":"按照目前圖像視圖的相對方向導覽到下一張圖像。","previous":"上一頁","next":"下一步","start":"移至開頭","end":"移至結尾","skipForward":"向前跳","skipBackward":"向後跳","Play":"播放","Pause":"暫停","mute":"靜音","unmute":"取消靜音","featuresCapturedFromImage":"顯示從目前圖影擷取的所有圖徵。","noFeatureFoundWithObjectId":"無法顯示與提供的物件 ID {objectId} 關聯的圖像,因為找不到任何圖徵。","depthImageNotSupportedTitle":"不支援的深度圖像","depthImageNotSupportedDescription":"深度圖像僅支援 COG/MRF 格式。","sequentialNavigationWarning":"在要導覽的序列中找不到圖像。","dataCaptureSave":"已建立新圖徵。","dataCaptureDelete":"已刪除圖徵。","exploreImages":"探索圖像","exploreImages3D":"探索圖像 3D","search3DFilters":"試_Configure search option________________________驗","verticalRange":"試_Enable Vertical Search Range_____________________________驗","frustumRange":"試_Enable Frustum Search Range____________________________驗","utilityTools":"公共設施","graphicTools":"圖形工具","searchTools":"搜尋工具","displayImages":"顯示圖像","overlays":"疊加","superimposeSettings":"疊加設定","superimposeSliderTitle":"調整網格位置","superimposeSliderTooltip":"使用滑桿在近距離和遠距離範圍之間移動網格。","releaseCameraLock":"釋放相機鎖定","enableCameraLock":"啟用相機鎖定","superimposeView":"疊加視圖","superimposeImageDescription":"疊加視圖中的圖像"}
|
|
@@ -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,a as r,k as i,t as a,l as o,f as s,m as c,n as l,h as u,d,g as f}from"./Geometry.js";import{G as p}from"./GeometryCursor.js";import{C as m,c as h,P as g,E as _,s as v}from"./Envelope.js";import{i as y,m as b,P as x,k as S,h as C,d as w,a as T}from"./Point2D.js";import{L as E,D,P as O,a as k,i as A,E as j,n as M}from"./MultiPathImpl.js";import{Envelope2D as N}from"./Envelope2D.js";import{T as P}from"./Transformation2D.js";import{c as F}from"./GeometryCleaner-CIE8Wfmb.js";import{a5 as I,J as L,ab as R}from"./UnitFactory.js";import{O as z}from"./OperatorSimplifyOGC.js";import{O as B}from"./OperatorGeneralize.js";function V(e){return e>=0?e>S?S:e:0}var H;(function(e){e[e.enumDummy=256]=`enumDummy`,e[e.enumLine=1]=`enumLine`,e[e.enumArc=2]=`enumArc`,e[e.enumMiter=8]=`enumMiter`,e[e.enumBevel=16]=`enumBevel`,e[e.enumJoinMask=26]=`enumJoinMask`,e[e.enumConnectionMask=27]=`enumConnectionMask`})(H||={});function U(e,t,n,r,i,a){return{m_from:e.clone(),m_to:t.clone(),m_center:n.clone(),m_next:i,m_type:r}}function W(e,t,n,r,i){return{m_from:e.clone(),m_to:t.clone(),m_next:n,m_type:4,m_center:new x}}class G extends p{m_parent;m_index=0;m_bufferedPolygon=null;m_mp;m_spatialReference;m_distance;m_densifyDist;m_x=0;m_y=0;m_miterLimit;m_joins;m_caps;m_maxVertexInCompleteCircle;m_progressTracker;constructor(e,t,n,r,i,a,o,s,c,l){super(),this.m_progressTracker=l,this.m_parent=e,this.m_mp=t,this.m_distance=n,this.m_spatialReference=r,this.m_densifyDist=s,this.m_maxVertexInCompleteCircle=c,this.m_joins=i,this.m_caps=a,this.m_miterLimit=o}next(){let e=new g;for(;;){if(this.m_index===this.m_mp.getPointCount())return null;if(this.m_caps===1)return this.m_index=this.m_mp.getPointCount(),new O({vd:this.m_mp.getDescription()});if(this.m_mp.getPointByVal(this.m_index,e),this.m_index++,!e.isEmpty())break}let t=!1;this.m_bufferedPolygon===null&&(this.m_x=e.getX(),this.m_y=e.getY(),this.m_bufferedPolygon=this.m_parent.buffer(e,this.m_distance,this.m_spatialReference,this.m_joins,this.m_caps,this.m_miterLimit,this.m_densifyDist,this.m_maxVertexInCompleteCircle),t=!0);let n;if(n=this.m_index<this.m_mp.getPointCount()?this.m_bufferedPolygon.clone():this.m_bufferedPolygon,!t){let t=new P,r=e.getX()-this.m_x,i=e.getY()-this.m_y;t.setShiftCoords(r,i),n.applyTransformation(t)}return v(n,0),n}getGeometryID(){return 0}getRank(){return 1}tock(){return!0}}class K extends p{m_polyline;m_currentPathIndex=0;constructor(e){super(),this.m_polyline=e}next(){if(!this.m_polyline)return null;let e=this.m_polyline.getImpl(),t=e.getPathCount();if(this.m_currentPathIndex<t){let t=this.m_currentPathIndex;if(this.m_currentPathIndex++,!e.isClosedPathInXYPlane(t)){let n=e.getXY(e.getPathEnd(t)-1);for(;this.m_currentPathIndex<e.getPathCount();){let t=e.getXY(e.getPathStart(this.m_currentPathIndex));if(e.isClosedPathInXYPlane(this.m_currentPathIndex)||!t.equals(n))break;n=e.getXY(e.getPathEnd(this.m_currentPathIndex)-1),this.m_currentPathIndex++}}if(t===0&&this.m_currentPathIndex===this.m_polyline.getPathCount()){let e=this.m_polyline;return this.m_polyline=null,e}let n=new k({vd:this.m_polyline.getDescription()});n.addPath(this.m_polyline,t,!0);for(let r=t+1;r<this.m_currentPathIndex;r++)n.addSegmentsFromPath(this.m_polyline,r,0,e.getSegmentCountPath(r),!1);return this.m_currentPathIndex===this.m_polyline.getPathCount()&&(this.m_polyline=null),n}return null}getGeometryID(){return 0}getRank(){return 1}tock(){return!0}}class q extends p{m_bufferer;m_geoms;m_geometry=null;m_index=0;m_bFilter;constructor(e,t,n){super(),this.m_bufferer=e,this.m_geoms=t,this.m_index=0,this.m_bFilter=n}next(){if(this.m_geometry===null&&(this.m_index=0,this.m_geometry=this.m_geoms.next(),!this.m_geometry))return null;let e=this.m_geometry.getImpl();if(this.m_index<e.getPathCount()){let e=this.m_index;return this.m_index++,this.m_bufferer.bufferPolylinePath(this.m_geometry,e,this.m_bFilter)}return this.m_geometry=null,this.next()}getGeometryID(){return 0}getRank(){return 1}tock(){return!0}}class J extends p{m_bufferer;m_index=0;constructor(e){super(),this.m_bufferer=e}next(){let e=this.m_bufferer.m_geometry;if(this.m_index<e.getPathCount()){let t=this.m_index,n=e.calculateRingArea2D(this.m_index);for(f(n>0),this.m_index++;this.m_index<e.getPathCount()&&!(e.calculateRingArea2D(this.m_index)>0);)this.m_index++;let r;return r=t===0&&this.m_index===e.getPathCount()?this.m_bufferer.bufferPolygonImpl(e,0,e.getPathCount()):this.m_bufferer.bufferPolygonImpl(e,t,this.m_index),r}return null}getGeometryID(){return 0}getRank(){return 1}tock(){return!0}}class Y{m_geometry=null;m_densificator;m_bufferCommands=[];m_originalGeomType=n.enumUnknown;m_progressTracker;m_maxVertexInCompleteCircle=-1;m_circleTemplateSize=-1;m_oldCircleTemplateSize=0;m_spatialReference=null;m_tolerance=new m(0,0);m_smallTolerance=new m(0,0);m_filterTolerance=0;m_densifyDist=-1;m_distance=NaN;m_absDistance=0;m_absDistanceReversed=0;m_dA=-1;m_miterLimit=4;m_joins=0;m_caps=0;m_bRoundBuffer=!0;m_bOutputLoops=!0;m_bFilter=!0;m_circleTemplate=[];m_leftStack=[];m_middleStack=[];m_helperLine1=new E;m_helperLine2=new E;m_helperArray=[];m_progressCounter=0;constructor(e){this.m_densificator=D.constructDefault(e),this.m_progressTracker=e}buffer(e,t,n,u,d,f,p,m){if(e||r(`Geometry.Bufferer.Impl.Buffer`),p<0&&r(`Geometry.Bufferer.Impl.Buffer`),i(e.getGeometryType())&&a(`Unsupported geometry type.`),e.isEmpty()||(this.m_joins=u,this.m_caps=d,this.m_bRoundBuffer=!1,this.m_miterLimit=f,this.m_originalGeomType=e.getGeometryType(),o(this.m_originalGeomType)?this.m_bRoundBuffer=this.m_joins===0:s(this.m_originalGeomType)?this.m_bRoundBuffer=this.m_caps===0:c(this.m_originalGeomType)&&(this.m_bRoundBuffer=this.m_joins===0&&this.m_caps===0),this.m_bFilter=this.m_bRoundBuffer,this.m_geometry=F(e),this.m_geometry.isEmpty()))return new O({vd:e.getDescription()});let g=new N;this.m_geometry.queryLooseEnvelope(g),t>0&&g.inflateCoords(t,t),this.m_tolerance=h(n,g,!0),this.m_smallTolerance=h(null,g,!0),m<=0&&(m=96),this.m_spatialReference=n,this.m_distance=t,this.m_absDistance=Math.abs(this.m_distance),this.m_absDistanceReversed=this.m_absDistance===0?0:1/this.m_absDistance,Number.isNaN(p)||p===0?p=this.m_absDistance*1e-5:p>this.m_absDistance*.5&&(p=this.m_absDistance*.5),m<12&&(m=12);let _=Math.abs(t)*(1-Math.cos(Math.PI/m));if(_>p)p=_;else if(t!==0){let e=Math.PI/Math.acos(1-p/Math.abs(t));e<m-1&&(m=Math.trunc(e),m<12&&(m=12,p=Math.abs(t)*(1-Math.cos(Math.PI/m))))}this.m_densifyDist=p,this.m_maxVertexInCompleteCircle=m,this.m_filterTolerance=this.m_bRoundBuffer?Math.min(this.m_smallTolerance.total(),this.m_densifyDist*.25):0,this.m_circleTemplateSize=this.calcN(),this.m_circleTemplateSize!==this.m_oldCircleTemplateSize&&(this.m_circleTemplate.length=0,this.m_oldCircleTemplateSize=this.m_circleTemplateSize),this.m_densifyDist>0&&l(this.m_geometry)&&(this.m_geometry=this.m_densificator.densifyEx(this.m_geometry,0,this.m_densifyDist,0,this.m_joins!==0,y()));let v=this.bufferImpl();return this.m_geometry=null,v}generateCircleTemplate(){if(this.m_circleTemplate.length)return;let e=this.m_circleTemplateSize,t=Math.trunc((e+3)/4),n=Math.PI*.5/t;this.m_dA=n,this.m_circleTemplate=b(x,t*4);let r=Math.cos(n),i=Math.sin(n),a=x.construct(0,1);for(let e=0;e<t;e++)this.m_circleTemplate[e+t*0].setCoords(a.y,-a.x),this.m_circleTemplate[e+t*1].setCoords(-a.x,-a.y),this.m_circleTemplate[e+t*2].setCoords(-a.y,a.x),this.m_circleTemplate[e+t*3].setCoords(a.x,a.y),a.rotateReverse(r,i)}bufferImpl(){let e=this.m_geometry.getGeometryType();if(u(e)){let e=new k({vd:this.m_geometry.getDescription()});return e.addSegment(this.m_geometry,!0),this.m_geometry=e,this.bufferImpl()}if(this.m_distance<=this.m_tolerance.total()){if(o(e)){if(this.m_distance<0){let e=new N;if(this.m_geometry.queryEnvelope(e),e.width()<=this.m_absDistance*2||e.height()<=this.m_absDistance*2)return new O({vd:this.m_geometry.getDescription()})}}else return new O({vd:this.m_geometry.getDescription()})}switch(this.m_geometry.getGeometryType()){case n.enumPoint:return this.bufferPoint();case n.enumMultiPoint:return this.bufferMultiPoint();case n.enumPolyline:return this.bufferPolyline();case n.enumPolygon:return this.bufferPolygon();case n.enumEnvelope:return this.bufferEnvelope();default:d(``)}}bufferPolyline(){if(this.isDegenerateGeometry(this.m_geometry)){let e=new g;this.m_geometry.getPointByVal(0,e);let t=new N;return this.m_geometry.queryEnvelope(t),e.setXY(t.getCenter()),this.bufferDegeneratePath(e,!0)}let e=this.m_geometry,t=this.m_geometry.getDescription();this.m_geometry=null;let n=new K(e),r;r=this.m_joins===0?new B().executeMany(n,this.m_densifyDist*.25,!1,this.m_progressTracker):n;let i;i=this.m_bRoundBuffer?new z().executeMany(r,null,!0,this.m_progressTracker):r;let a=new q(this,i,this.m_bFilter),o=new I().executeMany(a,this.m_spatialReference,this.m_progressTracker,2),s=new L().executeMany(o,this.m_spatialReference,!1,this.m_progressTracker).next();return s===null?new O({vd:t}):s}bufferPolygon(){if(this.m_distance===0)return this.m_geometry;this.generateCircleTemplate();let e=new L().execute(this.m_geometry,null,!1,this.m_progressTracker);if(this.m_distance<0){if(this.m_geometry=e,this.m_geometry.isEmpty())return this.m_geometry;let t=this.m_geometry,n=this.bufferPolygonImpl(t,0,t.getPathCount());return new L().execute(n,this.m_spatialReference,!1,this.m_progressTracker)}{if(this.m_geometry=e,this.isDegenerateGeometry(this.m_geometry)){let e=new g;this.m_geometry.getPointByVal(0,e);let t=new N;return this.m_geometry.queryEnvelope(t),e.setXY(t.getCenter()),this.bufferDegeneratePath(e,!0)}let t=new J(this),n=new I().executeMany(t,this.m_spatialReference,this.m_progressTracker,2),r=new L().executeMany(n,this.m_spatialReference,!1,this.m_progressTracker).next();return r===null?new O({vd:this.m_geometry.getDescription()}):r}}bufferPolygonImpl(e,t,n){let r=e,i=r.getImpl(),a=new O({vd:e.getDescription()});for(let o=t;o<n;o++){if(i.getPathSize(o)<1)continue;let t=i.calculateRingArea2D(o),n=new N;if(i.queryPathEnvelope(o,n),this.m_distance>0){if(t>0){if(this.isDegeneratePath(i,o)){let e=new g;i.getPointByVal(i.getPathStart(o),e),e.setXY(n.getCenter()),a.add(this.bufferDegeneratePath(e,!0),!1)}else{let t=new k({vd:e.getDescription()}),n=t.getImpl();if(A(this.m_geometry,o)){let e=this.bufferConvexPath(r,o);a.add(e,!1)}else{this.bufferClosedPath(this.m_geometry,o,n,this.m_bRoundBuffer,1);let e=this.bufferCleanup(t);a.add(e,!1)}}}else{if(n.width()+this.m_tolerance.total()<=2*this.m_absDistance||n.height()+this.m_tolerance.total()<=2*this.m_absDistance)continue;let t=new k({vd:e.getDescription()}),r=t.getImpl();if(this.bufferClosedPath(this.m_geometry,o,r,this.m_bRoundBuffer,1),!t.isEmpty()){let e=n,i=Math.max(1,this.m_absDistance),o=e.clone();o.inflateCoords(i,i),r.addEnvelope(o,!1);let s=this.bufferCleanup(t);a.reserve(a.getPointCount()+s.getPointCount()-4),$(s,a,o,!0)}}}else if(t>0){if(n.width()+this.m_tolerance.total()<=2*this.m_absDistance||n.height()+this.m_tolerance.total()<=2*this.m_absDistance)continue;let t=new k({vd:e.getDescription()}),r=t.getImpl();if(this.bufferClosedPath(this.m_geometry,o,r,this.m_bRoundBuffer,-1),!t.isEmpty()){let e=new N;r.queryLooseEnvelope(e);let n=Math.max(1,this.m_absDistance),i=e.clone();i.inflateCoords(n,n),r.addEnvelope(i,!1),$(this.bufferCleanup(t),a,i,!0)}}else{let t=new k({vd:e.getDescription()}),n=t.getImpl();this.bufferClosedPath(this.m_geometry,o,n,this.m_bRoundBuffer,-1);let r=this.bufferCleanup(t);for(let e=0,t=r.getPathCount();e<t;e++)a.addPath(r,e,!0)}}if(this.m_distance>0)return a.getPathCount()>1?this.bufferCleanup(a):X(a);{let e=new N;if(a.queryLooseEnvelope(e),a.isEmpty())return X(a);{let t=Math.max(1,this.m_absDistance),n=e.clone();n.inflateCoords(t,t),a.addEnvelope(n,!1);let r=this.bufferCleanup(a);a=new O;let i=new O({vd:r.getDescription()});return $(r,i,n,!1),X(i)}}}bufferPoint(){return this.bufferPointImpl(this.m_geometry)}bufferPointImpl(e){let t=new O({vd:e.getDescription()});return this.m_caps===0?(this.addCircle(t.getImpl(),e),this.setStrongSimple(t)):this.m_caps===2?(this.addSquare(t.getImpl(),e),this.setStrongSimple(t)):t}bufferDegeneratePath(e,t){let n=new O({vd:e.getDescription()});return t&&this.m_joins===0||!t&&this.m_caps===0?(this.addCircle(n.getImpl(),e),this.setStrongSimple(n)):!t&&this.m_caps===2?(this.addSquare(n.getImpl(),e),this.setStrongSimple(n)):n}bufferMultiPoint(){let e=new G(this,this.m_geometry,this.m_distance,this.m_spatialReference,this.m_joins,this.m_caps,this.m_miterLimit,this.m_densifyDist,this.m_maxVertexInCompleteCircle,this.m_progressTracker);return new I().executeMany(e,this.m_spatialReference,this.m_progressTracker,2).next()}bufferEnvelope(){let e=new O({vd:this.m_geometry.getDescription()});if(this.m_distance<=0){if(this.m_distance===0)e.addEnvelope(this.m_geometry,!1),Z(this.m_geometry,this.m_tolerance.total())&&(e=this.setStrongSimple(e));else{let t=new _;this.m_geometry.queryEnvelope(t),t.inflateCoords(this.m_distance,this.m_distance),e.addEnvelope(t,!1),Z(t,this.m_tolerance.total())&&(e=this.setStrongSimple(e))}return e}if(this.m_joins===1){let t=new _({copy:this.m_geometry});return t.inflateCoords(this.m_absDistance,this.m_absDistance),e.addEnvelope(t,!1),e}let t=this.m_geometry.clone();if(t.width()===0||t.height()===0){if(t.width()===0&&t.height()===0){let e=new g({vd:this.m_geometry.getDescription()});return t.queryCornerByVal(0,e),this.m_geometry=e,this.bufferImpl()}let e=new k({vd:this.m_geometry.getDescription()}),n=new g;return t.queryCornerByVal(0,n),e.startPathPoint(n),t.queryCornerByVal(2,n),e.lineToPoint(n),this.m_geometry=e,this.bufferImpl()}return e.addEnvelope(this.m_geometry,!1),this.m_geometry=e,this.bufferConvexPath(e,0)}bufferConvexPath(e,t){this.generateCircleTemplate();let n=e.hasAttribute(10),r=new O({vd:e.getDescription()}),i=r.getImpl();r.reserve((this.m_circleTemplate.length/10+4)*e.getPathSize(t));let a=new x,o=new x,s=new x,c=new x(0,0),l=new x,u=new x,f=e.getImpl(),p=e.getPathSize(t),m=e.getPathStart(t);for(let r=0,h=e.getPathSize(t);r<h;r++){let e=f.getXY(m+r),t=f.getXY(m+(r+1)%p),h=f.getXY(m+(r+2)%p);l.setSub(t,e),l.length()===0&&d(``);let g=n&&!!(f.getAttributeAsInt(10,(r+1)%p,0)&1);l.normalize();let _=l.clone();l.leftPerpendicularThis(),l.scale(this.m_absDistance),a.setAdd(l,e),o.setAdd(l,t),r===0?i.startPath(a):i.lineTo(a),i.lineTo(o),u.setSub(h,t),u.length()===0&&d(``),u.normalize();let v=u.clone();u.leftPerpendicularThis(),u.scale(this.m_absDistance),s.setAdd(u,t);let y=H.enumArc,b=g?0:this.m_joins;if(b===2)y=H.enumBevel;else if(b===1){let e=-_.crossProduct(v);c.setSub(_,v),c.scale(this.m_absDistance/e),c.length()<this.m_miterLimit*this.m_absDistance?(c.addThis(t),y=H.enumMiter):y=H.enumBevel}else c.assign(t);this.addJoin(y,i,c,o,s,!1,!1)}return X(r)}bufferPolylinePath(e,t,n){this.generateCircleTemplate();let r=e,i=r.getImpl();if(i.getPathSize(t)<1)return null;let a;if(a=this.m_bRoundBuffer?i.isClosedPathInXYPlane(t):i.isClosedPath(t),this.isDegeneratePath(i,t)&&this.m_distance>0){let e=new g;i.getPointByVal(i.getPathStart(t),e);let n=new N;return i.queryPathEnvelope(t,n),e.setXY(n.getCenter()),this.bufferDegeneratePath(e,a)}let o=new k({vd:e.getDescription()});o.reserve((Math.trunc(this.m_circleTemplate.length/10)+4)*i.getPathSize(t));let s=o.getImpl();return a?this.bufferClosedPath(r,t,s,n,1)!==2&&this.bufferClosedPath(r,t,s,n,-1):this.bufferOpenPath(r,t,s,n),this.bufferCleanup(o)}progress_(){}bufferCleanup(e,t=!1){let n=t?this.m_tolerance:this.m_smallTolerance;return R(e,n,!0,!t,-1,this.m_progressTracker,0,!1)}calcN(){if(this.m_densifyDist===0)return this.m_maxVertexInCompleteCircle;let e=1-this.m_densifyDist*Math.abs(this.m_absDistanceReversed),t=4;return t=e<-1?4:2*Math.PI/Math.acos(e)+.5,t<4?t=4:t>this.m_maxVertexInCompleteCircle&&(t=this.m_maxVertexInCompleteCircle),Math.trunc(t)}addJoin(e,t,n,r,i,a,o){if(this.generateCircleTemplate(),a&&=(t.startPath(r),!1),e===H.enumBevel){o&&t.lineTo(i);return}if(e===H.enumMiter){let e=n.clone();t.lineTo(e),o&&t.lineTo(i);return}let s=new x;s.setSub(r,n),s.scale(this.m_absDistanceReversed);let c=new x;c.setSub(i,n),c.scale(this.m_absDistanceReversed);let l=Math.atan2(s.y,s.x)/this.m_dA;l<0&&(l=this.m_circleTemplate.length+l),l=this.m_circleTemplate.length-l;let u=Math.atan2(c.y,c.x)/this.m_dA;u<0&&(u=this.m_circleTemplate.length+u),u=this.m_circleTemplate.length-u,u<l&&(u+=this.m_circleTemplate.length);let d=Math.trunc(u),f=Math.ceil(l),p=this.m_circleTemplate[f%this.m_circleTemplate.length].clone();p.scaleAddThis(this.m_absDistance,n);let m=this.m_tolerance.total()*10;p.sub(r).length()<m&&(f+=1),p=this.m_circleTemplate[d%this.m_circleTemplate.length].clone(),p.scaleAddThis(this.m_absDistance,n),p.sub(i).length()<m&&--d;let h=d-f;h++;for(let e=0,r=f%this.m_circleTemplate.length;e<h;e++,r=(r+1)%this.m_circleTemplate.length)p=this.m_circleTemplate[r].clone(),p.scaleAddThis(this.m_absDistance,n),t.lineTo(p),this.progress_();o&&t.lineTo(i)}bufferClosedPath(e,t,n,r,i){let a=new j,o=a.addPathFromMultiPath(e,t,!0);return this.bufferClosedPathImpl(a,o,n,r,i)}bufferClosedPathImpl(e,t,n,r,i){let a=e.getFirstVertex(e.getFirstPath(t)),o=new g;if(e.queryPoint(a,o),e.filterClosePoints(this.m_filterTolerance,!1,!1,!1,-1),e.getPointCount(t)<2)return i<0?0:(this.m_bRoundBuffer&&this.addCircle(n,o),2);f(e.getFirstPath(t)!==M),f(e.getFirstVertex(e.getFirstPath(t))!==M);let s=e.getXY(e.getFirstVertex(e.getFirstPath(t))),c=new P;if(c.setShift(s.negate()),e.applyTransformation(c),r){let r=ne(e,t,i,!0,this.m_absDistance,this.m_filterTolerance,this.m_densifyDist);if(f(r===1),e.getPointCount(t)<2)return i<0?0:(this.addCircle(n,o),2)}let l=this.m_joins!==0&&e.getVertexDescription().hasAttribute(10);this.m_bufferCommands.length=0;let u=e.getFirstPath(t),d=e.getFirstVertex(u),p=i===1?e.getPrevVertex(d):e.getNextVertex(d),m=i===1?e.getNextVertex(d):e.getPrevVertex(d),h=!0,_=new x,v=new x,y=new x,b=new x,S=new x,C=new x,w=new x,T=new x,E=this.m_absDistance,D=e.getPathSize(u),O=new x(0,0);for(let t=0;t<D;t++){v.assign(e.getXY(m)),h&&(_.assign(e.getXY(d)),y.assign(e.getXY(p)),C.setSub(_,y),C.normalize(),T.leftPerpendicularOther(C),T.scale(E),b.setAdd(T,_));let t=l&&!!(e.getAttributeAsDbl(10,d,0)&1);S.setSub(v,_),S.normalize(),w.leftPerpendicularOther(S),w.scale(E);let n=new x;n.setAdd(_,w);let r=C.crossProduct(S),a=C.dotProduct(S);if(r<0||a<0&&r<Math.abs(a)*2**-52*8){let e=!1,i=t?0:this.m_joins;if(i===1){let t=-r;O.setSub(C,S),O.scale(this.m_absDistance/t),O.length()<this.m_miterLimit*this.m_absDistance&&(O.addThis(_),e=!0),this.m_bufferCommands.push(U(b,n,O,e?H.enumMiter:H.enumBevel,this.m_bufferCommands.length+1))}else this.m_bufferCommands.push(U(b,n,_,i===0?H.enumArc:H.enumBevel,this.m_bufferCommands.length+1))}else b.equals(n)||(this.m_bufferCommands.push(W(b,_,this.m_bufferCommands.length+1)),this.m_bufferCommands.push(W(_,n,this.m_bufferCommands.length+1)));let o=new x;o.setAdd(v,w),this.m_bufferCommands.push(U(n,o,_,H.enumLine,this.m_bufferCommands.length+1)),b.setCoordsPoint2D(o),T.setCoordsPoint2D(w),y.setCoordsPoint2D(_),_.setCoordsPoint2D(v),C.setCoordsPoint2D(S),p=d,d=m,h=!1,m=i===1?e.getNextVertex(d):e.getPrevVertex(d)}return this.m_bufferCommands.at(-1).m_next=0,this.processBufferCommands(n),c.setShift(s),n.applyTransformationToPath(c,n.getPathCount()-1),1}bufferOpenPath(e,t,n,r){if(this.m_bRoundBuffer){let i=new k({vd:e.getDescription()});return i.addPath(e,t,!1),i.addSegmentsFromPath(e,t,0,e.getSegmentCountPath(t),!1),this.bufferClosedPath(i,0,n,r,1)}let i=0,a=new k({vd:e.getDescription()}),o=new x(0,0);{let r=new j,s=r.addPathFromMultiPath(e,t,!1),c=r.getFirstVertex(r.getFirstPath(s)),l=new g;if(r.queryPoint(c,l),o.assign(l.getXY()),r.filterClosePoints(0,!1,!1,!1,-1),r.getPointCount(s)<2)return this.m_bRoundBuffer&&this.addCircle(n,l),2;let u=r.getGeometry(r.getFirstGeometry());a.addPath(u,0,!1),i=a.getPointCount()-1,a.addSegmentsFromPath(u,0,0,u.getSegmentCountPath(0)-1,!1)}let s=new j,c=s.addPathFromMultiPath(a,0,!0);f(s.getFirstPath(c)!==M),f(s.getFirstVertex(s.getFirstPath(c))!==M);let l=new P;l.setShift(o.negate()),s.applyTransformation(l),this.m_bufferCommands.length=0;let u=s.getFirstPath(c),d=this.m_joins!==0&&s.getVertexDescription().hasAttribute(10),p=s.getFirstVertex(u),m=s.getPrevVertex(p),h=s.getNextVertex(p),_=!0,v=new x,y=new x,b=new x,S=new x,C=new x,w=new x,T=new x,E=new x,D=this.m_absDistance,O=s.getPathSize(u),A=new x(0,0);for(let e=0;e<O;e++){let t=!1;(e===0||e===i)&&(t=!0),y.assign(s.getXY(h)),_&&(v.assign(s.getXY(p)),b.assign(s.getXY(m)),w.setSub(v,b),w.normalize(),E.leftPerpendicularOther(w),E.scale(D),S.setAdd(E,v));let n=d&&!!(s.getAttributeAsDbl(10,p,0)&1);C.setSub(y,v),C.normalize(),T.leftPerpendicularOther(C),T.scale(D);let r=new x;r.setAdd(v,T);let a=w.crossProduct(C),o=w.dotProduct(C);if(a<0||o<0&&a<Math.abs(o)*2**-52*8){if(t){if(this.m_caps===0)this.m_bufferCommands.push(U(S,r,v,H.enumArc,this.m_bufferCommands.length+1));else if(this.m_caps===1)this.m_bufferCommands.push(U(S,r,v,H.enumLine,this.m_bufferCommands.length+1));else{let e=C.mul(this.m_absDistance).negate(),t=e.clone();e.addThis(S),t.addThis(r),this.m_bufferCommands.push(U(S,e,v,H.enumLine,this.m_bufferCommands.length+1)),this.m_bufferCommands.push(U(e,t,v,H.enumLine,this.m_bufferCommands.length+1)),this.m_bufferCommands.push(U(t,r,v,H.enumLine,this.m_bufferCommands.length+1))}}else{let e=!1,t=n?0:this.m_joins;if(t===1){let t=-a;A.setSub(w,C),A.scale(this.m_absDistance/t),A.length()<this.m_miterLimit*this.m_absDistance&&(A.addThis(v),e=!0),this.m_bufferCommands.push(U(S,r,A,e?H.enumMiter:H.enumBevel,this.m_bufferCommands.length+1))}else this.m_bufferCommands.push(U(S,r,v,t===0?H.enumArc:H.enumBevel,this.m_bufferCommands.length+1))}}else S.equals(r)||(this.m_bufferCommands.push(W(S,v,this.m_bufferCommands.length+1)),this.m_bufferCommands.push(W(v,r,this.m_bufferCommands.length+1)));let c=new x;c.setAdd(y,T),this.m_bufferCommands.push(U(r,c,v,H.enumLine,this.m_bufferCommands.length+1)),S.setCoordsPoint2D(c),E.setCoordsPoint2D(T),b.setCoordsPoint2D(v),v.setCoordsPoint2D(y),w.setCoordsPoint2D(C),m=p,p=h,_=!1,h=s.getNextVertex(p)}return this.m_bufferCommands.at(-1).m_next=0,this.processBufferCommands(n),l.setShift(o),n.applyTransformationToPath(l,n.getPathCount()-1),1}processBufferCommands(e){let t=this.cleanupBufferCommands(),n=!0,r=t+1;for(let i=t;r!==t;i=r){let t=this.m_bufferCommands[i];r=t.m_next===-1?(i+1)%this.m_bufferCommands.length:t.m_next,t.m_type&&(n&&=(e.startPath(t.m_from),!1),t.m_type&H.enumJoinMask?this.addJoin(t.m_type,e,t.m_center,t.m_from,t.m_to,!1,!0):e.lineTo(t.m_to))}}cleanupBufferCommands(){this.m_helperArray=b(x,9);let e=0;for(let t=0,n=this.m_bufferCommands.length;t<n;){let n=this.m_bufferCommands[t];if(n.m_type&H.enumConnectionMask){e=t;break}t=n.m_next}let t=e+1;for(let n=e;t!==e;n=t){let e=this.m_bufferCommands[n];t=e.m_next;let r=1,i=null;for(;t!==n&&(i=this.m_bufferCommands[t],!(i.m_type&H.enumConnectionMask));)t=i.m_next,r++;r!==1&&(e.m_type&i.m_type)===H.enumLine&&(this.m_helperLine1.setStartXY(e.m_from),this.m_helperLine1.setEndXY(e.m_to),this.m_helperLine2.setStartXY(i.m_from),this.m_helperLine2.setEndXY(i.m_to),this.m_helperLine1.intersect(this.m_helperLine2,this.m_helperArray,null,null,this.m_smallTolerance.total())===1&&(e.m_to.assign(this.m_helperArray[0]),i.m_from.assign(this.m_helperArray[0]),e.m_next=t))}return e}isDegeneratePath(e,t){if(e.getPathSize(t)===1)return!0;if(this.m_joins===0&&this.m_caps===0){let n=new N;if(e.queryPathEnvelope(t,n),Math.max(n.width(),n.height())<this.m_densifyDist*.5)return!0}return!1}isDegenerateGeometry(e){if(this.m_joins===0&&this.m_caps===0){let t=new N;if(e.queryEnvelope(t),Math.max(t.width(),t.height())<this.m_densifyDist*.5)return!0}return!1}addCircle(e,t){let n=t.getXY();if(this.m_circleTemplate.length!==0){let t=this.m_circleTemplate[0].clone();t.scaleAddThis(this.m_absDistance,n),e.startPath(t);for(let r=1,i=this.m_circleTemplate.length;r<i;r++)t=this.m_circleTemplate[r].clone(),t.scaleAddThis(this.m_absDistance,n),e.lineTo(t);return}let r=this.m_circleTemplateSize,i=Math.trunc((r+3)/4),a=Math.PI*.5/i;e.reserve(i*4);let o=Math.cos(a),s=Math.sin(a);for(let t=3;t>=0;t--){let r=x.construct(0,this.m_absDistance);switch(t){case 0:for(let t=0;t<i;t++)e.lineToCoords(r.x+n.x,r.y+n.y),r.rotateReverse(o,s);break;case 1:for(let t=0;t<i;t++)e.lineToCoords(-r.y+n.x,r.x+n.y),r.rotateReverse(o,s);break;case 2:for(let t=0;t<i;t++)e.lineToCoords(-r.x+n.x,-r.y+n.y),r.rotateReverse(o,s);break;default:e.startPathCoords(r.y+n.x,-r.x+n.y);for(let t=1;t<i;t++)r.rotateReverse(o,s),e.lineToCoords(r.y+n.x,-r.x+n.y)}this.progress_()}}addSquare(e,t){let n=new _({vd:t.getDescription()});n.setCoords(t.getX(),t.getY(),t.getX(),t.getY()),n.inflateCoords(this.m_absDistance,this.m_absDistance),e.addEnvelope(n,!1)}setStrongSimple(e){return e.getImpl().setIsSimple(4,this.m_tolerance.total()),e.getImpl().updateOGCFlagsProtected(),e}}function X(e){return v(e,0),e}function Z(e,t){return e.isEmpty()?!0:Math.min(e.width(),e.height())>t}function Q(e,t,n,r,i,a,o,s){let c=e.getXY(n),l=e.getXY(r);if(c.equals(l))return-1;let u=o*.25,d=o*.25,p=new x;p.setSub(l,c);let m=p.length(),h=m*m*.25,g=a*a-h;if(g<=h)return-1;let _=Math.sqrt(g);p.normalize();let v=p.clone();v.rightPerpendicularThis();let y=h/_,b=y<=d,S=x.lerp(l,c,.5),C=v.clone(),E=y-u;C.scaleAddThis(Math.max(0,E),S),v.negate().scaleAddThis(_,S);let D=a-d,O=T(D)*3.61,k=C.sub(c),A=C.sub(l),j=!1,M=0,N=w(64,0);f(s===N.length);{for(let a=e.getPrevVertexEx(r,i);a!==n;){if(e.getUserIndex(a,t)===1)return-1;if(e.getXY(a).equals(l)){let t=e.getPrevVertexEx(a,i);e.removeVertex(a,!1),a=t;continue}break}let a=new x,o=c.clone();N[M++]=1;for(let s=e.getNextVertexEx(n,i);s!==r;){if(e.getUserIndex(s,t)===1)return-1;let n=e.getXY(s);if(n.equals(o)){let t=e.getNextVertexEx(s,i);e.removeVertex(s,!1),s=t;continue}N[M++]=0;let r=new x;if(r.setSub(n,c),r.dotProduct(v)<0)return 0;(x.sqrDistance(n,c)>O||x.sqrDistance(n,l)>O)&&(j=!0);let u=0;if(n.sub(c).crossProduct(k)>=0&&(u=1),n.sub(l).crossProduct(A)<=0&&(u|=2),u===0)return 0;N[M-1]=u,a.assign(o),o.assign(n),s=e.getNextVertexEx(s,i)}if(M===1)return 0;f(M<N.length),N[M++]=2}let P=!0;for(let e=1,t=0;e<M;e++)if(N[e]!==N[e-1]&&(t++,P=t<3&&(t===1&&N[e]===3||t===2&&N[e]===2),!P))return 0;if(M>2&&P&&(M===3||!j)){let t=0,a=e.getNextVertexEx(n,i);for(b||(e.setXY(a,C),a=e.getNextVertexEx(a,i));a!==r;){let n=e.getNextVertexEx(a,i);e.removeVertex(a,!1),a=n,++t}return t}if(f(M!==3),j&&M>3)return 0;let F=c.clone(),I=n,L=c.clone(),R=1,z=-1,B=I,V=0;for(M=1;B!==r;){B=e.getNextVertexEx(B,i);let t=N[M++];if(t===0){if(B===r)break;continue}let n=e.getXY(B);if(z!==-1){if(z&R&t&3){e.removeVertex(I,!0),V++,I=B,L.setCoordsPoint2D(n),R=t;continue}if(R===3&&z!==0&&t!==0){if(L.setCoordsPoint2D(C),b||L.equals(F)){e.removeVertex(I,!0),V++,I=B,L.setCoordsPoint2D(n),R=t;continue}e.setXY(I,L)}}z=R,F.setCoordsPoint2D(L),I=B,R=t,L.setCoordsPoint2D(n)}return V}function ee(e,t,n,r){let i=-1,a=new x,o=new x,s=new x;for(let n=0,c=e.getPathSize(r),l=e.getFirstVertex(r);n<c;++n){i===-1&&(e.queryXY(l,o),i=e.getPrevVertex(l),i!==-1&&(e.queryXY(i,a),s.setSub(o,a),s.normalize()));let n=e.getNextVertex(l);if(n===-1)break;let r=e.getXY(n),c=r.sub(o);c.normalize(),i!==-1&&c.dotProduct(s)<-.99&&Math.abs(c.crossProduct(s))<1e-7&&e.setUserIndex(l,t,1),i=l,l=n,a.assign(o),o.assign(r),s.assign(c)}}function te(n,r,i,a,o,s,c){let l={stack:[],error:void 0,hasError:!1};try{let t=n.getFirstPath(r),a=n.createUserIndex();e(l,C(()=>{n.removeUserIndex(a)},!1),!1),ee(n,a,r,t);for(let e=0;e<100;++e){if(n.getPathSize(t)===0)return 1;let e=n.getFirstVertex(t),r=n.getPathSize(t);if(r<3)return 1;n.isClosedPath(t)||--r;let s=0,l=!1;for(let t=0;t<r&&e!==M;t++){let u=0,d=e;for(let s=1,l=Math.min(64,r-t);s<l;s++)if(d=n.getNextVertexEx(d,i),s>1){let t=Q(n,a,e,d,i,o,c,64);if(t===-1)break;u+=t,r-=t}if(s+=u,l=u>0,l){let t=n.getPrevVertexEx(e,i);if(t!==-1){e=t,r++;continue}}e=n.getNextVertexEx(e,i)}if(s===0)break}return n.filterClosePoints(s,!1,!1,!1,-1),1}catch(e){l.error=e,l.hasError=!0}finally{t(l)}}function ne(e,t,n,r,i,a,o){return te(e,t,n,r,i,a,o)}function $(e,t,n,r){for(let i=0,a=e.getPathCount();i<a;i++){let a=e.getXY(e.getPathStart(i));a.x!==n.xmin&&a.x!==n.xmax&&t.addPath(e,i,r)}}export{Y as B,V as s};
|
|
2
|
+
import{__addDisposableResource as e,__disposeResources as t}from"tslib";import{G as n,b as r,k as i,a,l as o,f as s,m as c,n as l,h as u,d,g as f}from"./Geometry.js";import{G as p}from"./GeometryCursor.js";import{C as m,c as h,P as g,E as _,s as v}from"./Envelope.js";import{i as y,d as b,P as x,k as S,m as C,c as w,e as T}from"./Point2D.js";import{L as E,D,P as O,a as k,i as A,E as j,n as M}from"./MultiPathImpl.js";import{Envelope2D as N}from"./Envelope2D.js";import{T as P}from"./Transformation2D.js";import{c as F}from"./GeometryCleaner-CIE8Wfmb.js";import{a5 as I,J as L,ab as R}from"./UnitFactory.js";import{O as z}from"./OperatorSimplifyOGC.js";import{O as B}from"./OperatorGeneralize.js";function V(e){return e>=0?e>S?S:e:0}var H;(function(e){e[e.enumDummy=256]=`enumDummy`,e[e.enumLine=1]=`enumLine`,e[e.enumArc=2]=`enumArc`,e[e.enumMiter=8]=`enumMiter`,e[e.enumBevel=16]=`enumBevel`,e[e.enumJoinMask=26]=`enumJoinMask`,e[e.enumConnectionMask=27]=`enumConnectionMask`})(H||={});function U(e,t,n,r,i,a){return{m_from:e.clone(),m_to:t.clone(),m_center:n.clone(),m_next:i,m_type:r}}function W(e,t,n,r,i){return{m_from:e.clone(),m_to:t.clone(),m_next:n,m_type:4,m_center:new x}}class G extends p{m_parent;m_index=0;m_bufferedPolygon=null;m_mp;m_spatialReference;m_distance;m_densifyDist;m_x=0;m_y=0;m_miterLimit;m_joins;m_caps;m_maxVertexInCompleteCircle;m_progressTracker;constructor(e,t,n,r,i,a,o,s,c,l){super(),this.m_progressTracker=l,this.m_parent=e,this.m_mp=t,this.m_distance=n,this.m_spatialReference=r,this.m_densifyDist=s,this.m_maxVertexInCompleteCircle=c,this.m_joins=i,this.m_caps=a,this.m_miterLimit=o}next(){let e=new g;for(;;){if(this.m_index===this.m_mp.getPointCount())return null;if(this.m_caps===1)return this.m_index=this.m_mp.getPointCount(),new O({vd:this.m_mp.getDescription()});if(this.m_mp.getPointByVal(this.m_index,e),this.m_index++,!e.isEmpty())break}let t=!1;this.m_bufferedPolygon===null&&(this.m_x=e.getX(),this.m_y=e.getY(),this.m_bufferedPolygon=this.m_parent.buffer(e,this.m_distance,this.m_spatialReference,this.m_joins,this.m_caps,this.m_miterLimit,this.m_densifyDist,this.m_maxVertexInCompleteCircle),t=!0);let n;if(n=this.m_index<this.m_mp.getPointCount()?this.m_bufferedPolygon.clone():this.m_bufferedPolygon,!t){let t=new P,r=e.getX()-this.m_x,i=e.getY()-this.m_y;t.setShiftCoords(r,i),n.applyTransformation(t)}return v(n,0),n}getGeometryID(){return 0}getRank(){return 1}tock(){return!0}}class K extends p{m_polyline;m_currentPathIndex=0;constructor(e){super(),this.m_polyline=e}next(){if(!this.m_polyline)return null;let e=this.m_polyline.getImpl(),t=e.getPathCount();if(this.m_currentPathIndex<t){let t=this.m_currentPathIndex;if(this.m_currentPathIndex++,!e.isClosedPathInXYPlane(t)){let n=e.getXY(e.getPathEnd(t)-1);for(;this.m_currentPathIndex<e.getPathCount();){let t=e.getXY(e.getPathStart(this.m_currentPathIndex));if(e.isClosedPathInXYPlane(this.m_currentPathIndex)||!t.equals(n))break;n=e.getXY(e.getPathEnd(this.m_currentPathIndex)-1),this.m_currentPathIndex++}}if(t===0&&this.m_currentPathIndex===this.m_polyline.getPathCount()){let e=this.m_polyline;return this.m_polyline=null,e}let n=new k({vd:this.m_polyline.getDescription()});n.addPath(this.m_polyline,t,!0);for(let r=t+1;r<this.m_currentPathIndex;r++)n.addSegmentsFromPath(this.m_polyline,r,0,e.getSegmentCountPath(r),!1);return this.m_currentPathIndex===this.m_polyline.getPathCount()&&(this.m_polyline=null),n}return null}getGeometryID(){return 0}getRank(){return 1}tock(){return!0}}class q extends p{m_bufferer;m_geoms;m_geometry=null;m_index=0;m_bFilter;constructor(e,t,n){super(),this.m_bufferer=e,this.m_geoms=t,this.m_index=0,this.m_bFilter=n}next(){if(this.m_geometry===null&&(this.m_index=0,this.m_geometry=this.m_geoms.next(),!this.m_geometry))return null;let e=this.m_geometry.getImpl();if(this.m_index<e.getPathCount()){let e=this.m_index;return this.m_index++,this.m_bufferer.bufferPolylinePath(this.m_geometry,e,this.m_bFilter)}return this.m_geometry=null,this.next()}getGeometryID(){return 0}getRank(){return 1}tock(){return!0}}class J extends p{m_bufferer;m_index=0;constructor(e){super(),this.m_bufferer=e}next(){let e=this.m_bufferer.m_geometry;if(this.m_index<e.getPathCount()){let t=this.m_index,n=e.calculateRingArea2D(this.m_index);for(f(n>0),this.m_index++;this.m_index<e.getPathCount()&&!(e.calculateRingArea2D(this.m_index)>0);)this.m_index++;let r;return r=t===0&&this.m_index===e.getPathCount()?this.m_bufferer.bufferPolygonImpl(e,0,e.getPathCount()):this.m_bufferer.bufferPolygonImpl(e,t,this.m_index),r}return null}getGeometryID(){return 0}getRank(){return 1}tock(){return!0}}class Y{m_geometry=null;m_densificator;m_bufferCommands=[];m_originalGeomType=n.enumUnknown;m_progressTracker;m_maxVertexInCompleteCircle=-1;m_circleTemplateSize=-1;m_oldCircleTemplateSize=0;m_spatialReference=null;m_tolerance=new m(0,0);m_smallTolerance=new m(0,0);m_filterTolerance=0;m_densifyDist=-1;m_distance=NaN;m_absDistance=0;m_absDistanceReversed=0;m_dA=-1;m_miterLimit=4;m_joins=0;m_caps=0;m_bRoundBuffer=!0;m_bOutputLoops=!0;m_bFilter=!0;m_circleTemplate=[];m_leftStack=[];m_middleStack=[];m_helperLine1=new E;m_helperLine2=new E;m_helperArray=[];m_progressCounter=0;constructor(e){this.m_densificator=D.constructDefault(e),this.m_progressTracker=e}buffer(e,t,n,u,d,f,p,m){if(e||r(`Geometry.Bufferer.Impl.Buffer`),p<0&&r(`Geometry.Bufferer.Impl.Buffer`),i(e.getGeometryType())&&a(`Unsupported geometry type.`),e.isEmpty()||(this.m_joins=u,this.m_caps=d,this.m_bRoundBuffer=!1,this.m_miterLimit=f,this.m_originalGeomType=e.getGeometryType(),o(this.m_originalGeomType)?this.m_bRoundBuffer=this.m_joins===0:s(this.m_originalGeomType)?this.m_bRoundBuffer=this.m_caps===0:c(this.m_originalGeomType)&&(this.m_bRoundBuffer=this.m_joins===0&&this.m_caps===0),this.m_bFilter=this.m_bRoundBuffer,this.m_geometry=F(e),this.m_geometry.isEmpty()))return new O({vd:e.getDescription()});let g=new N;this.m_geometry.queryLooseEnvelope(g),t>0&&g.inflateCoords(t,t),this.m_tolerance=h(n,g,!0),this.m_smallTolerance=h(null,g,!0),m<=0&&(m=96),this.m_spatialReference=n,this.m_distance=t,this.m_absDistance=Math.abs(this.m_distance),this.m_absDistanceReversed=this.m_absDistance===0?0:1/this.m_absDistance,Number.isNaN(p)||p===0?p=this.m_absDistance*1e-5:p>this.m_absDistance*.5&&(p=this.m_absDistance*.5),m<12&&(m=12);let _=Math.abs(t)*(1-Math.cos(Math.PI/m));if(_>p)p=_;else if(t!==0){let e=Math.PI/Math.acos(1-p/Math.abs(t));e<m-1&&(m=Math.trunc(e),m<12&&(m=12,p=Math.abs(t)*(1-Math.cos(Math.PI/m))))}this.m_densifyDist=p,this.m_maxVertexInCompleteCircle=m,this.m_filterTolerance=this.m_bRoundBuffer?Math.min(this.m_smallTolerance.total(),this.m_densifyDist*.25):0,this.m_circleTemplateSize=this.calcN(),this.m_circleTemplateSize!==this.m_oldCircleTemplateSize&&(this.m_circleTemplate.length=0,this.m_oldCircleTemplateSize=this.m_circleTemplateSize),this.m_densifyDist>0&&l(this.m_geometry)&&(this.m_geometry=this.m_densificator.densifyEx(this.m_geometry,0,this.m_densifyDist,0,this.m_joins!==0,y()));let v=this.bufferImpl();return this.m_geometry=null,v}generateCircleTemplate(){if(this.m_circleTemplate.length)return;let e=this.m_circleTemplateSize,t=Math.trunc((e+3)/4),n=Math.PI*.5/t;this.m_dA=n,this.m_circleTemplate=b(x,t*4);let r=Math.cos(n),i=Math.sin(n),a=x.construct(0,1);for(let e=0;e<t;e++)this.m_circleTemplate[e+t*0].setCoords(a.y,-a.x),this.m_circleTemplate[e+t*1].setCoords(-a.x,-a.y),this.m_circleTemplate[e+t*2].setCoords(-a.y,a.x),this.m_circleTemplate[e+t*3].setCoords(a.x,a.y),a.rotateReverse(r,i)}bufferImpl(){let e=this.m_geometry.getGeometryType();if(u(e)){let e=new k({vd:this.m_geometry.getDescription()});return e.addSegment(this.m_geometry,!0),this.m_geometry=e,this.bufferImpl()}if(this.m_distance<=this.m_tolerance.total()){if(o(e)){if(this.m_distance<0){let e=new N;if(this.m_geometry.queryEnvelope(e),e.width()<=this.m_absDistance*2||e.height()<=this.m_absDistance*2)return new O({vd:this.m_geometry.getDescription()})}}else return new O({vd:this.m_geometry.getDescription()})}switch(this.m_geometry.getGeometryType()){case n.enumPoint:return this.bufferPoint();case n.enumMultiPoint:return this.bufferMultiPoint();case n.enumPolyline:return this.bufferPolyline();case n.enumPolygon:return this.bufferPolygon();case n.enumEnvelope:return this.bufferEnvelope();default:d(``)}}bufferPolyline(){if(this.isDegenerateGeometry(this.m_geometry)){let e=new g;this.m_geometry.getPointByVal(0,e);let t=new N;return this.m_geometry.queryEnvelope(t),e.setXY(t.getCenter()),this.bufferDegeneratePath(e,!0)}let e=this.m_geometry,t=this.m_geometry.getDescription();this.m_geometry=null;let n=new K(e),r;r=this.m_joins===0?new B().executeMany(n,this.m_densifyDist*.25,!1,this.m_progressTracker):n;let i;i=this.m_bRoundBuffer?new z().executeMany(r,null,!0,this.m_progressTracker):r;let a=new q(this,i,this.m_bFilter),o=new I().executeMany(a,this.m_spatialReference,this.m_progressTracker,2),s=new L().executeMany(o,this.m_spatialReference,!1,this.m_progressTracker).next();return s===null?new O({vd:t}):s}bufferPolygon(){if(this.m_distance===0)return this.m_geometry;this.generateCircleTemplate();let e=new L().execute(this.m_geometry,null,!1,this.m_progressTracker);if(this.m_distance<0){if(this.m_geometry=e,this.m_geometry.isEmpty())return this.m_geometry;let t=this.m_geometry,n=this.bufferPolygonImpl(t,0,t.getPathCount());return new L().execute(n,this.m_spatialReference,!1,this.m_progressTracker)}{if(this.m_geometry=e,this.isDegenerateGeometry(this.m_geometry)){let e=new g;this.m_geometry.getPointByVal(0,e);let t=new N;return this.m_geometry.queryEnvelope(t),e.setXY(t.getCenter()),this.bufferDegeneratePath(e,!0)}let t=new J(this),n=new I().executeMany(t,this.m_spatialReference,this.m_progressTracker,2),r=new L().executeMany(n,this.m_spatialReference,!1,this.m_progressTracker).next();return r===null?new O({vd:this.m_geometry.getDescription()}):r}}bufferPolygonImpl(e,t,n){let r=e,i=r.getImpl(),a=new O({vd:e.getDescription()});for(let o=t;o<n;o++){if(i.getPathSize(o)<1)continue;let t=i.calculateRingArea2D(o),n=new N;if(i.queryPathEnvelope(o,n),this.m_distance>0){if(t>0){if(this.isDegeneratePath(i,o)){let e=new g;i.getPointByVal(i.getPathStart(o),e),e.setXY(n.getCenter()),a.add(this.bufferDegeneratePath(e,!0),!1)}else{let t=new k({vd:e.getDescription()}),n=t.getImpl();if(A(this.m_geometry,o)){let e=this.bufferConvexPath(r,o);a.add(e,!1)}else{this.bufferClosedPath(this.m_geometry,o,n,this.m_bRoundBuffer,1);let e=this.bufferCleanup(t);a.add(e,!1)}}}else{if(n.width()+this.m_tolerance.total()<=2*this.m_absDistance||n.height()+this.m_tolerance.total()<=2*this.m_absDistance)continue;let t=new k({vd:e.getDescription()}),r=t.getImpl();if(this.bufferClosedPath(this.m_geometry,o,r,this.m_bRoundBuffer,1),!t.isEmpty()){let e=n,i=Math.max(1,this.m_absDistance),o=e.clone();o.inflateCoords(i,i),r.addEnvelope(o,!1);let s=this.bufferCleanup(t);a.reserve(a.getPointCount()+s.getPointCount()-4),$(s,a,o,!0)}}}else if(t>0){if(n.width()+this.m_tolerance.total()<=2*this.m_absDistance||n.height()+this.m_tolerance.total()<=2*this.m_absDistance)continue;let t=new k({vd:e.getDescription()}),r=t.getImpl();if(this.bufferClosedPath(this.m_geometry,o,r,this.m_bRoundBuffer,-1),!t.isEmpty()){let e=new N;r.queryLooseEnvelope(e);let n=Math.max(1,this.m_absDistance),i=e.clone();i.inflateCoords(n,n),r.addEnvelope(i,!1),$(this.bufferCleanup(t),a,i,!0)}}else{let t=new k({vd:e.getDescription()}),n=t.getImpl();this.bufferClosedPath(this.m_geometry,o,n,this.m_bRoundBuffer,-1);let r=this.bufferCleanup(t);for(let e=0,t=r.getPathCount();e<t;e++)a.addPath(r,e,!0)}}if(this.m_distance>0)return a.getPathCount()>1?this.bufferCleanup(a):X(a);{let e=new N;if(a.queryLooseEnvelope(e),a.isEmpty())return X(a);{let t=Math.max(1,this.m_absDistance),n=e.clone();n.inflateCoords(t,t),a.addEnvelope(n,!1);let r=this.bufferCleanup(a);a=new O;let i=new O({vd:r.getDescription()});return $(r,i,n,!1),X(i)}}}bufferPoint(){return this.bufferPointImpl(this.m_geometry)}bufferPointImpl(e){let t=new O({vd:e.getDescription()});return this.m_caps===0?(this.addCircle(t.getImpl(),e),this.setStrongSimple(t)):this.m_caps===2?(this.addSquare(t.getImpl(),e),this.setStrongSimple(t)):t}bufferDegeneratePath(e,t){let n=new O({vd:e.getDescription()});return t&&this.m_joins===0||!t&&this.m_caps===0?(this.addCircle(n.getImpl(),e),this.setStrongSimple(n)):!t&&this.m_caps===2?(this.addSquare(n.getImpl(),e),this.setStrongSimple(n)):n}bufferMultiPoint(){let e=new G(this,this.m_geometry,this.m_distance,this.m_spatialReference,this.m_joins,this.m_caps,this.m_miterLimit,this.m_densifyDist,this.m_maxVertexInCompleteCircle,this.m_progressTracker);return new I().executeMany(e,this.m_spatialReference,this.m_progressTracker,2).next()}bufferEnvelope(){let e=new O({vd:this.m_geometry.getDescription()});if(this.m_distance<=0){if(this.m_distance===0)e.addEnvelope(this.m_geometry,!1),Z(this.m_geometry,this.m_tolerance.total())&&(e=this.setStrongSimple(e));else{let t=new _;this.m_geometry.queryEnvelope(t),t.inflateCoords(this.m_distance,this.m_distance),e.addEnvelope(t,!1),Z(t,this.m_tolerance.total())&&(e=this.setStrongSimple(e))}return e}if(this.m_joins===1){let t=new _({copy:this.m_geometry});return t.inflateCoords(this.m_absDistance,this.m_absDistance),e.addEnvelope(t,!1),e}let t=this.m_geometry.clone();if(t.width()===0||t.height()===0){if(t.width()===0&&t.height()===0){let e=new g({vd:this.m_geometry.getDescription()});return t.queryCornerByVal(0,e),this.m_geometry=e,this.bufferImpl()}let e=new k({vd:this.m_geometry.getDescription()}),n=new g;return t.queryCornerByVal(0,n),e.startPathPoint(n),t.queryCornerByVal(2,n),e.lineToPoint(n),this.m_geometry=e,this.bufferImpl()}return e.addEnvelope(this.m_geometry,!1),this.m_geometry=e,this.bufferConvexPath(e,0)}bufferConvexPath(e,t){this.generateCircleTemplate();let n=e.hasAttribute(10),r=new O({vd:e.getDescription()}),i=r.getImpl();r.reserve((this.m_circleTemplate.length/10+4)*e.getPathSize(t));let a=new x,o=new x,s=new x,c=new x(0,0),l=new x,u=new x,f=e.getImpl(),p=e.getPathSize(t),m=e.getPathStart(t);for(let r=0,h=e.getPathSize(t);r<h;r++){let e=f.getXY(m+r),t=f.getXY(m+(r+1)%p),h=f.getXY(m+(r+2)%p);l.setSub(t,e),l.length()===0&&d(``);let g=n&&!!(f.getAttributeAsInt(10,(r+1)%p,0)&1);l.normalize();let _=l.clone();l.leftPerpendicularThis(),l.scale(this.m_absDistance),a.setAdd(l,e),o.setAdd(l,t),r===0?i.startPath(a):i.lineTo(a),i.lineTo(o),u.setSub(h,t),u.length()===0&&d(``),u.normalize();let v=u.clone();u.leftPerpendicularThis(),u.scale(this.m_absDistance),s.setAdd(u,t);let y=H.enumArc,b=g?0:this.m_joins;if(b===2)y=H.enumBevel;else if(b===1){let e=-_.crossProduct(v);c.setSub(_,v),c.scale(this.m_absDistance/e),c.length()<this.m_miterLimit*this.m_absDistance?(c.addThis(t),y=H.enumMiter):y=H.enumBevel}else c.assign(t);this.addJoin(y,i,c,o,s,!1,!1)}return X(r)}bufferPolylinePath(e,t,n){this.generateCircleTemplate();let r=e,i=r.getImpl();if(i.getPathSize(t)<1)return null;let a;if(a=this.m_bRoundBuffer?i.isClosedPathInXYPlane(t):i.isClosedPath(t),this.isDegeneratePath(i,t)&&this.m_distance>0){let e=new g;i.getPointByVal(i.getPathStart(t),e);let n=new N;return i.queryPathEnvelope(t,n),e.setXY(n.getCenter()),this.bufferDegeneratePath(e,a)}let o=new k({vd:e.getDescription()});o.reserve((Math.trunc(this.m_circleTemplate.length/10)+4)*i.getPathSize(t));let s=o.getImpl();return a?this.bufferClosedPath(r,t,s,n,1)!==2&&this.bufferClosedPath(r,t,s,n,-1):this.bufferOpenPath(r,t,s,n),this.bufferCleanup(o)}progress_(){}bufferCleanup(e,t=!1){let n=t?this.m_tolerance:this.m_smallTolerance;return R(e,n,!0,!t,-1,this.m_progressTracker,0,!1)}calcN(){if(this.m_densifyDist===0)return this.m_maxVertexInCompleteCircle;let e=1-this.m_densifyDist*Math.abs(this.m_absDistanceReversed),t=4;return t=e<-1?4:2*Math.PI/Math.acos(e)+.5,t<4?t=4:t>this.m_maxVertexInCompleteCircle&&(t=this.m_maxVertexInCompleteCircle),Math.trunc(t)}addJoin(e,t,n,r,i,a,o){if(this.generateCircleTemplate(),a&&=(t.startPath(r),!1),e===H.enumBevel){o&&t.lineTo(i);return}if(e===H.enumMiter){let e=n.clone();t.lineTo(e),o&&t.lineTo(i);return}let s=new x;s.setSub(r,n),s.scale(this.m_absDistanceReversed);let c=new x;c.setSub(i,n),c.scale(this.m_absDistanceReversed);let l=Math.atan2(s.y,s.x)/this.m_dA;l<0&&(l=this.m_circleTemplate.length+l),l=this.m_circleTemplate.length-l;let u=Math.atan2(c.y,c.x)/this.m_dA;u<0&&(u=this.m_circleTemplate.length+u),u=this.m_circleTemplate.length-u,u<l&&(u+=this.m_circleTemplate.length);let d=Math.trunc(u),f=Math.ceil(l),p=this.m_circleTemplate[f%this.m_circleTemplate.length].clone();p.scaleAddThis(this.m_absDistance,n);let m=this.m_tolerance.total()*10;p.sub(r).length()<m&&(f+=1),p=this.m_circleTemplate[d%this.m_circleTemplate.length].clone(),p.scaleAddThis(this.m_absDistance,n),p.sub(i).length()<m&&--d;let h=d-f;h++;for(let e=0,r=f%this.m_circleTemplate.length;e<h;e++,r=(r+1)%this.m_circleTemplate.length)p=this.m_circleTemplate[r].clone(),p.scaleAddThis(this.m_absDistance,n),t.lineTo(p),this.progress_();o&&t.lineTo(i)}bufferClosedPath(e,t,n,r,i){let a=new j,o=a.addPathFromMultiPath(e,t,!0);return this.bufferClosedPathImpl(a,o,n,r,i)}bufferClosedPathImpl(e,t,n,r,i){let a=e.getFirstVertex(e.getFirstPath(t)),o=new g;if(e.queryPoint(a,o),e.filterClosePoints(this.m_filterTolerance,!1,!1,!1,-1),e.getPointCount(t)<2)return i<0?0:(this.m_bRoundBuffer&&this.addCircle(n,o),2);f(e.getFirstPath(t)!==M),f(e.getFirstVertex(e.getFirstPath(t))!==M);let s=e.getXY(e.getFirstVertex(e.getFirstPath(t))),c=new P;if(c.setShift(s.negate()),e.applyTransformation(c),r){let r=ne(e,t,i,!0,this.m_absDistance,this.m_filterTolerance,this.m_densifyDist);if(f(r===1),e.getPointCount(t)<2)return i<0?0:(this.addCircle(n,o),2)}let l=this.m_joins!==0&&e.getVertexDescription().hasAttribute(10);this.m_bufferCommands.length=0;let u=e.getFirstPath(t),d=e.getFirstVertex(u),p=i===1?e.getPrevVertex(d):e.getNextVertex(d),m=i===1?e.getNextVertex(d):e.getPrevVertex(d),h=!0,_=new x,v=new x,y=new x,b=new x,S=new x,C=new x,w=new x,T=new x,E=this.m_absDistance,D=e.getPathSize(u),O=new x(0,0);for(let t=0;t<D;t++){v.assign(e.getXY(m)),h&&(_.assign(e.getXY(d)),y.assign(e.getXY(p)),C.setSub(_,y),C.normalize(),T.leftPerpendicularOther(C),T.scale(E),b.setAdd(T,_));let t=l&&!!(e.getAttributeAsDbl(10,d,0)&1);S.setSub(v,_),S.normalize(),w.leftPerpendicularOther(S),w.scale(E);let n=new x;n.setAdd(_,w);let r=C.crossProduct(S),a=C.dotProduct(S);if(r<0||a<0&&r<Math.abs(a)*2**-52*8){let e=!1,i=t?0:this.m_joins;if(i===1){let t=-r;O.setSub(C,S),O.scale(this.m_absDistance/t),O.length()<this.m_miterLimit*this.m_absDistance&&(O.addThis(_),e=!0),this.m_bufferCommands.push(U(b,n,O,e?H.enumMiter:H.enumBevel,this.m_bufferCommands.length+1))}else this.m_bufferCommands.push(U(b,n,_,i===0?H.enumArc:H.enumBevel,this.m_bufferCommands.length+1))}else b.equals(n)||(this.m_bufferCommands.push(W(b,_,this.m_bufferCommands.length+1)),this.m_bufferCommands.push(W(_,n,this.m_bufferCommands.length+1)));let o=new x;o.setAdd(v,w),this.m_bufferCommands.push(U(n,o,_,H.enumLine,this.m_bufferCommands.length+1)),b.setCoordsPoint2D(o),T.setCoordsPoint2D(w),y.setCoordsPoint2D(_),_.setCoordsPoint2D(v),C.setCoordsPoint2D(S),p=d,d=m,h=!1,m=i===1?e.getNextVertex(d):e.getPrevVertex(d)}return this.m_bufferCommands.at(-1).m_next=0,this.processBufferCommands(n),c.setShift(s),n.applyTransformationToPath(c,n.getPathCount()-1),1}bufferOpenPath(e,t,n,r){if(this.m_bRoundBuffer){let i=new k({vd:e.getDescription()});return i.addPath(e,t,!1),i.addSegmentsFromPath(e,t,0,e.getSegmentCountPath(t),!1),this.bufferClosedPath(i,0,n,r,1)}let i=0,a=new k({vd:e.getDescription()}),o=new x(0,0);{let r=new j,s=r.addPathFromMultiPath(e,t,!1),c=r.getFirstVertex(r.getFirstPath(s)),l=new g;if(r.queryPoint(c,l),o.assign(l.getXY()),r.filterClosePoints(0,!1,!1,!1,-1),r.getPointCount(s)<2)return this.m_bRoundBuffer&&this.addCircle(n,l),2;let u=r.getGeometry(r.getFirstGeometry());a.addPath(u,0,!1),i=a.getPointCount()-1,a.addSegmentsFromPath(u,0,0,u.getSegmentCountPath(0)-1,!1)}let s=new j,c=s.addPathFromMultiPath(a,0,!0);f(s.getFirstPath(c)!==M),f(s.getFirstVertex(s.getFirstPath(c))!==M);let l=new P;l.setShift(o.negate()),s.applyTransformation(l),this.m_bufferCommands.length=0;let u=s.getFirstPath(c),d=this.m_joins!==0&&s.getVertexDescription().hasAttribute(10),p=s.getFirstVertex(u),m=s.getPrevVertex(p),h=s.getNextVertex(p),_=!0,v=new x,y=new x,b=new x,S=new x,C=new x,w=new x,T=new x,E=new x,D=this.m_absDistance,O=s.getPathSize(u),A=new x(0,0);for(let e=0;e<O;e++){let t=!1;(e===0||e===i)&&(t=!0),y.assign(s.getXY(h)),_&&(v.assign(s.getXY(p)),b.assign(s.getXY(m)),w.setSub(v,b),w.normalize(),E.leftPerpendicularOther(w),E.scale(D),S.setAdd(E,v));let n=d&&!!(s.getAttributeAsDbl(10,p,0)&1);C.setSub(y,v),C.normalize(),T.leftPerpendicularOther(C),T.scale(D);let r=new x;r.setAdd(v,T);let a=w.crossProduct(C),o=w.dotProduct(C);if(a<0||o<0&&a<Math.abs(o)*2**-52*8){if(t){if(this.m_caps===0)this.m_bufferCommands.push(U(S,r,v,H.enumArc,this.m_bufferCommands.length+1));else if(this.m_caps===1)this.m_bufferCommands.push(U(S,r,v,H.enumLine,this.m_bufferCommands.length+1));else{let e=C.mul(this.m_absDistance).negate(),t=e.clone();e.addThis(S),t.addThis(r),this.m_bufferCommands.push(U(S,e,v,H.enumLine,this.m_bufferCommands.length+1)),this.m_bufferCommands.push(U(e,t,v,H.enumLine,this.m_bufferCommands.length+1)),this.m_bufferCommands.push(U(t,r,v,H.enumLine,this.m_bufferCommands.length+1))}}else{let e=!1,t=n?0:this.m_joins;if(t===1){let t=-a;A.setSub(w,C),A.scale(this.m_absDistance/t),A.length()<this.m_miterLimit*this.m_absDistance&&(A.addThis(v),e=!0),this.m_bufferCommands.push(U(S,r,A,e?H.enumMiter:H.enumBevel,this.m_bufferCommands.length+1))}else this.m_bufferCommands.push(U(S,r,v,t===0?H.enumArc:H.enumBevel,this.m_bufferCommands.length+1))}}else S.equals(r)||(this.m_bufferCommands.push(W(S,v,this.m_bufferCommands.length+1)),this.m_bufferCommands.push(W(v,r,this.m_bufferCommands.length+1)));let c=new x;c.setAdd(y,T),this.m_bufferCommands.push(U(r,c,v,H.enumLine,this.m_bufferCommands.length+1)),S.setCoordsPoint2D(c),E.setCoordsPoint2D(T),b.setCoordsPoint2D(v),v.setCoordsPoint2D(y),w.setCoordsPoint2D(C),m=p,p=h,_=!1,h=s.getNextVertex(p)}return this.m_bufferCommands.at(-1).m_next=0,this.processBufferCommands(n),l.setShift(o),n.applyTransformationToPath(l,n.getPathCount()-1),1}processBufferCommands(e){let t=this.cleanupBufferCommands(),n=!0,r=t+1;for(let i=t;r!==t;i=r){let t=this.m_bufferCommands[i];r=t.m_next===-1?(i+1)%this.m_bufferCommands.length:t.m_next,t.m_type&&(n&&=(e.startPath(t.m_from),!1),t.m_type&H.enumJoinMask?this.addJoin(t.m_type,e,t.m_center,t.m_from,t.m_to,!1,!0):e.lineTo(t.m_to))}}cleanupBufferCommands(){this.m_helperArray=b(x,9);let e=0;for(let t=0,n=this.m_bufferCommands.length;t<n;){let n=this.m_bufferCommands[t];if(n.m_type&H.enumConnectionMask){e=t;break}t=n.m_next}let t=e+1;for(let n=e;t!==e;n=t){let e=this.m_bufferCommands[n];t=e.m_next;let r=1,i=null;for(;t!==n&&(i=this.m_bufferCommands[t],!(i.m_type&H.enumConnectionMask));)t=i.m_next,r++;r!==1&&(e.m_type&i.m_type)===H.enumLine&&(this.m_helperLine1.setStartXY(e.m_from),this.m_helperLine1.setEndXY(e.m_to),this.m_helperLine2.setStartXY(i.m_from),this.m_helperLine2.setEndXY(i.m_to),this.m_helperLine1.intersect(this.m_helperLine2,this.m_helperArray,null,null,this.m_smallTolerance.total())===1&&(e.m_to.assign(this.m_helperArray[0]),i.m_from.assign(this.m_helperArray[0]),e.m_next=t))}return e}isDegeneratePath(e,t){if(e.getPathSize(t)===1)return!0;if(this.m_joins===0&&this.m_caps===0){let n=new N;if(e.queryPathEnvelope(t,n),Math.max(n.width(),n.height())<this.m_densifyDist*.5)return!0}return!1}isDegenerateGeometry(e){if(this.m_joins===0&&this.m_caps===0){let t=new N;if(e.queryEnvelope(t),Math.max(t.width(),t.height())<this.m_densifyDist*.5)return!0}return!1}addCircle(e,t){let n=t.getXY();if(this.m_circleTemplate.length!==0){let t=this.m_circleTemplate[0].clone();t.scaleAddThis(this.m_absDistance,n),e.startPath(t);for(let r=1,i=this.m_circleTemplate.length;r<i;r++)t=this.m_circleTemplate[r].clone(),t.scaleAddThis(this.m_absDistance,n),e.lineTo(t);return}let r=this.m_circleTemplateSize,i=Math.trunc((r+3)/4),a=Math.PI*.5/i;e.reserve(i*4);let o=Math.cos(a),s=Math.sin(a);for(let t=3;t>=0;t--){let r=x.construct(0,this.m_absDistance);switch(t){case 0:for(let t=0;t<i;t++)e.lineToCoords(r.x+n.x,r.y+n.y),r.rotateReverse(o,s);break;case 1:for(let t=0;t<i;t++)e.lineToCoords(-r.y+n.x,r.x+n.y),r.rotateReverse(o,s);break;case 2:for(let t=0;t<i;t++)e.lineToCoords(-r.x+n.x,-r.y+n.y),r.rotateReverse(o,s);break;default:e.startPathCoords(r.y+n.x,-r.x+n.y);for(let t=1;t<i;t++)r.rotateReverse(o,s),e.lineToCoords(r.y+n.x,-r.x+n.y)}this.progress_()}}addSquare(e,t){let n=new _({vd:t.getDescription()});n.setCoords(t.getX(),t.getY(),t.getX(),t.getY()),n.inflateCoords(this.m_absDistance,this.m_absDistance),e.addEnvelope(n,!1)}setStrongSimple(e){return e.getImpl().setIsSimple(4,this.m_tolerance.total()),e.getImpl().updateOGCFlagsProtected(),e}}function X(e){return v(e,0),e}function Z(e,t){return e.isEmpty()?!0:Math.min(e.width(),e.height())>t}function Q(e,t,n,r,i,a,o,s){let c=e.getXY(n),l=e.getXY(r);if(c.equals(l))return-1;let u=o*.25,d=o*.25,p=new x;p.setSub(l,c);let m=p.length(),h=m*m*.25,g=a*a-h;if(g<=h)return-1;let _=Math.sqrt(g);p.normalize();let v=p.clone();v.rightPerpendicularThis();let y=h/_,b=y<=d,S=x.lerp(l,c,.5),C=v.clone(),E=y-u;C.scaleAddThis(Math.max(0,E),S),v.negate().scaleAddThis(_,S);let D=a-d,O=T(D)*3.61,k=C.sub(c),A=C.sub(l),j=!1,M=0,N=w(64,0);f(s===N.length);{for(let a=e.getPrevVertexEx(r,i);a!==n;){if(e.getUserIndex(a,t)===1)return-1;if(e.getXY(a).equals(l)){let t=e.getPrevVertexEx(a,i);e.removeVertex(a,!1),a=t;continue}break}let a=new x,o=c.clone();N[M++]=1;for(let s=e.getNextVertexEx(n,i);s!==r;){if(e.getUserIndex(s,t)===1)return-1;let n=e.getXY(s);if(n.equals(o)){let t=e.getNextVertexEx(s,i);e.removeVertex(s,!1),s=t;continue}N[M++]=0;let r=new x;if(r.setSub(n,c),r.dotProduct(v)<0)return 0;(x.sqrDistance(n,c)>O||x.sqrDistance(n,l)>O)&&(j=!0);let u=0;if(n.sub(c).crossProduct(k)>=0&&(u=1),n.sub(l).crossProduct(A)<=0&&(u|=2),u===0)return 0;N[M-1]=u,a.assign(o),o.assign(n),s=e.getNextVertexEx(s,i)}if(M===1)return 0;f(M<N.length),N[M++]=2}let P=!0;for(let e=1,t=0;e<M;e++)if(N[e]!==N[e-1]&&(t++,P=t<3&&(t===1&&N[e]===3||t===2&&N[e]===2),!P))return 0;if(M>2&&P&&(M===3||!j)){let t=0,a=e.getNextVertexEx(n,i);for(b||(e.setXY(a,C),a=e.getNextVertexEx(a,i));a!==r;){let n=e.getNextVertexEx(a,i);e.removeVertex(a,!1),a=n,++t}return t}if(f(M!==3),j&&M>3)return 0;let F=c.clone(),I=n,L=c.clone(),R=1,z=-1,B=I,V=0;for(M=1;B!==r;){B=e.getNextVertexEx(B,i);let t=N[M++];if(t===0){if(B===r)break;continue}let n=e.getXY(B);if(z!==-1){if(z&R&t&3){e.removeVertex(I,!0),V++,I=B,L.setCoordsPoint2D(n),R=t;continue}if(R===3&&z!==0&&t!==0){if(L.setCoordsPoint2D(C),b||L.equals(F)){e.removeVertex(I,!0),V++,I=B,L.setCoordsPoint2D(n),R=t;continue}e.setXY(I,L)}}z=R,F.setCoordsPoint2D(L),I=B,R=t,L.setCoordsPoint2D(n)}return V}function ee(e,t,n,r){let i=-1,a=new x,o=new x,s=new x;for(let n=0,c=e.getPathSize(r),l=e.getFirstVertex(r);n<c;++n){i===-1&&(e.queryXY(l,o),i=e.getPrevVertex(l),i!==-1&&(e.queryXY(i,a),s.setSub(o,a),s.normalize()));let n=e.getNextVertex(l);if(n===-1)break;let r=e.getXY(n),c=r.sub(o);c.normalize(),i!==-1&&c.dotProduct(s)<-.99&&Math.abs(c.crossProduct(s))<1e-7&&e.setUserIndex(l,t,1),i=l,l=n,a.assign(o),o.assign(r),s.assign(c)}}function te(n,r,i,a,o,s,c){let l={stack:[],error:void 0,hasError:!1};try{let t=n.getFirstPath(r),a=n.createUserIndex();e(l,C(()=>{n.removeUserIndex(a)},!1),!1),ee(n,a,r,t);for(let e=0;e<100;++e){if(n.getPathSize(t)===0)return 1;let e=n.getFirstVertex(t),r=n.getPathSize(t);if(r<3)return 1;n.isClosedPath(t)||--r;let s=0,l=!1;for(let t=0;t<r&&e!==M;t++){let u=0,d=e;for(let s=1,l=Math.min(64,r-t);s<l;s++)if(d=n.getNextVertexEx(d,i),s>1){let t=Q(n,a,e,d,i,o,c,64);if(t===-1)break;u+=t,r-=t}if(s+=u,l=u>0,l){let t=n.getPrevVertexEx(e,i);if(t!==-1){e=t,r++;continue}}e=n.getNextVertexEx(e,i)}if(s===0)break}return n.filterClosePoints(s,!1,!1,!1,-1),1}catch(e){l.error=e,l.hasError=!0}finally{t(l)}}function ne(e,t,n,r,i,a,o){return te(e,t,n,r,i,a,o)}function $(e,t,n,r){for(let i=0,a=e.getPathCount();i<a;i++){let a=e.getXY(e.getPathStart(i));a.x!==n.xmin&&a.x!==n.xmax&&t.addPath(e,i,r)}}export{Y as B,V as s};
|
package/chunks/Component.glsl.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{ComponentData as e}from"../views/3d/webgl-engine/collections/Component/Material/ComponentData.glsl.js";import{forwardLinearDepthToWriteShadow as ee}from"../views/3d/webgl-engine/core/shaderLibrary/forwardLinearDepthToWriteShadow.glsl.js";import{isColor as te,isShadow as ne}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js";import{slicePass as t}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{TextureCoordinateAttribute as n}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{VertexColor as r}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexColor.glsl.js";import{VertexNormal as i}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexNormal.glsl.js";import{VertexPosition as a}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexPosition.glsl.js";import{DepthConversion as o}from"../views/3d/webgl-engine/core/shaderLibrary/output/DepthConversion.glsl.js";import{outputDepth as s}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputDepth.glsl.js";import{OutputHighlight as c}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{OutputHighlightOverlay as l}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlightOverlay.js";import{computeFragmentNormals as u}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ComputeFragmentNormals.glsl.js";import{ComputeMaterialColor as d}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ComputeMaterialColor.glsl.js";import{ComputeNormalTextureDraw as re}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ComputeNormalTexture.glsl.js";import{EvaluateSceneLighting as f,
|
|
2
|
+
import{ComponentData as e}from"../views/3d/webgl-engine/collections/Component/Material/ComponentData.glsl.js";import{forwardLinearDepthToWriteShadow as ee}from"../views/3d/webgl-engine/core/shaderLibrary/forwardLinearDepthToWriteShadow.glsl.js";import{isColor as te,isShadow as ne}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js";import{slicePass as t}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{TextureCoordinateAttribute as n}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{VertexColor as r}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexColor.glsl.js";import{VertexNormal as i}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexNormal.glsl.js";import{VertexPosition as a}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexPosition.glsl.js";import{DepthConversion as o}from"../views/3d/webgl-engine/core/shaderLibrary/output/DepthConversion.glsl.js";import{outputDepth as s}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputDepth.glsl.js";import{OutputHighlight as c}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{OutputHighlightOverlay as l}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlightOverlay.js";import{computeFragmentNormals as u}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ComputeFragmentNormals.glsl.js";import{ComputeMaterialColor as d}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ComputeMaterialColor.glsl.js";import{ComputeNormalTextureDraw as re}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ComputeNormalTexture.glsl.js";import{EvaluateSceneLighting as f,lightingGlobalFactor as p}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{mainLightIntensity as ie,mainLightDirection as ae}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{NormalUtils as m}from"../views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js";import{pbrGlobals as h}from"../views/3d/webgl-engine/core/shaderLibrary/shading/pbrGlobals.glsl.js";import{PhysicallyBasedRenderingParameters as g}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import{ReadBaseColorTexture as _}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadBaseColorTexture.glsl.js";import{readShadowPass as v}from"../views/3d/webgl-engine/core/shaderLibrary/shading/readShadow.glsl.js";import{OverlayIM as oe}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js";import{DiscardOrAdjustAlphaDraw as se}from"../views/3d/webgl-engine/core/shaderLibrary/util/DiscardOrAdjustAlpha.glsl.js";import{BooleanDrawUniform as ce}from"../views/3d/webgl-engine/core/shaderModules/BooleanDrawUniform.js";import{FloatDrawUniform as y}from"../views/3d/webgl-engine/core/shaderModules/FloatDrawUniform.js";import{If as b,glsl as x}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DBindUniform as le}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{SnowCover as ue}from"../views/3d/webgl-engine/effects/snowcover/SnowCover.glsl.js";import{alphaCutoff as S}from"../views/3d/webgl-engine/shaders/alphaCutoff.glsl.js";import{outputColorHighlightOLID as de}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{getPlanetRadius as C,sphereDepthInterpolate as w}from"../views/3d/webgl-engine/shaders/SphereDepthInterpolate.glsl.js";import{ShaderBuilder as T}from"../views/webgl/ShaderBuilder.js";function E(E){let D=new T,{vertex:O,fragment:k}=D;D.include(a,E),D.include(i,E),D.include(r,E),D.include(n,E),D.include(e,E),D.include(se,E),k.include(t,E),D.include(_,E);let{output:A,pbrMode:j,hasNormalTexture:M,snowCover:N,receiveShadows:P,shadeNormals:F,spherical:I,sphericalSR:L,overlayEnabled:R,componentDataType:fe,vertexDiscardMode:z,renderOccluded:B,isGroundSlice:V,groundTransparencyMode:pe}=E,H=te(A),U=j===1||j===2,W=pe===2,G=W&&(A===3||A===4);U&&(D.include(g,E),M&&D.include(re,E));let K=ne(A),q=A===11,me=A===10,J=A===4,he=K&&fe===1,Y=C(E),X=(R||G)&&I,Z=L===1;(H||J)&&(D.include(d,E),k.include(S)),(R||G)&&(k.include(f,E),D.include(oe,E),X?(D.varyings.add(`vPositionForDraping`,`vec3`),k.uniforms.add(new ce(`useENUForGlobalOverlayUV`,e=>e.useENUForGlobalOverlayUV),new y(`overlayMapScaleU`,e=>e.toMapSpace[2]),new y(`overlayReferenceU`,e=>e.toMapSpace[0])),k.constants.add(`overlayWorldWidth`,`float`,Z?2*Math.PI*Y:360),Z?(k.constants.add(`pRadius`,`float`,Y),k.constants.add(`halfSemiMajorAxis`,`float`,.5*Y)):k.constants.add(`rad2deg1`,`float`,180/Math.PI),k.constants.add(`invRadius`,`float`,1/Y).code.add(x`
|
|
3
3
|
vec2 projectOverlay(vec3 pos) { return pos.xy / (1.0 + invRadius * pos.z); }
|
|
4
4
|
|
|
5
5
|
vec2 selectOverlayUVNorm(vec2 normUV, float offsetUNorm) {
|
|
@@ -111,7 +111,7 @@ import{ComponentData as e}from"../views/3d/webgl-engine/collections/Component/Ma
|
|
|
111
111
|
|
|
112
112
|
vec4 materialColor = computeMaterialColor(textureColor, externalColor, externalColorMixMode);
|
|
113
113
|
${b(W,`materialColor = vec4(0.0);`)}
|
|
114
|
-
`),U?(I&&p
|
|
114
|
+
`),U?(I&&k.uniforms.add(p),k.include(h),k.uniforms.add(ie).main.add(x`
|
|
115
115
|
applyPBRFactors();
|
|
116
116
|
${b(j===1,`if (externalColorMixMode == 3) mrr = vec3(0.0, 0.6, 0.2);`)}
|
|
117
117
|
${b(M,`mat3 tangentSpace = computeTangentSpace(fragmentFaceNormal, vPositionWorldCameraRelative, vuv0);`)}
|
|
@@ -131,7 +131,7 @@ import{ComponentData as e}from"../views/3d/webgl-engine/collections/Component/Ma
|
|
|
131
131
|
${b(I,`float additionalAmbientScale = additionalDirectedAmbientLight(positionWorld());`)}
|
|
132
132
|
${b(I,`float shadow = max(lightingGlobalFactor * (1.0 - additionalAmbientScale), evaluateShadow());`,`float shadow = evaluateShadow();`)}
|
|
133
133
|
vec4 shadedColor = vec4(evaluateSceneLighting(shadingNormal, materialColor.rgb, shadow, ssao, additionalLight, viewDirection, upNormal), materialColor.a);
|
|
134
|
-
`)):(I&&p
|
|
134
|
+
`)):(I&&k.uniforms.add(p),Q&&k.uniforms.add(new le(`ovNormalTex`,e=>e.overlay?.getTexture(3))),k.uniforms.add(ae).main.add(x`
|
|
135
135
|
${b(I,`float additionalAmbientScale = additionalDirectedAmbientLight(positionWorld());`)}
|
|
136
136
|
float shadow = ${P?I?`max(lightingGlobalFactor * (1.0 - additionalAmbientScale), evaluateShadow())`:`evaluateShadow()`:I?`lightingGlobalFactor * (1.0 - additionalAmbientScale)`:`0.0`};
|
|
137
137
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{Offset as e}from"../views/3d/webgl-engine/core/shaderLibrary/Offset.glsl.js";import{isColor as t}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js";import{sliceDraw as n}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as r}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{InstancedDoublePrecision as i}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/InstancedDoublePrecision.glsl.js";import{NormalAttribute as a}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/NormalAttribute.glsl.js";import{TextureCoordinateAttribute as o}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{VertexNormal as s}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexNormal.glsl.js";import{VerticalOffset as c}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VerticalOffset.glsl.js";import{DefaultMaterialAuxiliaryPasses as l}from"../views/3d/webgl-engine/core/shaderLibrary/default/DefaultMaterialAuxiliaryPasses.glsl.js";import{DefaultMaterialExternalColor as u}from"../views/3d/webgl-engine/core/shaderLibrary/default/DefaultMaterialExternalColor.glsl.js";import{ComputeNormalTexturePass as ee}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ComputeNormalTexture.glsl.js";import{EvaluateAmbientOcclusion as d}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import{EvaluateSceneLighting as f,addAmbientBoostFactor as p,
|
|
2
|
+
import{Offset as e}from"../views/3d/webgl-engine/core/shaderLibrary/Offset.glsl.js";import{isColor as t}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js";import{sliceDraw as n}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as r}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{InstancedDoublePrecision as i}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/InstancedDoublePrecision.glsl.js";import{NormalAttribute as a}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/NormalAttribute.glsl.js";import{TextureCoordinateAttribute as o}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{VertexNormal as s}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexNormal.glsl.js";import{VerticalOffset as c}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VerticalOffset.glsl.js";import{DefaultMaterialAuxiliaryPasses as l}from"../views/3d/webgl-engine/core/shaderLibrary/default/DefaultMaterialAuxiliaryPasses.glsl.js";import{DefaultMaterialExternalColor as u}from"../views/3d/webgl-engine/core/shaderLibrary/default/DefaultMaterialExternalColor.glsl.js";import{ComputeNormalTexturePass as ee}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ComputeNormalTexture.glsl.js";import{EvaluateAmbientOcclusion as d}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import{EvaluateSceneLighting as f,addAmbientBoostFactor as p,lightingGlobalFactor as m}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{mainLightIntensity as h}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{Normals as g}from"../views/3d/webgl-engine/core/shaderLibrary/shading/Normals.glsl.js";import{NormalUtils as _}from"../views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js";import{PhysicallyBasedRendering as v}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRendering.glsl.js";import{PhysicallyBasedRenderingParameters as y}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import{readShadowPass as b,readShadowDraw as x}from"../views/3d/webgl-engine/core/shaderLibrary/shading/readShadow.glsl.js";import{colorTextureUV as S,normalTextureUV as C,emissiveTextureUV as w,occlusionTextureUV as T,metallicRoughnessTextureUV as E}from"../views/3d/webgl-engine/core/shaderLibrary/shading/TextureTransformUV.glsl.js";import{VisualVariables as D}from"../views/3d/webgl-engine/core/shaderLibrary/shading/VisualVariables.glsl.js";import{DiscardOrAdjustAlphaPass as O}from"../views/3d/webgl-engine/core/shaderLibrary/util/DiscardOrAdjustAlpha.glsl.js";import{addProjViewLocalOrigin as k,addCameraPosition as A}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float3PassUniform as j}from"../views/3d/webgl-engine/core/shaderModules/Float3PassUniform.js";import{If as M,glsl as N}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DPassUniform as P}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{SnowCover as F}from"../views/3d/webgl-engine/effects/snowcover/SnowCover.glsl.js";import{outputColorHighlightOLID as I}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{ShaderBuilder as te}from"../views/webgl/ShaderBuilder.js";function L(L){let R=new te,{attributes:z,vertex:B,fragment:V,varyings:H}=R,{output:U,normalType:W,offsetBackfaces:G,snowCover:K,pbrMode:q,textureAlphaPremultiplied:J,instancedDoublePrecision:Y,hasVertexColors:X,hasVertexTangents:Z,hasColorTexture:Q,hasNormalTexture:ne,hasNormalTextureTransform:re,hasColorTextureTransform:ie}=L;if(k(B,L),z.add(`position`,`vec3`),B.inputs.add(`position`,()=>`position`),H.add(`vpos`,`vec3`,{invariant:!0}),R.include(D,L),R.include(i,L),R.include(c,L),R.include(S,L),!t(U))return R.include(l,L),R;R.include(C,L),R.include(w,L),R.include(T,L),R.include(E,L),A(B,L),R.include(a,L),R.include(r);let $=W===0||W===1;return $&&G&&R.include(e),R.include(ee,L),R.include(s,L),H.add(`vPositionLocal`,`vec3`),R.include(o,L),R.include(u,L),R.include(Y?b:x,L),B.main.add(N`
|
|
3
3
|
forwardDefaultMaterialExternalColor();
|
|
4
4
|
|
|
5
5
|
vpos = getVertexInLocalOriginSpace();
|
|
@@ -22,7 +22,7 @@ import{Offset as e}from"../views/3d/webgl-engine/core/shaderLibrary/Offset.glsl.
|
|
|
22
22
|
gl_Position = vec4(1e38, 1e38, 1e38, 1.0);
|
|
23
23
|
}
|
|
24
24
|
forwardLinearDepthToReadShadow();
|
|
25
|
-
`),V.include(f,L),V.include(d,L),R.include(O,L),V.include(n,L),R.include(I,L),A(V,L),V.uniforms.add(B.uniforms.get(`localOrigin`),new j(`ambient`,e=>e.ambient),new j(`diffuse`,e=>e.diffuse)),Q&&V.uniforms.add(new P(`tex`,e=>e.texture)),R.include(y,L),V.include(v,L),R.include(g,L),V.include(F,L),V.include(_,L),p(V),m
|
|
25
|
+
`),V.include(f,L),V.include(d,L),R.include(O,L),V.include(n,L),R.include(I,L),A(V,L),V.uniforms.add(B.uniforms.get(`localOrigin`),new j(`ambient`,e=>e.ambient),new j(`diffuse`,e=>e.diffuse)),Q&&V.uniforms.add(new P(`tex`,e=>e.texture)),R.include(y,L),V.include(v,L),R.include(g,L),V.include(F,L),V.include(_,L),p(V),V.uniforms.add(m),V.uniforms.add(h).main.add(N`
|
|
26
26
|
discardBySlice(vpos);
|
|
27
27
|
${Q?N`
|
|
28
28
|
vec4 texColor = texture(tex, ${ie?`colorUV`:`vuv0`});
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{__addDisposableResource as e,__disposeResources as t}from"tslib";import{G as n,v as r}from"./Geometry.js";import{S as i,P as a,s as o}from"./MultiPathImpl.js";import{K as s}from"./UnitFactory.js";import{P as c,c as l,s as u,i as d,h as f,j as p,d as m}from"./Point2D.js";import{Envelope2D as h}from"./Envelope2D.js";import{P as g,E as _}from"./Envelope.js";function v(){return{outPoint:new c,index:-1,t:NaN}}function y(e,t,n){return{outPoint:e.clone(),index:t,t:n}}function b(e,t,n,r){e.outPoint.assign(t),e.index=n,e.t=r}function x(e,t){e.outPoint.assign(t.outPoint),e.index=t.index,e.t=t.t}function S(e,t,n,r){e.index=n,e.t=r,t.queryCoord2D(e.t,e.outPoint)}function C(e,t){let n=v();x(n,e),x(e,t),x(t,n)}function w(e,t,r,i,a,o){if(e.getGeometryType()===n.enumPolygon){for(;i.nextPath();)if(i.hasNextSegment()){let t=i.nextSegment();if(s(e,t.getEndXY(),0)!==0)return b(a,t.getEndXY(),-1,NaN),b(o,t.getEndXY(),-1,NaN),!0}i.resetToFirstPath()}if(t.getGeometryType()===n.enumPolygon){for(;r.nextPath();)if(r.hasNextSegment()){let e=r.nextSegment();if(s(t,e.getEndXY(),0)!==0)return b(a,e.getEndXY(),-1,NaN),b(o,e.getEndXY(),-1,NaN),!0}r.resetToFirstPath()}return!1}function T(e){let t=e.getPathCount(),n=m(e.getSegmentCount(),0),r=0;for(let i=0;i<t;++i){let t=r+e.getSegmentCountPath(i);for(let a=r,o=e.getPathStart(i);a<t;++a,++o)n[a]=o;r=t}return o(e.getPointCount(),n),n}function E(e,t){return Number.isNaN(t)?!0:e<=t}function D(e){let t=new a;return t.addEnvelope(e,!1),t}class O{m_progressTracker;m_env2DgeometryA=null;m_env2DgeometryB=null;m_maxSqrDistance;m_maxDistance;m_progressCounter=0;m_bIsNearCalc;constructor(e,t){if(this.m_progressTracker=t,this.m_maxSqrDistance=e*e,this.m_maxDistance=e,this.m_bIsNearCalc=!1,this.m_maxDistance=Number.isNaN(this.m_maxDistance)?1/0:e,this.m_maxSqrDistance=this.m_maxDistance*this.m_maxDistance,Number.isFinite(this.m_maxSqrDistance)){let e=Math.sqrt(this.m_maxSqrDistance);for(;e<this.m_maxDistance;)this.m_maxSqrDistance*=1+2**-52,e=Math.sqrt(this.m_maxSqrDistance)}}calculate(e,t,n,r){if((e.getGeometryType()!==g.type||t.getGeometryType()!==g.type)&&(this.m_env2DgeometryA=new h,this.m_env2DgeometryB=new h,e.queryEnvelope(this.m_env2DgeometryA),t.queryEnvelope(this.m_env2DgeometryB),!E(this.m_env2DgeometryA.distanceFromEnvelope(this.m_env2DgeometryB),this.m_maxDistance)))return 1/0;let i=y(new c,p(),NaN),a=y(new c,p(),NaN),o=this._ExecuteBruteForce(e,t,i,a);return E(o,this.m_maxDistance)?(n!==null&&x(n,i),r!==null&&x(r,a),o):1/0}isNear(e,t){if(this.m_bIsNearCalc=!0,e.isEmpty()||t.isEmpty())return!1;if(e===t)return!0;let n=!0;if((e.getGeometryType()===g.type||e.getGeometryType()===_.type)&&(t.getGeometryType()===g.type||t.getGeometryType()===_.type)&&(n=!1),n){if(this.m_env2DgeometryA=new h,this.m_env2DgeometryB=new h,e.queryEnvelope(this.m_env2DgeometryA),t.queryEnvelope(this.m_env2DgeometryB),this.m_env2DgeometryA.sqrMaxMinDistanceEnvelope(this.m_env2DgeometryB)>this.m_maxSqrDistance){if(this.m_env2DgeometryA.sqrDistanceEnvelope(this.m_env2DgeometryB,null,null)>this.m_maxSqrDistance)return!1}else return!0}let r=y(new c,p(),NaN),i=y(new c,p(),NaN);return this._ExecuteBruteForce(e,t,r,i)<=this.m_maxDistance}progress_(e=!1){}_ExecuteBruteForce(e,t,r,i){switch(e.getGeometryType()){case n.enumPoint:return this.distancePointGeometry(e,t,r,i);case n.enumMultiPoint:return this.distanceMultipointGeometry(e,t,r,i);case n.enumEnvelope:return this.distanceEnvelopeGeometry(e,t,r,i);case n.enumPolyline:case n.enumPolygon:return this.distanceMultipathGeometry(e,t,r,i);default:return NaN}}distancePointGeometry(e,t,r,i){switch(t.getGeometryType()){case n.enumPoint:return this.distancePointPoint(e,t,r,i);case n.enumMultiPoint:return this.distancePointMultipoint(e,t,r,i);case n.enumPolyline:case n.enumPolygon:return this.distancePointMultipath(e,t,r,i);case n.enumEnvelope:return this.distancePointEnvelope(e,t,r,i);default:return NaN}}distancePointPoint(e,t,n,r){let i=e.getXY(),a=t.getXY();return b(n,i,0,0),b(r,a,0,0),Math.sqrt(c.sqrDistance(i,a))}distancePointMultipoint(e,t,n,r){let i=e.getXY(),a=this.m_maxSqrDistance,o=a,s=!1,l=t.getPointCount(),u=new c;for(let e=0;e<l;++e){if(t.queryXY(e,u),o=c.sqrDistance(i,u),this.m_bIsNearCalc){if(o<=a)return 0;continue}if(!(o>a)&&(!s&&o===a||o<a)&&(a=o,b(n,i,0,0),b(r,u,e,0),s=!0,a===0))return 0}return s?Math.sqrt(a):1/0}distancePointMultipath(e,t,r,i){let a=!this.m_env2DgeometryA.isIntersecting(this.m_env2DgeometryB),o=e.getXY();if(!a&&t.getGeometryType()===n.enumPolygon&&s(t,o,0)!==0)return b(r,o,0,0),b(i,o,-1,NaN),0;t.getImpl().getAccelerators();let l=this.m_maxSqrDistance,u=l,d=-1,f=new h,p=t.querySegmentIterator(),m=!1;for(;p.nextPath();)for(;p.hasNextSegment();){let e=p.nextSegment();e.queryEnvelope(f);let t=f.sqrDistance(o);if(t>l||!this.m_bIsNearCalc&&m&&t===l)continue;d=e.getClosestCoordinate(o,!1);let n=e.getCoord2D(d);if(u=c.sqrDistance(o,n),this.m_bIsNearCalc){if(u<=l)return 0;continue}if(!(u>l)&&(!m||u<l)&&(l=u,b(r,o,0,0),b(i,n,p.getStartPointIndex(),d),m=!0,l===0))return 0}return m?Math.sqrt(l):1/0}distancePointEnvelope(e,t,n,r){let i=e.getXY();b(n,i,0,0),b(r,i,-1,NaN);let a=t.asEnvelope2D();return a.contains(i)?0:Math.sqrt(a.sqrDistance(i,r.outPoint))}distanceMultipointGeometry(e,t,r,i){switch(t.getGeometryType()){case n.enumPoint:{this.m_env2DgeometryB=l(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB);let n=this.distancePointMultipoint(t,e,i,r);return this.m_env2DgeometryB=l(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB),n}case n.enumMultiPoint:return this.distanceMultipointMultipoint(e,t,r,i,1,1);case n.enumPolyline:case n.enumPolygon:return this.distanceMultipointMultipath(e,t,r,i);case n.enumEnvelope:return this.distanceMultipointMultipath(e,D(t),r,i);default:return NaN}}distanceMultipointMultipoint(n,r,i,a,o,s){let p={stack:[],error:void 0,hasError:!1};try{if(this.m_bIsNearCalc&&o===1&&s===1){let e=Math.trunc(u(Math.sqrt(n.getPointCount())+1,1,d())),t=Math.trunc(u(Math.sqrt(r.getPointCount())+1,1,d()));if((e>=4||t>=4)&&this.distanceMultipointMultipoint(n,r,i,a,e,t)<=this.m_maxSqrDistance)return 0}let t=this.m_maxSqrDistance,m=[n],h=[r],g=this.swapGeometriesIfBGtA(m,h);g&&(this.m_env2DgeometryB=l(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB),s=l(o,o=s),C(i,a)),e(p,f(()=>{C(i,a),this.m_env2DgeometryB=l(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB)},!g),!1);let _=m[0].getImpl(),v=h[0].getImpl(),y=_.getPointCount(),x=v.getPointCount(),S=x>1,w=!1,T=new c,E=new c;for(let e=0;e<y;e+=o){if(_.queryXY(e,T),S){let e=this.m_env2DgeometryB.sqrDistance(T);if(this.m_bIsNearCalc){if(e>t)continue;if(this.m_env2DgeometryB.sqrMaxMinDistance(T)<=t)return 0}else if(e>=t)continue}for(let n=0;n<x;n+=s){v.queryXY(n,E);let r=c.sqrDistance(T,E);if(this.m_bIsNearCalc){if(r<=t)return 0;continue}if(!(r>t||w&&r===t)&&(!w||r<t)&&(b(i,T,e,0),b(a,E,n,0),w=!0,t=r,t===0))return w?Math.sqrt(t):1/0}}return w?Math.sqrt(t):1/0}catch(e){p.error=e,p.hasError=!0}finally{t(p)}}distanceMultipointMultipath(e,t,r,i){let a=!!this.m_env2DgeometryA.isIntersecting(this.m_env2DgeometryB)&&t.getGeometryType()===n.enumPolygon,o=t.querySegmentIterator();o.stripAttributes();let l=new h,u=new c,d=this.m_maxSqrDistance,f=e.getImpl(),p=f.getPointCount(),m=p>1,g=!1;for(;o.nextPath();)for(;o.hasNextSegment();){let e=o.nextSegment();if(e.queryLooseEnvelope(l),m){let e=l.sqrDistanceEnvelope(this.m_env2DgeometryA,null,null);if(this.m_bIsNearCalc){if(e>d)continue}else if(e>d||g&&e===d)continue}for(let n=0;n<p;n++){if(f.queryXY(n,u),a&&s(t,u,0)!==0)return b(r,u,-1,NaN),b(i,u,n,0),0;{let e=l.sqrDistance(u);if(this.m_bIsNearCalc){if(e>d)continue}else if(e>d)continue}let c=e.getClosestCoordinate(u,!1),p=e.getCoord2D(c);u.subThis(p);let m=u.sqrLength();if(this.m_bIsNearCalc){if(m<=d)return 0;continue}if(!(m>d)&&(!g||m<d)&&(d=m,b(r,f.getXY(n),n,0),b(i,p,o.getStartPointIndex(),c),g=!0,d===0))return 0}a=!1}return g?Math.sqrt(d):1/0}distanceEnvelopeGeometry(e,t,r,i){switch(t.getGeometryType()){case n.enumPoint:return this.distancePointEnvelope(t,e,i,r);case n.enumMultiPoint:{this.m_env2DgeometryB=l(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB);let n=this.distanceMultipointMultipath(t,D(e),i,r);return this.m_env2DgeometryB=l(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB),n}case n.enumPolyline:case n.enumPolygon:return this.distanceMultipathMultipath(D(e),t,r,i);case n.enumEnvelope:return this.distanceEnvelopeEnvelope(e,t,r,i);default:return NaN}}distanceEnvelopeEnvelope(e,t,n,r){n.t=NaN,n.index=-1,r.t=NaN,r.index=-1;let i=e.asEnvelope2D(),a=t.asEnvelope2D();return Math.sqrt(i.sqrDistanceEnvelope(a,n.outPoint,r.outPoint))}distanceMultipathGeometry(e,t,r,i){switch(t.getGeometryType()){case n.enumPoint:{this.m_env2DgeometryB=l(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB);let n=this.distancePointMultipath(t,e,i,r);return this.m_env2DgeometryB=l(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB),n}case n.enumMultiPoint:{this.m_env2DgeometryB=l(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB);let n=this.distanceMultipointMultipath(t,e,i,r);return this.m_env2DgeometryB=l(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB),n}case n.enumPolyline:case n.enumPolygon:return this.distanceMultipathMultipath(e,t,r,i);case n.enumEnvelope:return this.distanceMultipathMultipath(e,D(t),r,i);default:return NaN}}distanceMultipathMultipath(n,r,a,o){let s={stack:[],error:void 0,hasError:!1};try{let t=[n],c=[r],p=this.swapGeometriesIfAGtB(t,c);p&&(this.m_env2DgeometryB=l(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB),C(a,o)),e(s,f(()=>{C(a,o),this.m_env2DgeometryB=l(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB)},!p),!1);let m=t[0],g=c[0],_=m.querySegmentIterator();_.stripAttributes();let y=g.querySegmentIterator();if(y.stripAttributes(),this.m_bIsNearCalc&&this.m_env2DgeometryA.sqrMaxMinDistanceEnvelope(this.m_env2DgeometryB)<=this.m_maxSqrDistance)return 0;if(this.m_bIsNearCalc){let e=Math.trunc(u(Math.sqrt(m.getPointCount())+1,1,d())),t=Math.trunc(u(Math.sqrt(m.getPointCount())+1,1,d()));if(this.distanceMultipointMultipoint(m,g,a,o,e,t)<=this.m_maxSqrDistance)return 0}if(this.m_env2DgeometryA.isIntersecting(this.m_env2DgeometryB)){let e=v(),t=v();if(w(m,g,_,y,e,t))return x(a,e),x(o,t),0}let b=T(m),E=[],D=new i,O=new h,k=new h,A=new h,j=this.m_maxSqrDistance,M=!0,N=!1;for(let e=0,t=b.length;e<t;++e){m.querySegment(b[e],D,!0);let t=D.get();if(t.queryEnvelope(O),!(O.sqrDistanceEnvelope(this.m_env2DgeometryB,null,null)>j)){if(this.m_bIsNearCalc&&O.sqrMaxDistanceEnvelope(this.m_env2DgeometryB)<=j)return 0;for(;y.nextPath();){if(this.progress_(),M)g.queryPathEnvelope(y.getPathIndex(),A),E[y.getPathIndex()]=A.clone();else if(O.sqrDistanceEnvelope(E[y.getPathIndex()],null,null)>j)continue;for(;y.hasNextSegment();){let n=y.nextSegment();if(n.queryEnvelope(k),O.sqrDistanceEnvelope(k,null,null)<=j){let r=!O.isIntersecting(k),i=[0],s=[0],c=t.distance(n,r,i,s);if(c*=c,this.m_bIsNearCalc&&c<=this.m_maxSqrDistance)return 0;if(c<j||c===j&&b[e]<a.index){if(N=!0,S(a,t,b[e],i[0]),S(o,n,y.getStartPointIndex(),s[0]),c===0)return 0;j=c}}}}y.resetToFirstPath(),M=!1}}return N?Math.sqrt(j):1/0}catch(e){s.error=e,s.hasError=!0}finally{t(s)}}swapGeometriesIfAGtB(e,t){return r(e[0])>r(t[0])&&(t[0]=l(e[0],e[0]=t[0]),!0)}swapGeometriesIfBGtA(e,t){return this.swapGeometriesIfAGtB(t,e)}}export{O as D,y as a,v as m,T as s,w};
|
|
2
|
+
import{__addDisposableResource as e,__disposeResources as t}from"tslib";import{G as n,v as r}from"./Geometry.js";import{S as i,P as a,s as o}from"./MultiPathImpl.js";import{K as s}from"./UnitFactory.js";import{P as c,s as l,a as u,i as d,m as f,b as p,c as m}from"./Point2D.js";import{Envelope2D as h}from"./Envelope2D.js";import{P as g,E as _}from"./Envelope.js";function v(){return{outPoint:new c,index:-1,t:NaN}}function y(e,t,n){return{outPoint:e.clone(),index:t,t:n}}function b(e,t,n,r){e.outPoint.assign(t),e.index=n,e.t=r}function x(e,t){e.outPoint.assign(t.outPoint),e.index=t.index,e.t=t.t}function S(e,t,n,r){e.index=n,e.t=r,t.queryCoord2D(e.t,e.outPoint)}function C(e,t){let n=v();x(n,e),x(e,t),x(t,n)}function w(e,t,r,i,a,o){if(e.getGeometryType()===n.enumPolygon){for(;i.nextPath();)if(i.hasNextSegment()){let t=i.nextSegment();if(s(e,t.getEndXY(),0)!==0)return b(a,t.getEndXY(),-1,NaN),b(o,t.getEndXY(),-1,NaN),!0}i.resetToFirstPath()}if(t.getGeometryType()===n.enumPolygon){for(;r.nextPath();)if(r.hasNextSegment()){let e=r.nextSegment();if(s(t,e.getEndXY(),0)!==0)return b(a,e.getEndXY(),-1,NaN),b(o,e.getEndXY(),-1,NaN),!0}r.resetToFirstPath()}return!1}function T(e){let t=e.getPathCount(),n=m(e.getSegmentCount(),0),r=0;for(let i=0;i<t;++i){let t=r+e.getSegmentCountPath(i);for(let a=r,o=e.getPathStart(i);a<t;++a,++o)n[a]=o;r=t}return o(e.getPointCount(),n),n}function E(e,t){return Number.isNaN(t)?!0:e<=t}function D(e){let t=new a;return t.addEnvelope(e,!1),t}class O{m_progressTracker;m_env2DgeometryA=null;m_env2DgeometryB=null;m_maxSqrDistance;m_maxDistance;m_progressCounter=0;m_bIsNearCalc;constructor(e,t){if(this.m_progressTracker=t,this.m_maxSqrDistance=e*e,this.m_maxDistance=e,this.m_bIsNearCalc=!1,this.m_maxDistance=Number.isNaN(this.m_maxDistance)?1/0:e,this.m_maxSqrDistance=this.m_maxDistance*this.m_maxDistance,Number.isFinite(this.m_maxSqrDistance)){let e=Math.sqrt(this.m_maxSqrDistance);for(;e<this.m_maxDistance;)this.m_maxSqrDistance*=1+2**-52,e=Math.sqrt(this.m_maxSqrDistance)}}calculate(e,t,n,r){if((e.getGeometryType()!==g.type||t.getGeometryType()!==g.type)&&(this.m_env2DgeometryA=new h,this.m_env2DgeometryB=new h,e.queryEnvelope(this.m_env2DgeometryA),t.queryEnvelope(this.m_env2DgeometryB),!E(this.m_env2DgeometryA.distanceFromEnvelope(this.m_env2DgeometryB),this.m_maxDistance)))return 1/0;let i=y(new c,p(),NaN),a=y(new c,p(),NaN),o=this._ExecuteBruteForce(e,t,i,a);return E(o,this.m_maxDistance)?(n!==null&&x(n,i),r!==null&&x(r,a),o):1/0}isNear(e,t){if(this.m_bIsNearCalc=!0,e.isEmpty()||t.isEmpty())return!1;if(e===t)return!0;let n=!0;if((e.getGeometryType()===g.type||e.getGeometryType()===_.type)&&(t.getGeometryType()===g.type||t.getGeometryType()===_.type)&&(n=!1),n){if(this.m_env2DgeometryA=new h,this.m_env2DgeometryB=new h,e.queryEnvelope(this.m_env2DgeometryA),t.queryEnvelope(this.m_env2DgeometryB),this.m_env2DgeometryA.sqrMaxMinDistanceEnvelope(this.m_env2DgeometryB)>this.m_maxSqrDistance){if(this.m_env2DgeometryA.sqrDistanceEnvelope(this.m_env2DgeometryB,null,null)>this.m_maxSqrDistance)return!1}else return!0}let r=y(new c,p(),NaN),i=y(new c,p(),NaN);return this._ExecuteBruteForce(e,t,r,i)<=this.m_maxDistance}progress_(e=!1){}_ExecuteBruteForce(e,t,r,i){switch(e.getGeometryType()){case n.enumPoint:return this.distancePointGeometry(e,t,r,i);case n.enumMultiPoint:return this.distanceMultipointGeometry(e,t,r,i);case n.enumEnvelope:return this.distanceEnvelopeGeometry(e,t,r,i);case n.enumPolyline:case n.enumPolygon:return this.distanceMultipathGeometry(e,t,r,i);default:return NaN}}distancePointGeometry(e,t,r,i){switch(t.getGeometryType()){case n.enumPoint:return this.distancePointPoint(e,t,r,i);case n.enumMultiPoint:return this.distancePointMultipoint(e,t,r,i);case n.enumPolyline:case n.enumPolygon:return this.distancePointMultipath(e,t,r,i);case n.enumEnvelope:return this.distancePointEnvelope(e,t,r,i);default:return NaN}}distancePointPoint(e,t,n,r){let i=e.getXY(),a=t.getXY();return b(n,i,0,0),b(r,a,0,0),Math.sqrt(c.sqrDistance(i,a))}distancePointMultipoint(e,t,n,r){let i=e.getXY(),a=this.m_maxSqrDistance,o=a,s=!1,l=t.getPointCount(),u=new c;for(let e=0;e<l;++e){if(t.queryXY(e,u),o=c.sqrDistance(i,u),this.m_bIsNearCalc){if(o<=a)return 0;continue}if(!(o>a)&&(!s&&o===a||o<a)&&(a=o,b(n,i,0,0),b(r,u,e,0),s=!0,a===0))return 0}return s?Math.sqrt(a):1/0}distancePointMultipath(e,t,r,i){let a=!this.m_env2DgeometryA.isIntersecting(this.m_env2DgeometryB),o=e.getXY();if(!a&&t.getGeometryType()===n.enumPolygon&&s(t,o,0)!==0)return b(r,o,0,0),b(i,o,-1,NaN),0;t.getImpl().getAccelerators();let l=this.m_maxSqrDistance,u=l,d=-1,f=new h,p=t.querySegmentIterator(),m=!1;for(;p.nextPath();)for(;p.hasNextSegment();){let e=p.nextSegment();e.queryEnvelope(f);let t=f.sqrDistance(o);if(t>l||!this.m_bIsNearCalc&&m&&t===l)continue;d=e.getClosestCoordinate(o,!1);let n=e.getCoord2D(d);if(u=c.sqrDistance(o,n),this.m_bIsNearCalc){if(u<=l)return 0;continue}if(!(u>l)&&(!m||u<l)&&(l=u,b(r,o,0,0),b(i,n,p.getStartPointIndex(),d),m=!0,l===0))return 0}return m?Math.sqrt(l):1/0}distancePointEnvelope(e,t,n,r){let i=e.getXY();b(n,i,0,0),b(r,i,-1,NaN);let a=t.asEnvelope2D();return a.contains(i)?0:Math.sqrt(a.sqrDistance(i,r.outPoint))}distanceMultipointGeometry(e,t,r,i){switch(t.getGeometryType()){case n.enumPoint:{this.m_env2DgeometryB=l(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB);let n=this.distancePointMultipoint(t,e,i,r);return this.m_env2DgeometryB=l(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB),n}case n.enumMultiPoint:return this.distanceMultipointMultipoint(e,t,r,i,1,1);case n.enumPolyline:case n.enumPolygon:return this.distanceMultipointMultipath(e,t,r,i);case n.enumEnvelope:return this.distanceMultipointMultipath(e,D(t),r,i);default:return NaN}}distanceMultipointMultipoint(n,r,i,a,o,s){let p={stack:[],error:void 0,hasError:!1};try{if(this.m_bIsNearCalc&&o===1&&s===1){let e=Math.trunc(u(Math.sqrt(n.getPointCount())+1,1,d())),t=Math.trunc(u(Math.sqrt(r.getPointCount())+1,1,d()));if((e>=4||t>=4)&&this.distanceMultipointMultipoint(n,r,i,a,e,t)<=this.m_maxSqrDistance)return 0}let t=this.m_maxSqrDistance,m=[n],h=[r],g=this.swapGeometriesIfBGtA(m,h);g&&(this.m_env2DgeometryB=l(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB),s=l(o,o=s),C(i,a)),e(p,f(()=>{C(i,a),this.m_env2DgeometryB=l(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB)},!g),!1);let _=m[0].getImpl(),v=h[0].getImpl(),y=_.getPointCount(),x=v.getPointCount(),S=x>1,w=!1,T=new c,E=new c;for(let e=0;e<y;e+=o){if(_.queryXY(e,T),S){let e=this.m_env2DgeometryB.sqrDistance(T);if(this.m_bIsNearCalc){if(e>t)continue;if(this.m_env2DgeometryB.sqrMaxMinDistance(T)<=t)return 0}else if(e>=t)continue}for(let n=0;n<x;n+=s){v.queryXY(n,E);let r=c.sqrDistance(T,E);if(this.m_bIsNearCalc){if(r<=t)return 0;continue}if(!(r>t||w&&r===t)&&(!w||r<t)&&(b(i,T,e,0),b(a,E,n,0),w=!0,t=r,t===0))return w?Math.sqrt(t):1/0}}return w?Math.sqrt(t):1/0}catch(e){p.error=e,p.hasError=!0}finally{t(p)}}distanceMultipointMultipath(e,t,r,i){let a=!!this.m_env2DgeometryA.isIntersecting(this.m_env2DgeometryB)&&t.getGeometryType()===n.enumPolygon,o=t.querySegmentIterator();o.stripAttributes();let l=new h,u=new c,d=this.m_maxSqrDistance,f=e.getImpl(),p=f.getPointCount(),m=p>1,g=!1;for(;o.nextPath();)for(;o.hasNextSegment();){let e=o.nextSegment();if(e.queryLooseEnvelope(l),m){let e=l.sqrDistanceEnvelope(this.m_env2DgeometryA,null,null);if(this.m_bIsNearCalc){if(e>d)continue}else if(e>d||g&&e===d)continue}for(let n=0;n<p;n++){if(f.queryXY(n,u),a&&s(t,u,0)!==0)return b(r,u,-1,NaN),b(i,u,n,0),0;{let e=l.sqrDistance(u);if(this.m_bIsNearCalc){if(e>d)continue}else if(e>d)continue}let c=e.getClosestCoordinate(u,!1),p=e.getCoord2D(c);u.subThis(p);let m=u.sqrLength();if(this.m_bIsNearCalc){if(m<=d)return 0;continue}if(!(m>d)&&(!g||m<d)&&(d=m,b(r,f.getXY(n),n,0),b(i,p,o.getStartPointIndex(),c),g=!0,d===0))return 0}a=!1}return g?Math.sqrt(d):1/0}distanceEnvelopeGeometry(e,t,r,i){switch(t.getGeometryType()){case n.enumPoint:return this.distancePointEnvelope(t,e,i,r);case n.enumMultiPoint:{this.m_env2DgeometryB=l(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB);let n=this.distanceMultipointMultipath(t,D(e),i,r);return this.m_env2DgeometryB=l(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB),n}case n.enumPolyline:case n.enumPolygon:return this.distanceMultipathMultipath(D(e),t,r,i);case n.enumEnvelope:return this.distanceEnvelopeEnvelope(e,t,r,i);default:return NaN}}distanceEnvelopeEnvelope(e,t,n,r){n.t=NaN,n.index=-1,r.t=NaN,r.index=-1;let i=e.asEnvelope2D(),a=t.asEnvelope2D();return Math.sqrt(i.sqrDistanceEnvelope(a,n.outPoint,r.outPoint))}distanceMultipathGeometry(e,t,r,i){switch(t.getGeometryType()){case n.enumPoint:{this.m_env2DgeometryB=l(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB);let n=this.distancePointMultipath(t,e,i,r);return this.m_env2DgeometryB=l(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB),n}case n.enumMultiPoint:{this.m_env2DgeometryB=l(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB);let n=this.distanceMultipointMultipath(t,e,i,r);return this.m_env2DgeometryB=l(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB),n}case n.enumPolyline:case n.enumPolygon:return this.distanceMultipathMultipath(e,t,r,i);case n.enumEnvelope:return this.distanceMultipathMultipath(e,D(t),r,i);default:return NaN}}distanceMultipathMultipath(n,r,a,o){let s={stack:[],error:void 0,hasError:!1};try{let t=[n],c=[r],p=this.swapGeometriesIfAGtB(t,c);p&&(this.m_env2DgeometryB=l(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB),C(a,o)),e(s,f(()=>{C(a,o),this.m_env2DgeometryB=l(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB)},!p),!1);let m=t[0],g=c[0],_=m.querySegmentIterator();_.stripAttributes();let y=g.querySegmentIterator();if(y.stripAttributes(),this.m_bIsNearCalc&&this.m_env2DgeometryA.sqrMaxMinDistanceEnvelope(this.m_env2DgeometryB)<=this.m_maxSqrDistance)return 0;if(this.m_bIsNearCalc){let e=Math.trunc(u(Math.sqrt(m.getPointCount())+1,1,d())),t=Math.trunc(u(Math.sqrt(m.getPointCount())+1,1,d()));if(this.distanceMultipointMultipoint(m,g,a,o,e,t)<=this.m_maxSqrDistance)return 0}if(this.m_env2DgeometryA.isIntersecting(this.m_env2DgeometryB)){let e=v(),t=v();if(w(m,g,_,y,e,t))return x(a,e),x(o,t),0}let b=T(m),E=[],D=new i,O=new h,k=new h,A=new h,j=this.m_maxSqrDistance,M=!0,N=!1;for(let e=0,t=b.length;e<t;++e){m.querySegment(b[e],D,!0);let t=D.get();if(t.queryEnvelope(O),!(O.sqrDistanceEnvelope(this.m_env2DgeometryB,null,null)>j)){if(this.m_bIsNearCalc&&O.sqrMaxDistanceEnvelope(this.m_env2DgeometryB)<=j)return 0;for(;y.nextPath();){if(this.progress_(),M)g.queryPathEnvelope(y.getPathIndex(),A),E[y.getPathIndex()]=A.clone();else if(O.sqrDistanceEnvelope(E[y.getPathIndex()],null,null)>j)continue;for(;y.hasNextSegment();){let n=y.nextSegment();if(n.queryEnvelope(k),O.sqrDistanceEnvelope(k,null,null)<=j){let r=!O.isIntersecting(k),i=[0],s=[0],c=t.distance(n,r,i,s);if(c*=c,this.m_bIsNearCalc&&c<=this.m_maxSqrDistance)return 0;if(c<j||c===j&&b[e]<a.index){if(N=!0,S(a,t,b[e],i[0]),S(o,n,y.getStartPointIndex(),s[0]),c===0)return 0;j=c}}}}y.resetToFirstPath(),M=!1}}return N?Math.sqrt(j):1/0}catch(e){s.error=e,s.hasError=!0}finally{t(s)}}swapGeometriesIfAGtB(e,t){return r(e[0])>r(t[0])&&(t[0]=l(e[0],e[0]=t[0]),!0)}swapGeometriesIfBGtA(e,t){return this.swapGeometriesIfAGtB(t,e)}}export{O as D,y as a,v as m,T as s,w};
|