@arcgis/core 5.2.0-next.156 → 5.2.0-next.157
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/LineOfSightAnalysis.d.ts +49 -32
- package/analysis/LineOfSightAnalysisObserver.d.ts +19 -3
- package/analysis/LineOfSightAnalysisTarget.d.ts +19 -3
- package/analysis/Viewshed.d.ts +23 -3
- package/analysis/ViewshedAnalysis.d.ts +33 -13
- package/arcade/geometry/operatorsWorkerConnection.js +1 -1
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/{925271bb763607a326ae.js → 2f04b8679c9f15390517.js} +1 -1
- package/assets/esri/core/workers/chunks/35e5762642d1a3a2e375.js +1 -0
- package/assets/esri/core/workers/chunks/{544070198d2ca556103a.js → 44918ff37818a7d36d76.js} +1 -1
- package/assets/esri/core/workers/chunks/{be5f92e98d09d6e6e38e.js → 4bb1bb3ffb1b71bc43c8.js} +1 -1
- package/assets/esri/core/workers/chunks/{1aa4f5394a596e544aeb.js → 4eae066673484986d4c1.js} +1 -1
- package/assets/esri/core/workers/chunks/{5f4feca26102088ea565.js → 60737732ce495bbdd0fc.js} +1 -1
- package/assets/esri/core/workers/chunks/{916b363c342b61ba5461.js → 787c1a8bda7d745633f2.js} +1 -1
- package/assets/esri/core/workers/chunks/{acfa03c65ba3ca6c5685.js → 8715661a838361d4211a.js} +1 -1
- package/assets/esri/core/workers/chunks/9215b59c5ccecf9add58.js +1 -0
- package/assets/esri/core/workers/chunks/{fafb92ca2c5e4b0b2c23.js → a09d2e1e2540921e4717.js} +1 -1
- package/assets/esri/core/workers/chunks/cb4be68cc5085d421615.js +1 -0
- package/assets/esri/core/workers/chunks/{de6081df29183bf80787.js → d65383f4058dc813f40d.js} +1 -1
- package/assets/esri/core/workers/chunks/d6cd0039d6e9c40961e3.js +1 -0
- package/assets/esri/views/interactive/tooltip/t9n/messages.ar.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.bg.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.bs.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.ca.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.cs.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.da.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.de.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.el.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.es.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.et.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.fi.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.fr.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.he.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.hr.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.hu.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.id.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.it.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.ja.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.ko.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.lt.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.lv.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.nl.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.no.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.pl.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.pt-BR.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.pt-PT.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.ro.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.ru.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.sk.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.sl.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.sr.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.sv.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.th.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.tr.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.uk.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.vi.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.zh-CN.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.zh-HK.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/messages.zh-TW.json +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.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/Editor/t9n/messages.ar.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.bg.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.bs.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.ca.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.cs.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.da.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.de.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.el.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.es.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.et.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.fi.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.fr.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.he.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.hr.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.hu.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.id.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.it.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.ja.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.ko.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.lt.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.lv.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.nl.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.no.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.pl.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.pt-BR.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.pt-PT.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.ro.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.ru.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.sk.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.sl.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.sr.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.sv.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.th.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.tr.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.uk.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.vi.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.zh-CN.json +1 -1
- package/assets/esri/widgets/Editor/t9n/messages.zh-HK.json +1 -1
- package/assets/esri/widgets/Editor/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.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/assets/esri/widgets/Sketch/t9n/messages.ar.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/messages.bg.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/messages.bs.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/messages.ca.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/messages.cs.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/messages.da.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/messages.de.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/messages.el.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/messages.es.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/messages.et.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/messages.fi.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/messages.fr.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/messages.he.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/messages.hr.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/messages.hu.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/messages.id.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/messages.it.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/messages.ja.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/messages.ko.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/messages.lt.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/messages.lv.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/messages.nl.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/messages.no.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/messages.pl.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/messages.pt-BR.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/messages.pt-PT.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/messages.ro.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/messages.ru.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/messages.sk.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/messages.sl.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/messages.sr.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/messages.sv.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/messages.th.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/messages.tr.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/messages.uk.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/messages.vi.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/messages.zh-CN.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/messages.zh-HK.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/messages.zh-TW.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.ar.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.bg.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.bs.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.ca.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.cs.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.da.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.de.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.el.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.es.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.et.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.fi.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.fr.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.he.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.hr.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.hu.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.id.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.it.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.ja.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.ko.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.lt.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.lv.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.nl.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.no.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.pl.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.pt-BR.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.pt-PT.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.ro.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.ru.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.sk.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.sl.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.sr.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.sv.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.th.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.tr.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.uk.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.vi.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.zh-CN.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.zh-HK.json +1 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.zh-TW.json +1 -1
- package/config.js +1 -1
- package/core/workers/WorkerOwner.js +1 -1
- package/core/workers/workerFactory.js +1 -1
- package/core/workers/workers.js +2 -2
- package/core/workers.d.ts +9 -0
- package/geometry/Mesh.js +1 -1
- package/geometry/support/curves/bezierCurveUtils.js +1 -1
- package/geometry/support/curves/ellipticArc7Utils.js +1 -1
- package/geometry/support/meshUtils/rotate.js +1 -1
- package/kernel.js +1 -1
- package/layers/ImageryTileLayer.js +1 -1
- package/layers/LineOfSightLayer.d.ts +10 -8
- package/layers/ViewshedLayer.d.ts +1 -1
- package/layers/graphics/data/QueryEngineResult.js +1 -1
- package/layers/graphics/sources/support/ParquetSourceWorker.js +1 -1
- package/layers/raster/datasets/BaseRaster.js +1 -1
- package/layers/raster/datasets/ImageAuxRaster.js +2 -2
- package/layers/raster/datasets/InMemoryRaster.js +1 -1
- package/layers/support/kmlUtils.js +1 -1
- package/package.json +2 -2
- package/smartMapping/statistics/support/statsWorker.js +1 -1
- package/smartMapping/support/adapters/FeatureLayerAdapter.js +1 -1
- package/smartMapping/support/adapters/InMemoryLayerAdapter.js +1 -1
- package/smartMapping/support/adapters/OGCFeatureLayerAdapter.js +1 -1
- package/smartMapping/support/adapters/SceneLayerAdapter.js +1 -1
- package/smartMapping/support/adapters/support/utils.js +1 -1
- package/symbols/support/ElevationInfo.d.ts +4 -3
- package/views/2d/engine/webgl/mesh/templates/shapingUtils.js +1 -1
- package/views/3d/analysis/LineOfSight/types.d.ts +14 -3
- package/views/3d/analysis/LineOfSightAnalysisView3D.d.ts +39 -13
- package/views/3d/analysis/Viewshed/types.d.ts +7 -0
- package/views/3d/analysis/ViewshedAnalysisView3D.d.ts +43 -15
- package/views/interactive/options/TooltipOptions.d.ts +2 -0
- package/views/interactive/sketch/SketchTooltipOptions.d.ts +2 -0
- package/views/layers/LineOfSightLayerView.d.ts +35 -13
- package/views/layers/SketchLayerView.d.ts +1 -0
- package/views/layers/ViewshedLayerView.d.ts +36 -12
- package/assets/esri/core/workers/chunks/bac8c32665e982896ecc.js +0 -1
- package/assets/esri/core/workers/chunks/d9b1aed88b205689cec6.js +0 -1
- package/assets/esri/core/workers/chunks/de02a6a1f4810f99e9bb.js +0 -1
- package/assets/esri/core/workers/chunks/f4f9d08b2df856e3b694.js +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{pt2px as e}from"../../../../../../core/screenUtils.js";import{fromRotation as t,multiply as n,translate as r,rotate as i}from"../../../../../../core/libs/gl-matrix-2/math/mat2d.js";import{create as a}from"../../../../../../core/libs/gl-matrix-2/factories/mat2df32.js";import{transformMat2d as o,set as s}from"../../../../../../core/libs/gl-matrix-2/math/vec2.js";import{create as c}from"../../../../../../core/libs/gl-matrix-2/factories/vec2f32.js";import{getXAnchorDirection as l,getYAnchorDirection as u}from"../../alignmentUtils.js";import{magicLabelLineHeight as d}from"../../definitions.js";import f from"../../Rect.js";import p from"../../collisions/BoundingBox.js";const m=Math.PI/180;class h{static fromGlyph(e,t,n,r,i){let{mosaicItem:a,rect:o,shaping:s,code:c}=n,l=a.rect;return new h({width:c===0?o.width:l.width*r,height:c===0?o.height:l.height*r,x:r*(e+s.xOffset+o.left),y:r*(t+s.yOffset-o.top),textureBinding:a.textureBinding,texcoords:{topLeft:[l.x,l.y],topRight:[l.x+l.width,l.y],bottomLeft:[l.x,l.y+l.height],bottomRight:[l.x+l.width,l.y+l.height]},fontSize:i?.fontSize,color:i?.color})}constructor(e){this._rotationT=a(),this._transform=a(),this._angle=0,this._bounds=null,this.width=e.width,this.height=e.height,this.x=e.x,this.y=e.y,this.textureBinding=e.textureBinding,this.texcoords=e.texcoords,this.fontSize=e.fontSize,this.color=e.color}set angle(e){this._angle=e,t(this._rotationT,-e),this._offsets=this._bounds=null}get angle(){return this._angle}get offsets(){if(!this._offsets){let{x:e,y:r,width:i,height:s}=this,c=t(a(),-this.angle),l=n(a(),c,this._transform);this._offsets={topLeft:o([0,0],[e,r],l),topRight:o([0,0],[e+i,r],l),bottomLeft:o([0,0],[e,r+s],l),bottomRight:o([0,0],[e+i,r+s],l)}}return this._offsets}get bounds(){if(this.width<=0)return null;if(!this._bounds){let e=this.offsets,t=1/0,n=1/0,r=-1/0,i=-1/0;for(let[a,o]of[e.topLeft,e.topRight,e.bottomLeft,e.bottomRight])t=Math.min(t,a),n=Math.min(n,o),r=Math.max(r,a),i=Math.max(i,o);let a=r-t,o=i-n,s=t+a/2,c=n+o/2;this._bounds=new p(s,c,a,o)}return this._bounds}setTransform(e){this._transform=e,this._offsets=null}}const g=(e,t)=>({code:0,mosaicItem:{rect:new f(0,0,11,8),sdf:!0,page:0,textureBinding:t},rect:{height:4,width:e,left:0,top:0},shaping:{xOffset:0,yOffset:0,xAdvance:0,yAdvance:0}});function _(t){return t===`underline`?e(2):0}function v(e,t,n,r,i){switch(e){case`underline`:return(n??i?.baseline??22)+4+_(e)/t;case`line-through`:return r??i?.midline??16;default:return 0}}function y(e,t){return e.forEach(e=>o(e,e,t)),{topLeft:e[0],topRight:e[1],bottomLeft:e[2],bottomRight:e[3]}}class b{constructor(e,t,n,r){this._rotation=0,this._decorate(e,t,n,r),this.glyphs=e,this.bounds=this._createBounds(e),this.isMultiline=t.length>1,this._hasRotation=n.angle!==0,this._transform=this._createGlyphTransform(this.bounds,n),this._borderLineSizePx=n.borderLineSizePx,(n.borderLineSizePx||n.hasBackground)&&([this.bounds,this.textBox]=this.shapeBackground(this._transform));for(let t of e)t.setTransform(this._transform)}setRotation(e){if(e===0&&this._rotation===0)return;this._rotation=e;let r=this._transform,i=t(a(),e);n(r,i,r);for(let e of this.glyphs)e.setTransform(this._transform)}_decorate(e,t,n,r){if(!n.decoration||n.decoration===`none`||!e.length)return;let i=n.scale,a=e[0].textureBinding;for(let o of t){let t=o.scale??i,s=v(n.decoration,t,o.baseline,o.midline,r),c=o.startX*t,l=o.startY*t,u=(o.width+o.glyphWidthEnd)*t;e.push(h.fromGlyph(c,l+s*t,g(u,a),1))}}shapeBackground(e){let t=(1.5+(this._borderLineSizePx||0))/2,n=this._borderLineSizePx?t:0,{xmin:r,ymin:i,xmax:a,ymax:o,x:s,y:c,width:l,height:u}=this.bounds,d=[r-8,i-8],f=[a+8,i-8],m=[r-8,o+8],h=[a+8,o+8],g=y([[d[0]-t,d[1]-t],[f[0]+t,f[1]-t],[d[0]+n,d[1]+n],[f[0]-n,f[1]+n]],e),_=y([[m[0]+n,m[1]-n],[h[0]-n,h[1]-n],[m[0]-t,m[1]+t],[h[0]+t,h[1]+t]],e),v=y([[d[0]-t,d[1]-t],[d[0]+n,d[1]+n],[m[0]-t,m[1]+t],[m[0]+n,m[1]-n]],e),b=y([[f[0]-n,f[1]+n],[f[0]+t,f[1]-t],[h[0]-n,h[1]-n],[h[0]+t,h[1]+t]],e),x={main:y([d,f,m,h],e),top:g,bot:_,left:v,right:b};return[new p(s,c,l+t*2,u+t*2),x]}get boundsT(){let e=this.bounds,t=s(c(),e.x,e.y);if(o(t,t,this._transform),this._hasRotation){let n=Math.max(e.width,e.height);return new p(t[0],t[1],n,n)}return new p(t[0],t[1],e.width,e.height)}_createBounds(e){let t=1/0,n=1/0,r=0,i=0;for(let a of e)t=Math.min(t,a.offsets.topLeft[0]),n=Math.min(n,a.offsets.topLeft[1]),r=Math.max(r,a.offsets.bottomRight[0]),i=Math.max(i,a.offsets.bottomRight[1]);let a=r-t,o=i-n,s=t+a/2,c=n+o/2;return new p(s,c,a,o)}_createGlyphTransform(e,t){let n=m*t.angle,o=a(),l=c();return r(o,o,s(l,t.xOffset,-t.yOffset)),t.useCIMAngleBehavior?i(o,o,n):(r(o,o,s(l,e.x,e.y)),i(o,o,n),r(o,o,s(l,-e.x,-e.y))),o}}class x{constructor(e,t,n,r,i,a){this.glyphWidthEnd=0,this.startX=0,this.startY=0,this.start=Math.max(0,Math.min(t,n)),this.end=Math.max(0,Math.max(t,n)),this.end<e.length&&(this.glyphWidthEnd=e[this.end].rect.width),this.width=r,this.yMin=i,this.yMax=a}}const S=e=>e===10,C=e=>e===32;function w(e,t,n){let r=[],i=1/n.scale,a=n.maxLineWidth*i,o=t?e.length-1:0,s=t?-1:e.length,c=t?-1:1,l=o,u=0,d=0,f=l,p=f,m=0,h=1/0,g=0;for(;l!==s;){let{code:t,rect:n,shaping:i}=e[l],s=Math.abs(n.top);if(!S(t)&&!C(t)&&(h=Math.min(h,s),g=Math.max(g,s+n.height)),S(t))l!==o&&(r.push(new x(e,f,l-c,u,h===1/0?0:h,g)),h=1/0,g=0),u=0,f=l+c,p=l+c,d=0;else if(C(t))p=l+c,d=0,m=i.xAdvance,u+=i.xAdvance;else if(u>a){if(p!==f){let t=p-2*c;u-=m,r.push(new x(e,f,t,u-d,h,g)),h=1/0,g=0,f=p,u=d}else r.push(new x(e,f,l-c,u,h,g)),h=1/0,g=0,f=l,p=l,u=0;u+=i.xAdvance,d+=i.xAdvance}else u+=i.xAdvance,d+=i.xAdvance;l+=c}let _=new x(e,f,l-c,u,h,g);return _.start>=0&&_.end<e.length&&r.push(_),r}function T(e,t){let n=0;for(let t=0;t<e.length;t++){let{width:r}=e[t];n=Math.max(r,n)}let r=t.decoration===`underline`?4:0,i=e[0].yMin;return{x:0,y:i,height:e[e.length-1].yMax+t.lineHeight*(e.length-1)+r-i,width:n}}function E(e,t,n){let r=0;for(let i=t;i<n;i++)C(e[i].code)&&!S(e[i+1].code)&&r++;return r}function D(e,t){let n=t.scale,r=[],i=e.sdfPadding,{faceInfo:a,glyphs:o,isRightToLeft:s}=e,c=t.horizontalAlignment===`justify`||t.horizontalAlignment===`Justify`,d=w(o,s,t),f=d.length?T(d,t):{y:0,height:0,width:0},p=c?s?1:-1:l(t.horizontalAlignment),m=u(t.verticalAlignment),g=+(m===2),_=g?0:m-1,v=a?.baseline??22,y=d.length>1,x=g?y?-f.y-f.height:-v:-f.y+_*(f.height/2);for(let a=0;a<d.length;a++){let{start:s,end:l,width:u}=d[a],m=c&&a<d.length-1?E(o,s,l):0,g=m>0?(f.width-u)/m:0,_=g>0?f.width:u,v=(p+1)*-1*(_/2)-i,y=(e.isRightToLeft?d.length-1-a:a)*t.lineHeight+x-i;d[a].startX=v,d[a].startY=y;for(let e=s;e<=l;e++){let t=o[e];if(S(t.code))continue;let i=h.fromGlyph(v,y,t,n);v+=t.shaping.xAdvance,g>0&&C(t.code)&&(v+=g),r.push(i)}}return new b(r,d,t,a)}function O(e,t){let n=t.scale,{faceInfo:r,glyphs:i}=e,a=i.reduce((e,t)=>Math.max(e,t.rect.height),0),o=i.filter(e=>!S(e.code)&&e.mosaicItem.textureBinding).map(e=>h.fromGlyph(-e.rect.width/2,-a,e,n));return new b(o,[],t,r)}function k(e,t){return e.type===`glyphs`?D(e,t):j(e,t)}function A(e,t){return e.type===`glyphs`?O(e,t):M(e,t)}function j(e,t){let n=N(e,t),r=P(n,t),i=r.length?I(r):{width:0},a=[],o=t.decoration===`underline`?`none`:t.decoration,s=t.horizontalAlignment===`justify`||t.horizontalAlignment===`Justify`,c=s?-1:l(t.horizontalAlignment),d=u(t.verticalAlignment),f=d===2,p=r.length?r[0].yMin:0,m=r.length?L(r[r.length-1]):0,g=m-p,_=f?r.length>1?-m:-(r[0]?.baseline??0):d===1?-p:d===-1?-m:-(p+g/2);for(let e=0;e<r.length;e++){let t=r[e],o=s&&e<r.length-1?R(n,t.start,t.end):0,l=o>0?(i.width-t.width)/o:0,u=l>0?i.width:t.width,d=(c+1)*-1*(u/2),f=t.startY+_,p=null;t.startX=d,t.startY=f;for(let e=t.start;e<=t.end;e++){let r=n[e],{glyph:i,scale:o,fontSize:s}=r,c=d;if(S(i.code)){p=z(a,p,f,t.baseline);continue}r.decoration===`underline`?(p&&p.underlineOffset!==r.underlineOffset||p&&!B(p.color,r.color))&&(p=z(a,p,f,t.baseline)):p=z(a,p,f,t.baseline);let u=f+t.baseline-r.baseline;a.push(h.fromGlyph(d/o,u/o,i,o,{fontSize:s,color:r.color})),d+=r.xAdvance,r.decoration===`underline`&&(p??={startX:c,endX:d,glyphWidthEnd:i.rect.width*o,textureBinding:i.mosaicItem.textureBinding,underlineOffset:r.underlineOffset,color:r.color},p.endX=d,p.glyphWidthEnd=i.rect.width*o,p.textureBinding=p.textureBinding??i.mosaicItem.textureBinding),l>0&&C(i.code)&&(d+=l,p&&(p.endX=d))}z(a,p,f,t.baseline)}return new b(a,r,{...t,decoration:o})}function M(e,t){let n=N(e,t),r=n.reduce((e,t)=>Math.max(e,t.glyph.rect.height*t.scale),0),i=n.filter(e=>!S(e.glyph.code)&&e.glyph.mosaicItem.textureBinding).map(e=>h.fromGlyph(-e.glyph.rect.width/2,-r/e.scale,e.glyph,e.scale,{fontSize:e.fontSize,color:e.color}));return new b(i,[],t)}function N(t,n){let r=n.lineHeightRatio??1,i=[];for(let n of t.runs){let t=e(n.fontSize),a=t/n.glyphs.sdfSize,o=d/24*t*r,s=(n.glyphs.faceInfo?.baseline??22)*a,c=(n.glyphs.faceInfo?.midline??16)*a,l=4*a+_(n.decoration),u=1+(n.characterSpacing??0);for(let e of n.glyphs.glyphs){let r=e.shaping.xAdvance*a,d=Math.abs(e.rect.top)*a,f=d+e.rect.height*a;i.push({glyph:e,scale:a,fontSize:t,decoration:n.decoration,underlineOffset:l,color:n.color,xAdvance:!S(e.code)&&!C(e.code)?r*u:r,top:d,bottom:f,lineHeight:o,baseline:s,midline:c})}}return i}function P(e,t){let n=[],r=t.maxLineWidth,i=0,a=0,o=0,s=0,c=0,l=0;for(;i<e.length;){let t=e[i],{glyph:u}=t;if(S(u.code))i!==0&&n.push({width:a,start:s,end:i-1,glyphWidthEnd:e[i-1]?.glyph.rect.width*e[i-1]?.scale||0,yMin:0,yMax:0,lineHeight:0,baseline:0,midline:0,startX:0,startY:0,scale:1}),a=0,s=i+1,c=s,o=0,l=0;else if(C(u.code))c=i+1,o=0,l=t.xAdvance,a+=t.xAdvance;else if(a>r){if(c!==s){let t=c-2;a-=l,n.push({width:a-o,start:s,end:t,glyphWidthEnd:e[t]?.glyph.rect.width*e[t]?.scale||0,yMin:0,yMax:0,lineHeight:0,baseline:0,midline:0,startX:0,startY:0,scale:1}),s=c,a=o}else n.push({width:a,start:s,end:i-1,glyphWidthEnd:e[i-1]?.glyph.rect.width*e[i-1]?.scale||0,yMin:0,yMax:0,lineHeight:0,baseline:0,midline:0,startX:0,startY:0,scale:1}),s=i,c=i,a=0;a+=t.xAdvance,o+=t.xAdvance}else a+=t.xAdvance,o+=t.xAdvance;i++}if(s<e.length){let t=e.length-1;n.push({width:a,start:s,end:t,glyphWidthEnd:e[t]?.glyph.rect.width*e[t]?.scale||0,yMin:0,yMax:0,lineHeight:0,baseline:0,midline:0,startX:0,startY:0,scale:1})}return F(e,n)}function F(e,t){for(let n=0;n<t.length;n++){let r=t[n],i=0,a=1/0,o=0,s=0;for(let t=r.start;t<=r.end;t++){let n=e[t];n.decoration===`underline`&&(s=Math.max(s,n.underlineOffset)),!(S(n.glyph.code)||C(n.glyph.code))&&(i=Math.max(i,n.baseline),o=Math.max(o,n.lineHeight))}let c=1/0,l=-1/0;for(let t=r.start;t<=r.end;t++){let n=e[t];S(n.glyph.code)||C(n.glyph.code)||(c=Math.min(c,i-n.baseline+n.top),l=Math.max(l,i-n.baseline+n.bottom),a=Math.min(a,i-n.baseline+n.midline))}s>0&&(l=Math.max(l,i+s)),r.baseline=i,r.midline=a===1/0?i:a,r.lineHeight=Math.max(o,l),r.yMin=c===1/0?0:c,r.yMax=l===-1/0?0:l,r.startY=n>0?t[n-1].startY+t[n-1].lineHeight:0}return t}function I(e){let t=0;for(let n of e)t=Math.max(n.width+n.glyphWidthEnd,t);let n=e[0].yMin,r=e[e.length-1];return{x:0,y:n,height:L(r)-n,width:t}}function L(e){return e.startY+e.lineHeight}function R(e,t,n){let r=0;for(let i=t;i<n;i++)C(e[i].glyph.code)&&!S(e[i+1].glyph.code)&&r++;return r}function z(e,t,n,r){return t&&e.push(h.fromGlyph(t.startX,n+r+t.underlineOffset,g(t.endX-t.startX+t.glyphWidthEnd,t.textureBinding),1,{color:t.color})),null}function B(e,t){return e===t||!!e&&!!t&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]}export{h as ShapedGlyph,b as ShapingInfo,D as shapeGlyphs,O as shapeGlyphsForMultipoint,j as shapeRichText,M as shapeRichTextForMultipoint,k as shapeTextResource,A as shapeTextResourceForMultipoint};
|
|
2
|
+
import{pt2px as e}from"../../../../../../core/screenUtils.js";import{fromRotation as t,multiply as n,translate as r,rotate as i}from"../../../../../../core/libs/gl-matrix-2/math/mat2d.js";import{create as a}from"../../../../../../core/libs/gl-matrix-2/factories/mat2df32.js";import{transformMat2d as o,set as s}from"../../../../../../core/libs/gl-matrix-2/math/vec2.js";import{create as c}from"../../../../../../core/libs/gl-matrix-2/factories/vec2f32.js";import{getXAnchorDirection as l,getYAnchorDirection as u}from"../../alignmentUtils.js";import{magicLabelLineHeight as d}from"../../definitions.js";import f from"../../Rect.js";import p from"../../collisions/BoundingBox.js";const m=Math.PI/180;class h{static fromGlyph(e,t,n,r,i){let{mosaicItem:a,rect:o,shaping:s,code:c}=n,l=a.rect;return new h({width:c===0?o.width:l.width*r,height:c===0?o.height:l.height*r,x:r*(e+s.xOffset+o.left),y:r*(t+s.yOffset-o.top),textureBinding:a.textureBinding,texcoords:{topLeft:[l.x,l.y],topRight:[l.x+l.width,l.y],bottomLeft:[l.x,l.y+l.height],bottomRight:[l.x+l.width,l.y+l.height]},fontSize:i?.fontSize,color:i?.color})}constructor(e){this._rotationT=a(),this._transform=a(),this._angle=0,this._bounds=null,this.width=e.width,this.height=e.height,this.x=e.x,this.y=e.y,this.textureBinding=e.textureBinding,this.texcoords=e.texcoords,this.fontSize=e.fontSize,this.color=e.color}set angle(e){this._angle=e,t(this._rotationT,-e),this._offsets=this._bounds=null}get angle(){return this._angle}get offsets(){if(!this._offsets){let{x:e,y:r,width:i,height:s}=this,c=t(a(),-this.angle),l=n(a(),c,this._transform);this._offsets={topLeft:o([0,0],[e,r],l),topRight:o([0,0],[e+i,r],l),bottomLeft:o([0,0],[e,r+s],l),bottomRight:o([0,0],[e+i,r+s],l)}}return this._offsets}get bounds(){if(this.width<=0)return null;if(!this._bounds){let e=this.offsets,t=1/0,n=1/0,r=-1/0,i=-1/0;for(let[a,o]of[e.topLeft,e.topRight,e.bottomLeft,e.bottomRight])t=Math.min(t,a),n=Math.min(n,o),r=Math.max(r,a),i=Math.max(i,o);let a=r-t,o=i-n,s=t+a/2,c=n+o/2;this._bounds=new p(s,c,a,o)}return this._bounds}setTransform(e){this._transform=e,this._offsets=null}}const g=(e,t)=>({code:0,mosaicItem:{rect:new f(0,0,11,8),sdf:!0,page:0,textureBinding:t},rect:{height:4,width:e,left:0,top:0},shaping:{xOffset:0,yOffset:0,xAdvance:0,yAdvance:0}});function _(t){return t===`underline`?e(2):0}function v(e,t,n,r,i){switch(e){case`underline`:return(n??i?.baseline??22)+4+_(e)/t;case`line-through`:return r??i?.midline??16;default:return 0}}function y(e,t){return e.forEach(e=>o(e,e,t)),{topLeft:e[0],topRight:e[1],bottomLeft:e[2],bottomRight:e[3]}}class b{constructor(e,t,n,r){this._rotation=0,this._decorate(e,t,n,r),this.glyphs=e,this.bounds=this._createBounds(e),this.isMultiline=t.length>1,this._hasRotation=n.angle!==0,this._transform=this._createGlyphTransform(this.bounds,n),this._borderLineSizePx=n.borderLineSizePx,(n.borderLineSizePx||n.hasBackground)&&([this.bounds,this.textBox]=this.shapeBackground(this._transform));for(let t of e)t.setTransform(this._transform)}setRotation(e){if(e===0&&this._rotation===0)return;this._rotation=e;let r=this._transform,i=t(a(),e);n(r,i,r);for(let e of this.glyphs)e.setTransform(this._transform)}_decorate(e,t,n,r){if(!n.decoration||n.decoration===`none`||!e.length)return;let i=n.scale,a=e[0].textureBinding;for(let o of t){let t=o.scale??i,s=v(n.decoration,t,o.baseline,o.midline,r),c=o.startX*t,l=o.startY*t,u=(o.width+o.glyphWidthEnd)*t;e.push(h.fromGlyph(c,l+s*t,g(u,a),1))}}shapeBackground(e){let t=(1.5+(this._borderLineSizePx||0))/2,n=this._borderLineSizePx?t:0,{xmin:r,ymin:i,xmax:a,ymax:o,x:s,y:c,width:l,height:u}=this.bounds,d=[r-8,i-8],f=[a+8,i-8],m=[r-8,o+8],h=[a+8,o+8],g=y([[d[0]-t,d[1]-t],[f[0]+t,f[1]-t],[d[0]+n,d[1]+n],[f[0]-n,f[1]+n]],e),_=y([[m[0]+n,m[1]-n],[h[0]-n,h[1]-n],[m[0]-t,m[1]+t],[h[0]+t,h[1]+t]],e),v=y([[d[0]-t,d[1]-t],[d[0]+n,d[1]+n],[m[0]-t,m[1]+t],[m[0]+n,m[1]-n]],e),b=y([[f[0]-n,f[1]+n],[f[0]+t,f[1]-t],[h[0]-n,h[1]-n],[h[0]+t,h[1]+t]],e),x={main:y([d,f,m,h],e),top:g,bot:_,left:v,right:b};return[new p(s,c,l+t*2,u+t*2),x]}get boundsT(){let e=this.bounds,t=s(c(),e.x,e.y);if(o(t,t,this._transform),this._hasRotation){let n=Math.max(e.width,e.height);return new p(t[0],t[1],n,n)}return new p(t[0],t[1],e.width,e.height)}_createBounds(e){let t=1/0,n=1/0,r=0,i=0;for(let a of e)t=Math.min(t,a.offsets.topLeft[0]),n=Math.min(n,a.offsets.topLeft[1]),r=Math.max(r,a.offsets.bottomRight[0]),i=Math.max(i,a.offsets.bottomRight[1]);let a=r-t,o=i-n,s=t+a/2,c=n+o/2;return new p(s,c,a,o)}_createGlyphTransform(e,t){let n=m*t.angle,o=a(),l=c();return r(o,o,s(l,t.xOffset,-t.yOffset)),t.useCIMAngleBehavior?i(o,o,n):(r(o,o,s(l,e.x,e.y)),i(o,o,n),r(o,o,s(l,-e.x,-e.y))),o}}class x{constructor(e,t,n,r,i,a){this.glyphWidthEnd=0,this.startX=0,this.startY=0,this.start=Math.max(0,Math.min(t,n)),this.end=Math.max(0,Math.max(t,n)),this.end<e.length&&(this.glyphWidthEnd=e[this.end].rect.width),this.width=r,this.yMin=i,this.yMax=a}}const S=e=>e===10,C=e=>e===32;function w(e,t,n){let r=[],i=1/n.scale,a=n.maxLineWidth*i,o=e.length,s=0,c=0,l=0,u=s,d=u,f=0,p=1/0,m=0;for(;s!==o;){let{code:t,rect:n,shaping:i}=e[s],o=Math.abs(n.top);if(!S(t)&&!C(t)&&(p=Math.min(p,o),m=Math.max(m,o+n.height)),S(t))s!==0&&(r.push(new x(e,u,s-1,c,p===1/0?0:p,m)),p=1/0,m=0),c=0,u=s+1,d=s+1,l=0;else if(C(t))d=s+1,l=0,f=i.xAdvance,c+=i.xAdvance;else if(c>a){if(d!==u){let t=d-2;c-=f,r.push(new x(e,u,t,c-l,p,m)),p=1/0,m=0,u=d,c=l}else r.push(new x(e,u,s-1,c,p,m)),p=1/0,m=0,u=s,d=s,c=0;c+=i.xAdvance,l+=i.xAdvance}else c+=i.xAdvance,l+=i.xAdvance;s+=1}let h=new x(e,u,s-1,c,p,m);return h.start>=0&&h.end<e.length&&r.push(h),r}function T(e,t){let n=0;for(let t=0;t<e.length;t++){let{width:r}=e[t];n=Math.max(r,n)}let r=t.decoration===`underline`?4:0,i=e[0].yMin;return{x:0,y:i,height:e[e.length-1].yMax+t.lineHeight*(e.length-1)+r-i,width:n}}function E(e,t,n){let r=0;for(let i=t;i<n;i++)C(e[i].code)&&!S(e[i+1].code)&&r++;return r}function D(e,t){let n=t.scale,r=[],i=e.sdfPadding,{faceInfo:a,glyphs:o,isRightToLeft:s}=e,c=t.horizontalAlignment===`justify`||t.horizontalAlignment===`Justify`,d=w(o,!1,t),f=d.length?T(d,t):{y:0,height:0,width:0},p=c?s?1:-1:l(t.horizontalAlignment),m=u(t.verticalAlignment),g=+(m===2),_=g?0:m-1,v=a?.baseline??22,y=d.length>1,x=g?y?-f.y-f.height:-v:-f.y+_*(f.height/2);for(let a=0;a<d.length;a++){let{start:s,end:l,width:u}=d[a],m=c&&a<d.length-1?E(o,s,l):0,g=m>0?(f.width-u)/m:0,_=g>0?f.width:u,v=(p+1)*-1*(_/2)-i,y=(e.isRightToLeft?d.length-1-a:a)*t.lineHeight+x-i;d[a].startX=v,d[a].startY=y;for(let e=s;e<=l;e++){let t=o[e];if(S(t.code))continue;let i=h.fromGlyph(v,y,t,n);v+=t.shaping.xAdvance,g>0&&C(t.code)&&(v+=g),r.push(i)}}return new b(r,d,t,a)}function O(e,t){let n=t.scale,{faceInfo:r,glyphs:i}=e,a=i.reduce((e,t)=>Math.max(e,t.rect.height),0),o=i.filter(e=>!S(e.code)&&e.mosaicItem.textureBinding).map(e=>h.fromGlyph(-e.rect.width/2,-a,e,n));return new b(o,[],t,r)}function k(e,t){return e.type===`glyphs`?D(e,t):j(e,t)}function A(e,t){return e.type===`glyphs`?O(e,t):M(e,t)}function j(e,t){let n=N(e,t),r=P(n,t),i=r.length?I(r):{width:0},a=[],o=t.decoration===`underline`?`none`:t.decoration,s=t.horizontalAlignment===`justify`||t.horizontalAlignment===`Justify`,c=s?-1:l(t.horizontalAlignment),d=u(t.verticalAlignment),f=d===2,p=r.length?r[0].yMin:0,m=r.length?L(r[r.length-1]):0,g=m-p,_=f?r.length>1?-m:-(r[0]?.baseline??0):d===1?-p:d===-1?-m:-(p+g/2);for(let e=0;e<r.length;e++){let t=r[e],o=s&&e<r.length-1?R(n,t.start,t.end):0,l=o>0?(i.width-t.width)/o:0,u=l>0?i.width:t.width,d=(c+1)*-1*(u/2),f=t.startY+_,p=null;t.startX=d,t.startY=f;for(let e=t.start;e<=t.end;e++){let r=n[e],{glyph:i,scale:o,fontSize:s}=r,c=d;if(S(i.code)){p=z(a,p,f,t.baseline);continue}r.decoration===`underline`?(p&&p.underlineOffset!==r.underlineOffset||p&&!B(p.color,r.color))&&(p=z(a,p,f,t.baseline)):p=z(a,p,f,t.baseline);let u=f+t.baseline-r.baseline;a.push(h.fromGlyph(d/o,u/o,i,o,{fontSize:s,color:r.color})),d+=r.xAdvance,r.decoration===`underline`&&(p??={startX:c,endX:d,glyphWidthEnd:i.rect.width*o,textureBinding:i.mosaicItem.textureBinding,underlineOffset:r.underlineOffset,color:r.color},p.endX=d,p.glyphWidthEnd=i.rect.width*o,p.textureBinding=p.textureBinding??i.mosaicItem.textureBinding),l>0&&C(i.code)&&(d+=l,p&&(p.endX=d))}z(a,p,f,t.baseline)}return new b(a,r,{...t,decoration:o})}function M(e,t){let n=N(e,t),r=n.reduce((e,t)=>Math.max(e,t.glyph.rect.height*t.scale),0),i=n.filter(e=>!S(e.glyph.code)&&e.glyph.mosaicItem.textureBinding).map(e=>h.fromGlyph(-e.glyph.rect.width/2,-r/e.scale,e.glyph,e.scale,{fontSize:e.fontSize,color:e.color}));return new b(i,[],t)}function N(t,n){let r=n.lineHeightRatio??1,i=[];for(let n of t.runs){let t=e(n.fontSize),a=t/n.glyphs.sdfSize,o=d/24*t*r,s=(n.glyphs.faceInfo?.baseline??22)*a,c=(n.glyphs.faceInfo?.midline??16)*a,l=4*a+_(n.decoration),u=1+(n.characterSpacing??0);for(let e of n.glyphs.glyphs){let r=e.shaping.xAdvance*a,d=Math.abs(e.rect.top)*a,f=d+e.rect.height*a;i.push({glyph:e,scale:a,fontSize:t,decoration:n.decoration,underlineOffset:l,color:n.color,xAdvance:!S(e.code)&&!C(e.code)?r*u:r,top:d,bottom:f,lineHeight:o,baseline:s,midline:c})}}return i}function P(e,t){let n=[],r=t.maxLineWidth,i=0,a=0,o=0,s=0,c=0,l=0;for(;i<e.length;){let t=e[i],{glyph:u}=t;if(S(u.code))i!==0&&n.push({width:a,start:s,end:i-1,glyphWidthEnd:e[i-1]?.glyph.rect.width*e[i-1]?.scale||0,yMin:0,yMax:0,lineHeight:0,baseline:0,midline:0,startX:0,startY:0,scale:1}),a=0,s=i+1,c=s,o=0,l=0;else if(C(u.code))c=i+1,o=0,l=t.xAdvance,a+=t.xAdvance;else if(a>r){if(c!==s){let t=c-2;a-=l,n.push({width:a-o,start:s,end:t,glyphWidthEnd:e[t]?.glyph.rect.width*e[t]?.scale||0,yMin:0,yMax:0,lineHeight:0,baseline:0,midline:0,startX:0,startY:0,scale:1}),s=c,a=o}else n.push({width:a,start:s,end:i-1,glyphWidthEnd:e[i-1]?.glyph.rect.width*e[i-1]?.scale||0,yMin:0,yMax:0,lineHeight:0,baseline:0,midline:0,startX:0,startY:0,scale:1}),s=i,c=i,a=0;a+=t.xAdvance,o+=t.xAdvance}else a+=t.xAdvance,o+=t.xAdvance;i++}if(s<e.length){let t=e.length-1;n.push({width:a,start:s,end:t,glyphWidthEnd:e[t]?.glyph.rect.width*e[t]?.scale||0,yMin:0,yMax:0,lineHeight:0,baseline:0,midline:0,startX:0,startY:0,scale:1})}return F(e,n)}function F(e,t){for(let n=0;n<t.length;n++){let r=t[n],i=0,a=1/0,o=0,s=0;for(let t=r.start;t<=r.end;t++){let n=e[t];n.decoration===`underline`&&(s=Math.max(s,n.underlineOffset)),!(S(n.glyph.code)||C(n.glyph.code))&&(i=Math.max(i,n.baseline),o=Math.max(o,n.lineHeight))}let c=1/0,l=-1/0;for(let t=r.start;t<=r.end;t++){let n=e[t];S(n.glyph.code)||C(n.glyph.code)||(c=Math.min(c,i-n.baseline+n.top),l=Math.max(l,i-n.baseline+n.bottom),a=Math.min(a,i-n.baseline+n.midline))}s>0&&(l=Math.max(l,i+s)),r.baseline=i,r.midline=a===1/0?i:a,r.lineHeight=Math.max(o,l),r.yMin=c===1/0?0:c,r.yMax=l===-1/0?0:l,r.startY=n>0?t[n-1].startY+t[n-1].lineHeight:0}return t}function I(e){let t=0;for(let n of e)t=Math.max(n.width+n.glyphWidthEnd,t);let n=e[0].yMin,r=e[e.length-1];return{x:0,y:n,height:L(r)-n,width:t}}function L(e){return e.startY+e.lineHeight}function R(e,t,n){let r=0;for(let i=t;i<n;i++)C(e[i].glyph.code)&&!S(e[i+1].glyph.code)&&r++;return r}function z(e,t,n,r){return t&&e.push(h.fromGlyph(t.startX,n+r+t.underlineOffset,g(t.endX-t.startX+t.glyphWidthEnd,t.textureBinding),1,{color:t.color})),null}function B(e,t){return e===t||!!e&&!!t&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]}export{h as ShapedGlyph,b as ShapingInfo,D as shapeGlyphs,O as shapeGlyphsForMultipoint,j as shapeRichText,M as shapeRichTextForMultipoint,k as shapeTextResource,A as shapeTextResourceForMultipoint};
|
|
@@ -8,7 +8,11 @@ import type { AbortOptions } from "../../../../core/promiseUtils.js";
|
|
|
8
8
|
import type { ElevationInfoProperties } from "../../../../symbols/support/ElevationInfo.js";
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
|
-
* Elevation information used when placing a line
|
|
11
|
+
* Elevation information used when placing a line of sight analysis interactively.
|
|
12
|
+
*
|
|
13
|
+
* > [!WARNING]
|
|
14
|
+
* >
|
|
15
|
+
* > [ElevationInfo.featureExpressionInfo](https://developers.arcgis.com/javascript/latest/references/core/symbols/support/ElevationInfo/#featureExpressionInfo) is not supported when the elevation info is specified for observers and targets.
|
|
12
16
|
*
|
|
13
17
|
* @since 5.2
|
|
14
18
|
*/
|
|
@@ -25,8 +29,15 @@ export type LineOfSightPlacementElevationInfo = ElevationInfo | ElevationInfoPro
|
|
|
25
29
|
export interface LineOfSightPlacementOptions extends AbortOptions {
|
|
26
30
|
/**
|
|
27
31
|
* Specifies how placed items are positioned on the vertical axis (z). A single elevation information object applies
|
|
28
|
-
* to both the observer and targets. Alternatively, separate elevation information can be provided for each.
|
|
29
|
-
*
|
|
32
|
+
* to both the observer and targets. Alternatively, separate elevation information can be provided for each type.
|
|
33
|
+
*
|
|
34
|
+
* If no elevation info is provided and the [LineOfSightAnalysisObserver.position](https://developers.arcgis.com/javascript/latest/references/core/analysis/LineOfSightAnalysisObserver/#position) or the
|
|
35
|
+
* [LineOfSightAnalysisTarget.position](https://developers.arcgis.com/javascript/latest/references/core/analysis/LineOfSightAnalysisTarget/#position) has a [z-value](https://developers.arcgis.com/javascript/latest/references/core/geometry/Point/#hasZ),
|
|
36
|
+
* it is treated as an absolute value.
|
|
37
|
+
*
|
|
38
|
+
* > [!WARNING]
|
|
39
|
+
* >
|
|
40
|
+
* > [ElevationInfo.featureExpressionInfo](https://developers.arcgis.com/javascript/latest/references/core/symbols/support/ElevationInfo/#featureExpressionInfo) is not supported when the elevation info is specified for observers and targets.
|
|
30
41
|
*
|
|
31
42
|
* @since 5.2
|
|
32
43
|
*/
|
|
@@ -13,9 +13,10 @@ import type { LineOfSightPlacementOptions, LineOfSightPlacementResult } from "./
|
|
|
13
13
|
* The LineOfSightAnalysisView3D is responsible for rendering a [LineOfSightAnalysis](https://developers.arcgis.com/javascript/latest/references/core/analysis/LineOfSightAnalysis/)
|
|
14
14
|
* using custom visualizations.
|
|
15
15
|
*
|
|
16
|
-
* It allows to create an observer and
|
|
16
|
+
* It allows to create an observer and targets interactively using the [place()](https://developers.arcgis.com/javascript/latest/references/core/views/3d/analysis/LineOfSightAnalysisView3D/#place) method, query analysis [results](https://developers.arcgis.com/javascript/latest/references/core/views/3d/analysis/LineOfSightAnalysisView3D/#results),
|
|
17
17
|
* or make an existing analysis editable by enabling the [interactive](https://developers.arcgis.com/javascript/latest/references/core/views/3d/analysis/LineOfSightAnalysisView3D/#interactive) property.
|
|
18
18
|
*
|
|
19
|
+
*
|
|
19
20
|
* The view for an analysis can be retrieved using [SceneView.whenAnalysisView()](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/#whenAnalysisView)
|
|
20
21
|
* similar to how layer views are retrieved for layers using [SceneView.whenLayerView()](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/#whenLayerView).
|
|
21
22
|
*
|
|
@@ -26,11 +27,22 @@ import type { LineOfSightPlacementOptions, LineOfSightPlacementResult } from "./
|
|
|
26
27
|
* const analysisView = await view.whenAnalysisView(analysis);
|
|
27
28
|
* ```
|
|
28
29
|
*
|
|
30
|
+
* > [!WARNING]
|
|
31
|
+
* >
|
|
32
|
+
* > **Things to consider:**
|
|
33
|
+
* > * Snapping, tooltips, display units, and input units used during interactive placement and editing are inherited from
|
|
34
|
+
* [ViewOptions](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/options/ViewOptions/).
|
|
35
|
+
* > * Snapping is enabled by default. This can be temporarily disabled by holding the `CTRL` key.
|
|
36
|
+
* > * Layer types currently supported for snapping are: [FeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/), [GraphicsLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/GraphicsLayer/) (except Mesh geometries),
|
|
37
|
+
* > [GeoJSONLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/GeoJSONLayer/), [WFSLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/WFSLayer/), [CSVLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/CSVLayer/),
|
|
38
|
+
* > [3D Object SceneLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/SceneLayer/), and [BuildingSceneLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/BuildingSceneLayer/).
|
|
39
|
+
*
|
|
29
40
|
* @see [LineOfSightAnalysis](https://developers.arcgis.com/javascript/latest/references/core/analysis/LineOfSightAnalysis/)
|
|
30
41
|
* @see [LineOfSightLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/LineOfSightLayer/)
|
|
31
42
|
* @see [LineOfSightLayerView](https://developers.arcgis.com/javascript/latest/references/core/views/layers/LineOfSightLayerView/)
|
|
32
|
-
* @see [LineOfSightAnalysisTarget](https://developers.arcgis.com/javascript/latest/references/core/analysis/LineOfSightAnalysisTarget/)
|
|
33
43
|
* @see [LineOfSightAnalysisObserver](https://developers.arcgis.com/javascript/latest/references/core/analysis/LineOfSightAnalysisObserver/)
|
|
44
|
+
* @see [LineOfSightAnalysisTarget](https://developers.arcgis.com/javascript/latest/references/core/analysis/LineOfSightAnalysisTarget/)
|
|
45
|
+
* @see [ViewOptions](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/options/ViewOptions/)
|
|
34
46
|
* @see [Line Of Sight component](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-line-of-sight/)
|
|
35
47
|
* @see [Sample - Analysis objects](https://developers.arcgis.com/javascript/latest/sample-code/analysis-objects/)
|
|
36
48
|
* @see [Sample - Line of sight component](https://developers.arcgis.com/javascript/latest/sample-code/line-of-sight/)
|
|
@@ -44,10 +56,12 @@ export default abstract class LineOfSightAnalysisView3D extends AnalysisView3D {
|
|
|
44
56
|
*/
|
|
45
57
|
get analysis(): LineOfSightAnalysis;
|
|
46
58
|
/**
|
|
47
|
-
* Enables interactivity for the
|
|
48
|
-
*
|
|
49
|
-
* [LineOfSightAnalysis.
|
|
50
|
-
*
|
|
59
|
+
* Enables interactivity for the [analysis](https://developers.arcgis.com/javascript/latest/references/core/views/3d/analysis/LineOfSightAnalysisView3D/#analysis).
|
|
60
|
+
* When set to `true`, and the analysis includes a valid [LineOfSightAnalysis.observer](https://developers.arcgis.com/javascript/latest/references/core/analysis/LineOfSightAnalysis/#observer) and any
|
|
61
|
+
* [LineOfSightAnalysis.targets](https://developers.arcgis.com/javascript/latest/references/core/analysis/LineOfSightAnalysis/#targets), they become selectable and editable.
|
|
62
|
+
*
|
|
63
|
+
* Targets can be removed by right-clicking on them or with the `Delete` key.
|
|
64
|
+
* The observer and the last target cannot be deleted interactively.
|
|
51
65
|
*
|
|
52
66
|
* This property is automatically set to `true` when the analysis is assigned to a
|
|
53
67
|
* [Line Of Sight component](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-line-of-sight/).
|
|
@@ -76,8 +90,13 @@ export default abstract class LineOfSightAnalysisView3D extends AnalysisView3D {
|
|
|
76
90
|
*/
|
|
77
91
|
get results(): Collection<LineOfSightAnalysisResult | null | undefined>;
|
|
78
92
|
/**
|
|
79
|
-
* The observer or target currently selected for interactive editing.
|
|
80
|
-
*
|
|
93
|
+
* The observer or target currently selected for interactive editing.
|
|
94
|
+
*
|
|
95
|
+
* When [interactive](https://developers.arcgis.com/javascript/latest/references/core/views/3d/analysis/LineOfSightAnalysisView3D/#interactive) is `true`, any observer or target in the
|
|
96
|
+
* [analysis](https://developers.arcgis.com/javascript/latest/references/core/views/3d/analysis/LineOfSightAnalysisView3D/#analysis) can be selected
|
|
97
|
+
* and its properties can be edited by interacting with the manipulators in the view.
|
|
98
|
+
*
|
|
99
|
+
* Use the item's `type` property to determine whether it is an observer or a target.
|
|
81
100
|
*
|
|
82
101
|
* @since 5.2
|
|
83
102
|
* @example
|
|
@@ -111,7 +130,7 @@ export default abstract class LineOfSightAnalysisView3D extends AnalysisView3D {
|
|
|
111
130
|
get visible(): boolean;
|
|
112
131
|
set visible(value: boolean | null | undefined);
|
|
113
132
|
/**
|
|
114
|
-
* Starts the interactive placement of an observer and
|
|
133
|
+
* Starts the interactive placement of an observer and targets on the [analysis](https://developers.arcgis.com/javascript/latest/references/core/views/3d/analysis/LineOfSightAnalysisView3D/#analysis).
|
|
115
134
|
*
|
|
116
135
|
* If the analysis does not have a valid observer yet, this method will allow placing an observer, which can be followed
|
|
117
136
|
* by zero or more targets. Otherwise, if it already has a valid observer, it will allow placing targets. An observer
|
|
@@ -123,9 +142,13 @@ export default abstract class LineOfSightAnalysisView3D extends AnalysisView3D {
|
|
|
123
142
|
* The promise resolves when the operation is productive, i.e. an observer or any targets were added.
|
|
124
143
|
* Otherwise, if nothing was added or signal was aborted, the promise is rejected.
|
|
125
144
|
*
|
|
145
|
+
* By default, the observer and targets are created at absolute height.
|
|
146
|
+
* Optionally, by specifying the options of the method,
|
|
147
|
+
* you can change the [elevation info](https://developers.arcgis.com/javascript/latest/references/core/symbols/support/ElevationInfo/).
|
|
148
|
+
*
|
|
126
149
|
* Calling this method sets [interactive](https://developers.arcgis.com/javascript/latest/references/core/views/3d/analysis/LineOfSightAnalysisView3D/#interactive) to `true`.
|
|
127
150
|
*
|
|
128
|
-
* @param options - An object specifying additional options.
|
|
151
|
+
* @param options - An object specifying additional placement options, including elevation information and an abort signal.
|
|
129
152
|
* @returns A promise
|
|
130
153
|
* which resolves when the operation is completed successfully - i.e. the user places an observer and/or target(s),
|
|
131
154
|
* leaving the analysis in a valid state. Otherwise, the promise is rejected.
|
|
@@ -135,11 +158,14 @@ export default abstract class LineOfSightAnalysisView3D extends AnalysisView3D {
|
|
|
135
158
|
*
|
|
136
159
|
* try {
|
|
137
160
|
* await analysisView.place({
|
|
138
|
-
*
|
|
139
|
-
*
|
|
161
|
+
* signal: abortController.signal,
|
|
162
|
+
* // optional elevation info
|
|
163
|
+
* elevationInfo: { mode: "relative-to-ground", offset: 1.5 },
|
|
140
164
|
* });
|
|
141
165
|
* } catch (error) {
|
|
142
|
-
*
|
|
166
|
+
* if (error.name === "AbortError") {
|
|
167
|
+
* console.log("Placement operation was cancelled.");
|
|
168
|
+
* }
|
|
143
169
|
* }
|
|
144
170
|
*
|
|
145
171
|
* // cancel the placement operation at some later point
|
|
@@ -12,6 +12,13 @@ export interface ViewshedPlacementOptions extends AbortOptions {
|
|
|
12
12
|
* Specifies how the placed viewshed observer is positioned on the vertical axis (z).
|
|
13
13
|
* Accepts an [ElevationInfo](https://developers.arcgis.com/javascript/latest/references/core/symbols/support/ElevationInfo/) instance or a plain object with elevation information properties.
|
|
14
14
|
*
|
|
15
|
+
* If no elevation info is provided and the [Viewshed.observer](https://developers.arcgis.com/javascript/latest/references/core/analysis/Viewshed/#observer) has a [z-value](https://developers.arcgis.com/javascript/latest/references/core/geometry/Point/#hasZ),
|
|
16
|
+
* it is treated as an absolute value.
|
|
17
|
+
*
|
|
18
|
+
* > [!WARNING]
|
|
19
|
+
* >
|
|
20
|
+
* > [ElevationInfo.featureExpressionInfo](https://developers.arcgis.com/javascript/latest/references/core/symbols/support/ElevationInfo/#featureExpressionInfo) is not supported when the elevation info is specified for viewsheds.
|
|
21
|
+
*
|
|
15
22
|
* @since 5.2
|
|
16
23
|
*/
|
|
17
24
|
elevationInfo?: ElevationInfo | ElevationInfoProperties | null;
|
|
@@ -12,10 +12,7 @@ import type { ViewshedPlacementOptions, ViewshedPlacementResult } from "./Viewsh
|
|
|
12
12
|
*
|
|
13
13
|
* It allows to create new viewsheds interactively using the [place()](https://developers.arcgis.com/javascript/latest/references/core/views/3d/analysis/ViewshedAnalysisView3D/#place) method,
|
|
14
14
|
* or to make existing viewsheds selectable and editable by enabling the [interactive](https://developers.arcgis.com/javascript/latest/references/core/views/3d/analysis/ViewshedAnalysisView3D/#interactive) property.
|
|
15
|
-
* To select a viewshed, hover and click on its
|
|
16
|
-
*
|
|
17
|
-
* Snapping, tooltips, display units, and input units used during interactive placement and editing are inherited from
|
|
18
|
-
* [ViewOptions](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/options/ViewOptions/).
|
|
15
|
+
* To select a viewshed, hover and click on its observer.
|
|
19
16
|
*
|
|
20
17
|
* The view for an analysis can be retrieved using [SceneView.whenAnalysisView()](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/#whenAnalysisView)
|
|
21
18
|
* similar to how layer views are retrieved for layers using [SceneView.whenLayerView()](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/#whenLayerView).
|
|
@@ -29,11 +26,22 @@ import type { ViewshedPlacementOptions, ViewshedPlacementResult } from "./Viewsh
|
|
|
29
26
|
* const analysisView = await view.whenAnalysisView(analysis);
|
|
30
27
|
* ```
|
|
31
28
|
*
|
|
29
|
+
* > [!WARNING]
|
|
30
|
+
* >
|
|
31
|
+
* > **Things to consider:**
|
|
32
|
+
* > * Snapping, tooltips, display units, and input units used during interactive placement and editing are inherited from
|
|
33
|
+
* [ViewOptions](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/options/ViewOptions/).
|
|
34
|
+
* > * Snapping is enabled by default. This can be temporarily disabled by holding the `CTRL` key.
|
|
35
|
+
* > * Layer types currently supported for snapping are: [FeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/), [GraphicsLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/GraphicsLayer/) (except Mesh geometries),
|
|
36
|
+
* > [GeoJSONLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/GeoJSONLayer/), [WFSLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/WFSLayer/), [CSVLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/CSVLayer/),
|
|
37
|
+
* > [3D Object SceneLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/SceneLayer/), and [BuildingSceneLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/BuildingSceneLayer/).
|
|
38
|
+
*
|
|
32
39
|
* @since 4.30
|
|
33
40
|
* @see [ViewshedAnalysis](https://developers.arcgis.com/javascript/latest/references/core/analysis/ViewshedAnalysis/)
|
|
34
41
|
* @see [Viewshed](https://developers.arcgis.com/javascript/latest/references/core/analysis/Viewshed/)
|
|
35
42
|
* @see [ViewshedLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/ViewshedLayer/)
|
|
36
43
|
* @see [ViewshedLayerView](https://developers.arcgis.com/javascript/latest/references/core/views/layers/ViewshedLayerView/)
|
|
44
|
+
* @see [ViewOptions](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/options/ViewOptions/)
|
|
37
45
|
* @see [Sample - Interactive viewshed analysis](https://developers.arcgis.com/javascript/latest/sample-code/analysis-viewshed/)
|
|
38
46
|
* @see [Sample - Analysis objects](https://developers.arcgis.com/javascript/latest/sample-code/analysis-objects/)
|
|
39
47
|
* @see [3D viewshed overview](https://developers.arcgis.com/documentation/spatial-analysis-services/3d-visual/3d-viewshed/)
|
|
@@ -43,17 +51,21 @@ export default abstract class ViewshedAnalysisView3D extends AnalysisView3D {
|
|
|
43
51
|
/** The viewshed analysis object associated with the analysis view. */
|
|
44
52
|
get analysis(): ViewshedAnalysis;
|
|
45
53
|
/**
|
|
46
|
-
* Enables interactivity for the [analysis](https://developers.arcgis.com/javascript/latest/references/core/views/3d/analysis/ViewshedAnalysisView3D/#analysis).
|
|
47
|
-
* valid [ViewshedAnalysis.viewsheds](https://developers.arcgis.com/javascript/latest/references/core/analysis/ViewshedAnalysis/#viewsheds),
|
|
54
|
+
* Enables interactivity for the [analysis](https://developers.arcgis.com/javascript/latest/references/core/views/3d/analysis/ViewshedAnalysisView3D/#analysis).
|
|
55
|
+
* When set to `true` and the analysis includes any valid [ViewshedAnalysis.viewsheds](https://developers.arcgis.com/javascript/latest/references/core/analysis/ViewshedAnalysis/#viewsheds),
|
|
56
|
+
* they become selectable and editable.
|
|
57
|
+
*
|
|
58
|
+
* Viewsheds can be removed with the `Delete` key.
|
|
48
59
|
*
|
|
49
60
|
* @default false
|
|
50
61
|
*/
|
|
51
62
|
accessor interactive: boolean;
|
|
52
63
|
/**
|
|
53
|
-
* The
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
64
|
+
* The viewshed currently selected for interactive editing.
|
|
65
|
+
*
|
|
66
|
+
* When [interactive](https://developers.arcgis.com/javascript/latest/references/core/views/3d/analysis/ViewshedAnalysisView3D/#interactive) is `true`, any viewshed in the
|
|
67
|
+
* [analysis](https://developers.arcgis.com/javascript/latest/references/core/views/3d/analysis/ViewshedAnalysisView3D/#analysis) can be selected
|
|
68
|
+
* and its properties can be edited by interacting with the manipulators in the view.
|
|
57
69
|
*/
|
|
58
70
|
accessor selectedViewshed: Viewshed | null | undefined;
|
|
59
71
|
/** The analysis view type. */
|
|
@@ -71,34 +83,46 @@ export default abstract class ViewshedAnalysisView3D extends AnalysisView3D {
|
|
|
71
83
|
*
|
|
72
84
|
* This method is similar to the [place()](https://developers.arcgis.com/javascript/latest/references/core/views/3d/analysis/ViewshedAnalysisView3D/#place) method, but it allows to create multiple viewsheds in a row.
|
|
73
85
|
*
|
|
86
|
+
* By default, the observer is created at absolute height.
|
|
87
|
+
* Optionally, by specifying the options of the method,
|
|
88
|
+
* you can change the [elevation info](https://developers.arcgis.com/javascript/latest/references/core/symbols/support/ElevationInfo/).
|
|
89
|
+
*
|
|
74
90
|
* Calling this method sets [interactive](https://developers.arcgis.com/javascript/latest/references/core/views/3d/analysis/ViewshedAnalysisView3D/#interactive) to `true`.
|
|
75
91
|
*
|
|
76
|
-
* @param options - An object specifying additional options.
|
|
92
|
+
* @param options - An object specifying additional placement options, including elevation information and an abort signal.
|
|
77
93
|
* @returns A promise which resolves when creation is completed successfully or rejected if it is
|
|
78
94
|
* canceled.
|
|
79
95
|
* @example
|
|
80
96
|
* const abortController = new AbortController();
|
|
81
97
|
*
|
|
82
98
|
* try {
|
|
83
|
-
*
|
|
99
|
+
* await analysisView.createViewsheds({
|
|
100
|
+
* signal: abortController.signal,
|
|
101
|
+
* // optional elevation info
|
|
102
|
+
* elevationInfo: { mode: "relative-to-ground", offset: 1.5 },
|
|
103
|
+
* });
|
|
84
104
|
* } catch (error) {
|
|
85
105
|
* if (error.name === "AbortError") {
|
|
86
106
|
* console.log("Creation operation was cancelled.");
|
|
87
107
|
* }
|
|
88
108
|
* }
|
|
89
109
|
*
|
|
90
|
-
* // cancel the
|
|
110
|
+
* // cancel the creation operation at some later point
|
|
91
111
|
* abortController.abort();
|
|
92
112
|
*/
|
|
93
113
|
createViewsheds(options?: ViewshedPlacementOptions | null | undefined): Promise<void>;
|
|
94
114
|
/**
|
|
95
115
|
* Starts the interactive placement of a single viewshed, adding it to the [analysis](https://developers.arcgis.com/javascript/latest/references/core/views/3d/analysis/ViewshedAnalysisView3D/#analysis).
|
|
96
116
|
*
|
|
97
|
-
* The first click in the scene places the observer point and the second sets the viewshed's orientation.
|
|
117
|
+
* The first click in the scene places the observer point and the second sets the viewshed's orientation and distance.
|
|
98
118
|
*
|
|
99
119
|
* The placement operation will finish when the user presses the escape key.
|
|
100
120
|
* To stop the placing programmatically, pass an abort signal as an argument when calling the method.
|
|
101
121
|
*
|
|
122
|
+
* By default, the observer is created at absolute height.
|
|
123
|
+
* Optionally, by specifying the options of the method,
|
|
124
|
+
* you can change the [elevation info](https://developers.arcgis.com/javascript/latest/references/core/symbols/support/ElevationInfo/).
|
|
125
|
+
*
|
|
102
126
|
* Calling this method sets [interactive](https://developers.arcgis.com/javascript/latest/references/core/views/3d/analysis/ViewshedAnalysisView3D/#interactive) to `true`.
|
|
103
127
|
*
|
|
104
128
|
* @param options - An object specifying additional options.
|
|
@@ -109,7 +133,11 @@ export default abstract class ViewshedAnalysisView3D extends AnalysisView3D {
|
|
|
109
133
|
* const abortController = new AbortController();
|
|
110
134
|
*
|
|
111
135
|
* try {
|
|
112
|
-
*
|
|
136
|
+
* await analysisView.place({
|
|
137
|
+
* signal: abortController.signal,
|
|
138
|
+
* // optional elevation info
|
|
139
|
+
* elevationInfo: { mode: "relative-to-ground", offset: 1.5 },
|
|
140
|
+
* });
|
|
113
141
|
* } catch (error) {
|
|
114
142
|
* if (error.name === "AbortError") {
|
|
115
143
|
* console.log("Placement operation was cancelled.");
|
|
@@ -90,6 +90,8 @@ export interface TooltipOptionsProperties extends Partial<Pick<TooltipOptions, "
|
|
|
90
90
|
* `Esc` | Closes the input mode but keeps any applied constraints. |
|
|
91
91
|
* Left-click-drag (on tooltip header) | Allows to change the position of the tooltip in input mode. |
|
|
92
92
|
*
|
|
93
|
+
* Numeric inputs accept simple math expressions with two values and one operator: `+`, `-`, `*`, or `/`.
|
|
94
|
+
*
|
|
93
95
|
* @since 5.2
|
|
94
96
|
* @see [LabelOptions](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/options/LabelOptions/)
|
|
95
97
|
* @see [ValueOptions](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/options/ValueOptions/)
|
|
@@ -69,6 +69,8 @@ export interface SketchTooltipOptionsProperties extends TooltipOptionsProperties
|
|
|
69
69
|
* `Esc` | Closes the input mode but keeps any applied constraints. |
|
|
70
70
|
* Left-click-drag (on tooltip header) | Allows to change the position of the tooltip in input mode. |
|
|
71
71
|
*
|
|
72
|
+
* Numeric inputs accept simple math expressions with two values and one operator: `+`, `-`, `*`, or `/`.
|
|
73
|
+
*
|
|
72
74
|
* @deprecated since 5.2. Use [TooltipOptions](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/options/TooltipOptions/) instead.
|
|
73
75
|
* @since 4.24
|
|
74
76
|
* @see [Sketch](https://developers.arcgis.com/javascript/latest/references/core/widgets/Sketch/)
|
|
@@ -28,23 +28,35 @@ export interface LineOfSightLayerViewProperties extends LayerViewProperties, Par
|
|
|
28
28
|
* const layerView = await view.whenLayerView(lineOfSightLayer);
|
|
29
29
|
* ```
|
|
30
30
|
*
|
|
31
|
+
* > [!WARNING]
|
|
32
|
+
* >
|
|
33
|
+
* > **Things to consider:**
|
|
34
|
+
* > * Snapping, tooltips, display units, and input units used during interactive placement and editing are inherited from
|
|
35
|
+
* [ViewOptions](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/options/ViewOptions/).
|
|
36
|
+
* > * Snapping is enabled by default. This can be temporarily disabled by holding the `CTRL` key.
|
|
37
|
+
* > * Layer types currently supported for snapping are: [FeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/), [GraphicsLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/GraphicsLayer/) (except Mesh geometries),
|
|
38
|
+
* > [GeoJSONLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/GeoJSONLayer/), [WFSLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/WFSLayer/), [CSVLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/CSVLayer/),
|
|
39
|
+
* > [3D Object SceneLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/SceneLayer/), and [BuildingSceneLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/BuildingSceneLayer/).
|
|
40
|
+
*
|
|
31
41
|
* @see [LineOfSightLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/LineOfSightLayer/)
|
|
32
42
|
* @see [LineOfSightAnalysis](https://developers.arcgis.com/javascript/latest/references/core/analysis/LineOfSightAnalysis/)
|
|
33
43
|
* @see [LineOfSightAnalysisTarget](https://developers.arcgis.com/javascript/latest/references/core/analysis/LineOfSightAnalysisTarget/)
|
|
34
44
|
* @see [LineOfSightAnalysisObserver](https://developers.arcgis.com/javascript/latest/references/core/analysis/LineOfSightAnalysisObserver/)
|
|
35
45
|
* @see [LineOfSightAnalysisView3D](https://developers.arcgis.com/javascript/latest/references/core/views/3d/analysis/LineOfSightAnalysisView3D/)
|
|
46
|
+
* @see [ViewOptions](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/options/ViewOptions/)
|
|
36
47
|
* @see [Line Of Sight component](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-line-of-sight/)
|
|
37
48
|
* @see [Async cancellation with AbortController](https://developers.arcgis.com/javascript/latest/async-cancellation-with-abortcontroller/)
|
|
38
49
|
*/
|
|
39
50
|
export default abstract class LineOfSightLayerView extends LayerView {
|
|
40
51
|
/**
|
|
41
|
-
* Enables interactivity for the [layer](https://developers.arcgis.com/javascript/latest/references/core/views/layers/LineOfSightLayerView/#layer).
|
|
42
|
-
*
|
|
43
|
-
* [LineOfSightLayer.
|
|
44
|
-
*
|
|
45
|
-
*
|
|
52
|
+
* Enables interactivity for the [layer](https://developers.arcgis.com/javascript/latest/references/core/views/layers/LineOfSightLayerView/#layer).
|
|
53
|
+
* When set to `true`, and the layer includes a valid [LineOfSightLayer.observer](https://developers.arcgis.com/javascript/latest/references/core/layers/LineOfSightLayer/#observer) and any
|
|
54
|
+
* [LineOfSightLayer.targets](https://developers.arcgis.com/javascript/latest/references/core/layers/LineOfSightLayer/#targets), they become selectable and editable and the manipulators will be displayed.
|
|
55
|
+
*
|
|
56
|
+
* Targets can be removed by right-clicking on them or with the `Delete` key.
|
|
57
|
+
* The observer and the last target cannot be deleted interactively.
|
|
46
58
|
*
|
|
47
|
-
* This property is automatically set to `true` when the analysis is assigned to a
|
|
59
|
+
* This property is automatically set to `true` when the [LineOfSightLayer.analysis](https://developers.arcgis.com/javascript/latest/references/core/layers/LineOfSightLayer/#analysis) is assigned to a
|
|
48
60
|
* [Line Of Sight component](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-line-of-sight/).
|
|
49
61
|
*
|
|
50
62
|
* @default false
|
|
@@ -72,20 +84,26 @@ export default abstract class LineOfSightLayerView extends LayerView {
|
|
|
72
84
|
*/
|
|
73
85
|
get results(): Collection<LineOfSightAnalysisResult | null | undefined>;
|
|
74
86
|
/**
|
|
75
|
-
* Starts the interactive placement of an observer and
|
|
87
|
+
* Starts the interactive placement of an observer and targets on the [layer](https://developers.arcgis.com/javascript/latest/references/core/views/layers/LineOfSightLayerView/#layer)'s
|
|
76
88
|
* [LineOfSightLayer.analysis](https://developers.arcgis.com/javascript/latest/references/core/layers/LineOfSightLayer/#analysis).
|
|
77
89
|
*
|
|
78
|
-
* If the
|
|
79
|
-
* by zero or more targets. Otherwise, if it already has a valid observer, it will allow placing targets.
|
|
90
|
+
* If the layer does not have a valid [LineOfSightLayer.observer](https://developers.arcgis.com/javascript/latest/references/core/layers/LineOfSightLayer/#observer) yet, this method will allow placing an observer,
|
|
91
|
+
* which can be followed by zero or more targets. Otherwise, if it already has a valid observer, it will allow placing targets.
|
|
92
|
+
* An observer is valid when it has a position. Placing an observer without any targets is a productive operation.
|
|
80
93
|
*
|
|
81
|
-
* The placement operation will finish when the user presses the escape key.
|
|
94
|
+
* The placement operation will finish when the user presses the escape key. Pressing escape after placing an observer
|
|
95
|
+
* or target finalizes a productive operation. Pressing escape before a valid observer is placed rejects the promise.
|
|
82
96
|
* To stop the placing programmatically, pass an abort signal as an argument when calling the method.
|
|
83
|
-
* The promise resolves when the operation is productive, i.e. an
|
|
97
|
+
* The promise resolves when the operation is productive, i.e. an observer or any targets were added.
|
|
84
98
|
* Otherwise, if nothing was added or signal was aborted, the promise is rejected.
|
|
85
99
|
*
|
|
100
|
+
* By default, the observer and targets are created at absolute height.
|
|
101
|
+
* Optionally, by specifying the options of the method,
|
|
102
|
+
* you can change the [elevation info](https://developers.arcgis.com/javascript/latest/references/core/symbols/support/ElevationInfo/).
|
|
103
|
+
*
|
|
86
104
|
* Calling this method sets [interactive](https://developers.arcgis.com/javascript/latest/references/core/views/layers/LineOfSightLayerView/#interactive) to `true`.
|
|
87
105
|
*
|
|
88
|
-
* @param options -
|
|
106
|
+
* @param options - An object specifying additional placement options, including elevation information and an abort signal.
|
|
89
107
|
* @returns A promise
|
|
90
108
|
* which resolves when the operation is completed successfully - i.e. the user places an observer and/or target(s),
|
|
91
109
|
* leaving the analysis in a valid state. Otherwise, the promise is rejected.
|
|
@@ -94,7 +112,11 @@ export default abstract class LineOfSightLayerView extends LayerView {
|
|
|
94
112
|
* const abortController = new AbortController();
|
|
95
113
|
*
|
|
96
114
|
* try {
|
|
97
|
-
*
|
|
115
|
+
* await layerView.place({
|
|
116
|
+
* signal: abortController.signal,
|
|
117
|
+
* // optional elevation info
|
|
118
|
+
* elevationInfo: { mode: "relative-to-ground", offset: 1.5 },
|
|
119
|
+
* });
|
|
98
120
|
* } catch (error) {
|
|
99
121
|
* if (error.name === "AbortError") {
|
|
100
122
|
* console.log("Placement operation was cancelled.");
|
|
@@ -10,6 +10,7 @@ import type { LayerViewHighlightOptions } from "./types.js";
|
|
|
10
10
|
* Represents the view of a [SketchLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/SketchLayer/) in a [MapView](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/).
|
|
11
11
|
*
|
|
12
12
|
* @since 5.2
|
|
13
|
+
* @beta
|
|
13
14
|
* @see [SketchLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/SketchLayer/)
|
|
14
15
|
*/
|
|
15
16
|
export default abstract class SketchLayerView extends LayerView {
|
|
@@ -15,7 +15,7 @@ export interface ViewshedLayerViewProperties extends LayerViewProperties, Partia
|
|
|
15
15
|
*
|
|
16
16
|
* It allows to create new viewsheds interactively using the [place()](https://developers.arcgis.com/javascript/latest/references/core/views/layers/ViewshedLayerView/#place) method,
|
|
17
17
|
* or to make existing viewsheds selectable and editable by enabling the [interactive](https://developers.arcgis.com/javascript/latest/references/core/views/layers/ViewshedLayerView/#interactive) property.
|
|
18
|
-
* To select a viewshed, hover and click on
|
|
18
|
+
* To select a viewshed, hover and click on its observer.
|
|
19
19
|
*
|
|
20
20
|
* The view for the layer can be retrieved using [SceneView.whenLayerView()](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/#whenLayerView).
|
|
21
21
|
*
|
|
@@ -28,6 +28,16 @@ export interface ViewshedLayerViewProperties extends LayerViewProperties, Partia
|
|
|
28
28
|
* const layerView = await view.whenLayerView(viewshedLayer);
|
|
29
29
|
* ```
|
|
30
30
|
*
|
|
31
|
+
* > [!WARNING]
|
|
32
|
+
* >
|
|
33
|
+
* > **Things to consider:**
|
|
34
|
+
* > * Snapping, tooltips, display units, and input units used during interactive placement and editing are inherited from
|
|
35
|
+
* [ViewOptions](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/options/ViewOptions/).
|
|
36
|
+
* > * Snapping is enabled by default. This can be temporarily disabled by holding the `CTRL` key.
|
|
37
|
+
* > * Layer types currently supported for snapping are: [FeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/), [GraphicsLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/GraphicsLayer/) (except Mesh geometries),
|
|
38
|
+
* > [GeoJSONLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/GeoJSONLayer/), [WFSLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/WFSLayer/), [CSVLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/CSVLayer/),
|
|
39
|
+
* > [3D Object SceneLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/SceneLayer/), and [BuildingSceneLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/BuildingSceneLayer/).
|
|
40
|
+
*
|
|
31
41
|
* @since 4.31
|
|
32
42
|
* @see [ViewshedLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/ViewshedLayer/)
|
|
33
43
|
* @see [Viewshed](https://developers.arcgis.com/javascript/latest/references/core/analysis/Viewshed/)
|
|
@@ -39,8 +49,10 @@ export interface ViewshedLayerViewProperties extends LayerViewProperties, Partia
|
|
|
39
49
|
export default abstract class ViewshedLayerView extends LayerView {
|
|
40
50
|
/**
|
|
41
51
|
* Enables interactivity for the [layer](https://developers.arcgis.com/javascript/latest/references/core/views/layers/ViewshedLayerView/#layer). When set to `true` and the layer's
|
|
42
|
-
* [ViewshedLayer.source](https://developers.arcgis.com/javascript/latest/references/core/layers/ViewshedLayer/#source) includes any
|
|
43
|
-
*
|
|
52
|
+
* [ViewshedLayer.source](https://developers.arcgis.com/javascript/latest/references/core/layers/ViewshedLayer/#source) includes any valid [viewsheds](https://developers.arcgis.com/javascript/latest/references/core/analysis/Viewshed/),
|
|
53
|
+
* they become selectable and editable.
|
|
54
|
+
*
|
|
55
|
+
* Viewsheds can be removed with the `Delete` key.
|
|
44
56
|
*
|
|
45
57
|
* @default false
|
|
46
58
|
*/
|
|
@@ -55,19 +67,23 @@ export default abstract class ViewshedLayerView extends LayerView {
|
|
|
55
67
|
*/
|
|
56
68
|
accessor selectedViewshed: Viewshed | null | undefined;
|
|
57
69
|
/**
|
|
58
|
-
* Starts the interactive creation of new viewsheds and adds them to the
|
|
59
|
-
* [ViewshedLayer.source](https://developers.arcgis.com/javascript/latest/references/core/layers/ViewshedLayer/#source).
|
|
70
|
+
* Starts the interactive creation of new viewsheds and adds them to the
|
|
71
|
+
* [ViewshedLayer.source](https://developers.arcgis.com/javascript/latest/references/core/layers/ViewshedLayer/#source) of the associated [layer](https://developers.arcgis.com/javascript/latest/references/core/views/layers/ViewshedLayerView/#layer).
|
|
60
72
|
*
|
|
61
|
-
* The first click in the scene places the observer point and the second sets the viewshed's orientation.
|
|
73
|
+
* The first click in the scene places the observer point and the second sets the viewshed's orientation and distance.
|
|
62
74
|
*
|
|
63
75
|
* The creation process will finish when the user double-clicks the mouse or presses the escape key.
|
|
64
76
|
* To stop the creation programmatically, pass an abort signal as an argument when calling the method.
|
|
65
77
|
*
|
|
66
78
|
* This method is similar to the [place()](https://developers.arcgis.com/javascript/latest/references/core/views/layers/ViewshedLayerView/#place) method, but it allows to create multiple viewsheds in a row.
|
|
67
79
|
*
|
|
80
|
+
* By default, the observer is created at absolute height.
|
|
81
|
+
* Optionally, by specifying the options of the method,
|
|
82
|
+
* you can change the [elevation info](https://developers.arcgis.com/javascript/latest/references/core/symbols/support/ElevationInfo/).
|
|
83
|
+
*
|
|
68
84
|
* Calling this method sets [interactive](https://developers.arcgis.com/javascript/latest/references/core/views/layers/ViewshedLayerView/#interactive) to `true`.
|
|
69
85
|
*
|
|
70
|
-
* @param options -
|
|
86
|
+
* @param options - An object specifying additional placement options, including elevation information and an abort signal.
|
|
71
87
|
* @returns A promise which resolves when creation is completed successfully or rejected if it is
|
|
72
88
|
* canceled.
|
|
73
89
|
* @example
|
|
@@ -86,17 +102,21 @@ export default abstract class ViewshedLayerView extends LayerView {
|
|
|
86
102
|
*/
|
|
87
103
|
createViewsheds(options?: ViewshedPlacementOptions | null | undefined): Promise<void>;
|
|
88
104
|
/**
|
|
89
|
-
* Starts the interactive placement of a single viewshed, adding it to the
|
|
90
|
-
* [ViewshedLayer.source](https://developers.arcgis.com/javascript/latest/references/core/layers/ViewshedLayer/#source).
|
|
105
|
+
* Starts the interactive placement of a single viewshed, adding it to the
|
|
106
|
+
* [ViewshedLayer.source](https://developers.arcgis.com/javascript/latest/references/core/layers/ViewshedLayer/#source) of the associated [layer](https://developers.arcgis.com/javascript/latest/references/core/views/layers/ViewshedLayerView/#layer).
|
|
91
107
|
*
|
|
92
|
-
* The first click in the scene places the observer point and the second sets the viewshed's orientation.
|
|
108
|
+
* The first click in the scene places the observer point and the second sets the viewshed's orientation and distance.
|
|
93
109
|
*
|
|
94
110
|
* The placement operation will finish when the user presses the escape key.
|
|
95
111
|
* To stop the placing programmatically, pass an abort signal as an argument when calling the method.
|
|
96
112
|
*
|
|
113
|
+
* By default, the observer is created at absolute height.
|
|
114
|
+
* Optionally, by specifying the options of the method,
|
|
115
|
+
* you can change the [elevation info](https://developers.arcgis.com/javascript/latest/references/core/symbols/support/ElevationInfo/).
|
|
116
|
+
*
|
|
97
117
|
* Calling this method sets [interactive](https://developers.arcgis.com/javascript/latest/references/core/views/layers/ViewshedLayerView/#interactive) to `true`.
|
|
98
118
|
*
|
|
99
|
-
* @param options -
|
|
119
|
+
* @param options - An object specifying additional placement options, including elevation information and an abort signal.
|
|
100
120
|
* @returns A promise which
|
|
101
121
|
* resolves when the operation is completed successfully or rejected if it is canceled.
|
|
102
122
|
* @since 4.33
|
|
@@ -104,7 +124,11 @@ export default abstract class ViewshedLayerView extends LayerView {
|
|
|
104
124
|
* const abortController = new AbortController();
|
|
105
125
|
*
|
|
106
126
|
* try {
|
|
107
|
-
*
|
|
127
|
+
* await layerView.place({
|
|
128
|
+
* signal: abortController.signal,
|
|
129
|
+
* // optional elevation info
|
|
130
|
+
* elevationInfo: { mode: "relative-to-ground", offset: 1.5 },
|
|
131
|
+
* });
|
|
108
132
|
* } catch (error) {
|
|
109
133
|
* if (error.name === "AbortError") {
|
|
110
134
|
* console.log("Placement operation was cancelled.");
|