@arcgis/core 6.0.0-next.36 → 6.0.0-next.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/{0202eb8c2b2865f99981.js → 00311d1b18d5952a014b.js} +1 -1
- package/assets/esri/core/workers/chunks/0b21d0e2e5a91c34a108.js +1 -0
- package/assets/esri/core/workers/chunks/{f717005e14a7e9141df7.js → 2050c844b5a29b1df28a.js} +1 -1
- package/assets/esri/core/workers/chunks/2c3612379111457c3221.js +1 -0
- package/assets/esri/core/workers/chunks/2f9072563194026e320e.js +1 -0
- package/assets/esri/core/workers/chunks/{d9a240a3c6bf85124474.js → 342a97974a78007b25e0.js} +1 -1
- package/assets/esri/core/workers/chunks/34467f7d84baffd772a3.js +1 -0
- package/assets/esri/core/workers/chunks/{4d18b48d4a282a0f341c.js → 427d929dc7f89b0a1ea9.js} +1 -1
- package/assets/esri/core/workers/chunks/432728c557be5dfa26b5.js +1 -0
- package/assets/esri/core/workers/chunks/46969f379623810b2eca.js +1 -0
- package/assets/esri/core/workers/chunks/592b5db1459c02cf6a0c.js +1 -0
- package/assets/esri/core/workers/chunks/6a21dc13a465757ba007.js +1 -0
- package/assets/esri/core/workers/chunks/{379db67f78161ebd5468.js → 7023651ed6398dcf8efb.js} +1 -1
- package/assets/esri/core/workers/chunks/{90360c0bd053d3e3fd77.js → 7027a0e7bfabb3bb7fc2.js} +1 -1
- package/assets/esri/core/workers/chunks/78818c2a898444f7e890.js +1 -0
- package/assets/esri/core/workers/chunks/{40c2674dae73f0942751.js → 7d497df6e13162156342.js} +1 -1
- package/assets/esri/core/workers/chunks/8a3dfe997712dc2ddead.js +1 -0
- package/assets/esri/core/workers/chunks/{81bcc495e6eaf2cf7474.js → 8f82a0a6747f673a2a7e.js} +1 -1
- package/assets/esri/core/workers/chunks/9826baa3c15ea2062669.js +1 -0
- package/assets/esri/core/workers/chunks/{d3369ffed19f4c264dcd.js → 9ab0735e86cf8932bf9d.js} +1 -1
- package/assets/esri/core/workers/chunks/ab0ea4042f4e13874aed.js +1 -0
- package/assets/esri/core/workers/chunks/ab98ade3257360015d6c.js +1 -0
- package/assets/esri/core/workers/chunks/{796c6195b6bf59dcc9bd.js → b25a05c58b0fd0f6ac60.js} +1 -1
- package/assets/esri/core/workers/chunks/b90271ce38522bcf813b.js +1 -0
- package/assets/esri/core/workers/chunks/ba91df9835cdea7698a9.js +1 -0
- package/assets/esri/core/workers/chunks/bfe13ac9fa1aafb190a1.js +1 -0
- package/assets/esri/core/workers/chunks/ce0274847ccce6a1ac53.js +1 -0
- package/assets/esri/core/workers/chunks/cf2e5f827cea7d7319ce.js +1 -0
- package/assets/esri/core/workers/chunks/dae2036faa28dade2119.js +1 -0
- package/assets/esri/core/workers/chunks/{e8fb2ba7b7a4f0916325.js → eed4b90494a54f8b337b.js} +1 -1
- package/assets/esri/core/workers/chunks/fc77eb7683e708774168.js +1 -0
- package/chunks/Clouds.glsl.js +7 -11
- package/config.js +1 -1
- package/core/libs/gl-matrix-2/math/vec3.js +1 -1
- package/kernel.js +1 -1
- package/layers/BaseElevationLayer.js +1 -1
- package/layers/ElevationLayer.js +1 -1
- package/layers/IntegratedMesh3DTilesLayer.js +1 -1
- package/layers/IntegratedMeshLayer.d.ts +2 -0
- package/layers/IntegratedMeshLayer.js +1 -1
- package/layers/knowledgeGraph/KnowledgeGraphLayerDataManager.js +1 -1
- package/layers/support/ElevationQuery.js +1 -1
- package/layers/video/VideoController.js +3 -3
- package/layers/video/types.d.ts +12 -0
- package/package.json +3 -3
- package/views/2d/engine/Bitmap.js +1 -1
- package/views/2d/engine/flow/styles/Imagery.js +1 -1
- package/views/2d/engine/vectorTiles/SpriteMosaic.js +1 -1
- package/views/2d/engine/vectorTiles/VTLPainter3D.js +1 -1
- package/views/2d/engine/webgl/AttributeStoreView.js +1 -1
- package/views/2d/engine/webgl/GlyphMosaic.js +1 -1
- package/views/2d/engine/webgl/Overlay.js +1 -1
- package/views/2d/engine/webgl/OverlayMultipoint.js +1 -1
- package/views/2d/engine/webgl/SpriteMosaic.js +1 -1
- package/views/2d/engine/webgl/VideoScreenRenderer.js +1 -1
- package/views/2d/engine/webgl/animations/store/AnimationStore.js +1 -1
- package/views/2d/engine/webgl/collisions/LabelStore.js +1 -1
- package/views/2d/engine/webgl/effects/highlight/HighlightGradient.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/TextureStatisticsTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/blend/BlendTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/colorize/ColorizeTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/dotDensity/DotDensityResources.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/drop-shadow/DropShadowTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/heatmap/HeatmapResources.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/magnifier/MagnifierTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/opacity/OpacityTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/raster/RasterColorizerTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/raster/RasterHighlightTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/textureUtils.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/tile/TileDebugInfoTexture.js +1 -1
- package/views/2d/engine/webgl/textureUtils.js +1 -1
- package/views/2d/layers/LayerView2D.js +1 -1
- package/views/2d/webglDeps.js +1 -1
- package/views/3d/GroundView3D.js +1 -1
- package/views/3d/input/SceneInputManager.js +1 -1
- package/views/3d/layers/GaussianSplatLayerView3D.js +1 -1
- package/views/3d/layers/graphics/ElevationAligners.js +1 -1
- package/views/3d/layers/graphics/Graphics3DLineSymbolLayer.js +1 -1
- package/views/3d/layers/i3s/LayerElevationProvider.js +1 -1
- package/views/3d/support/engineContent/line.js +1 -1
- package/views/3d/support/engineContent/marker.js +1 -1
- package/views/3d/support/flow/StreamlineResources3D.js +1 -1
- package/views/3d/support/flow/StreamlineResources3DOverlay.js +1 -1
- package/views/3d/support/flow/StreamlineResources3DShape.js +1 -1
- package/views/3d/support/flow/geometryUtils.js +1 -1
- package/views/3d/support/gaussianSplatting/GaussianSplatIntersectionHandler.js +1 -1
- package/views/3d/support/gaussianSplatting/GaussianSplatOrderTexture.js +1 -1
- package/views/3d/support/gaussianSplatting/GaussianSplatTextureAtlas.js +1 -1
- package/views/3d/support/gaussianSplatting/GaussianTileBuilder.js +2 -0
- package/views/3d/support/gaussianSplatting/formatConstants.js +2 -0
- package/views/3d/support/pointsOfInterest/CameraOnSurface.js +1 -1
- package/views/3d/support/pointsOfInterest/StableSurfaceCenter.js +1 -1
- package/views/3d/terrain/OverlayRenderer.js +1 -1
- package/views/3d/terrain/TerrainRenderer.js +1 -1
- package/views/3d/terrain/TerrainSurface.js +1 -1
- package/views/3d/terrain/TileCompositor.js +1 -1
- package/views/3d/terrain/TileRenderer.js +1 -1
- package/views/3d/webgl/RenderNode.d.ts +1 -1
- package/views/3d/webgl-engine/core/FBOCache.js +1 -1
- package/views/3d/webgl-engine/core/renderPasses/RenderPassManager.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/hud/HUD.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/util/GaussianSplatUnpacking.glsl.js +15 -11
- package/views/3d/webgl-engine/effects/atmosphere/LocalAtmosphere.js +1 -1
- package/views/3d/webgl-engine/effects/atmosphere/MarsAtmosphere.js +1 -1
- package/views/3d/webgl-engine/effects/clouds/CloudsRenderer.js +1 -1
- package/views/3d/webgl-engine/effects/highlight/Highlight.js +1 -1
- package/views/3d/webgl-engine/effects/magnifier/Magnifier.js +1 -1
- package/views/3d/webgl-engine/effects/smaa/SMAA.js +1 -1
- package/views/3d/webgl-engine/effects/ssao/SSAO.js +1 -1
- package/views/3d/webgl-engine/effects/stars/Stars.js +1 -1
- package/views/3d/webgl-engine/lib/AttributeView.js +1 -1
- package/views/3d/webgl-engine/lib/BasisUtil.js +1 -1
- package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
- package/views/3d/webgl-engine/lib/DDSUtil.js +1 -1
- package/views/3d/webgl-engine/lib/DrapedHeatmapRenderer.js +1 -1
- package/views/3d/webgl-engine/lib/GPUPointOcclusionQuery.js +1 -1
- package/views/3d/webgl-engine/lib/GaussianSplatRenderUtils.js +1 -1
- package/views/3d/webgl-engine/lib/ManagedTexture.js +1 -1
- package/views/3d/webgl-engine/lib/TextTextureAtlas.js +1 -1
- package/views/3d/webgl-engine/lib/TextureBackedBuffer/TextureBuffer.js +1 -1
- package/views/3d/webgl-engine/lib/TextureBackedBuffer/TextureBufferView.js +1 -1
- package/views/3d/webgl-engine/lib/VerticesView.js +2 -0
- package/views/3d/webgl-engine/lib/attributeViewUtils.js +1 -1
- package/views/3d/webgl-engine/lib/edgeRendering/strokes.js +1 -1
- package/views/3d/webgl-engine/lib/glUtil3D.js +1 -1
- package/views/3d/webgl-engine/materials/LineMarkerMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/internal/WaterTextureRepository.js +1 -1
- package/views/3d/webgl-engine/materials/internal/lineMarkerBufferUtils.js +2 -0
- package/views/3d/webgl-engine/materials/internal/ribbonLineBufferUtils.js +2 -0
- package/views/3d/webgl-engine/materials/renderers/VaoRenderer.js +1 -1
- package/views/3d/webgl-engine/materials/stippleTextureRepository.js +1 -1
- package/views/draw/support/ManagedTooltipField.js +1 -1
- package/views/support/TextureCompressionHelper.js +1 -1
- package/views/support/imageReprojection.js +1 -1
- package/views/webgl/FramebufferObject.js +1 -1
- package/views/webgl/RenderingContext.js +1 -1
- package/views/webgl/Texture.js +1 -1
- package/views/webgl/rasterUtils.js +1 -1
- package/views/webgl/testSVGPremultipliedAlpha.js +1 -1
- package/views/webgl/textureUtils.js +1 -1
- package/widgets/ScaleRangeSlider/types.d.ts +3 -3
- package/assets/esri/core/workers/chunks/039d9bc5b5015012f811.js +0 -1
- package/assets/esri/core/workers/chunks/08140725277de5d2e41a.js +0 -1
- package/assets/esri/core/workers/chunks/16cda273927ab0a39544.js +0 -1
- package/assets/esri/core/workers/chunks/29c610ce1c81ebb84a6b.js +0 -1
- package/assets/esri/core/workers/chunks/3223f9fbc76ba9ef8d13.js +0 -1
- package/assets/esri/core/workers/chunks/3fdcc383bbd9cf0d274c.js +0 -1
- package/assets/esri/core/workers/chunks/46c290108a90518ef695.js +0 -1
- package/assets/esri/core/workers/chunks/48b8b57f559a53c6c513.js +0 -1
- package/assets/esri/core/workers/chunks/4a979fce1c971b614a18.js +0 -1
- package/assets/esri/core/workers/chunks/5bd1414220e42cb8ebcf.js +0 -1
- package/assets/esri/core/workers/chunks/5d781c2c6204cffffd0d.js +0 -1
- package/assets/esri/core/workers/chunks/723df53cfa0189837d01.js +0 -1
- package/assets/esri/core/workers/chunks/7400b8c454b47ee4fb3c.js +0 -1
- package/assets/esri/core/workers/chunks/7af4edc6e87d27b9d467.js +0 -1
- package/assets/esri/core/workers/chunks/990e96139b5a1dccb061.js +0 -1
- package/assets/esri/core/workers/chunks/a607541959169741a943.js +0 -1
- package/assets/esri/core/workers/chunks/aa779896fd9e5c341349.js +0 -1
- package/assets/esri/core/workers/chunks/c131e0dd180a4c10e12e.js +0 -1
- package/assets/esri/core/workers/chunks/f3b4159c0722df8ffe13.js +0 -1
- package/assets/esri/core/workers/chunks/f75eec2cbc541eec9712.js +0 -1
package/chunks/Clouds.glsl.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import has from"../core/has.js";import{lerp as e}from"../core/mathUtils.js";import{create as t}from"../core/libs/gl-matrix-2/factories/mat3f64.js";import{set as n}from"../core/libs/gl-matrix-2/math/vec2.js";import{create as r}from"../core/libs/gl-matrix-2/factories/vec2f64.js";import{ScreenSpacePass as i}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{BooleanPassUniform as a}from"../views/3d/webgl-engine/core/shaderModules/BooleanPassUniform.js";import{Float2PassUniform as o}from"../views/3d/webgl-engine/core/shaderModules/Float2PassUniform.js";import{FloatPassUniform as s}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as c}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix3PassUniform as l}from"../views/3d/webgl-engine/core/shaderModules/Matrix3PassUniform.js";import{Texture2DPassUniform as u}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{atlasSize as d,tileRows as f,tileSize as p,textureScale as m,weatherMapScale as h}from"../views/3d/webgl-engine/effects/clouds/NoiseTextureAtlasDimensions.js";import{SphereIntersect as g}from"../views/3d/webgl-engine/shaders/SphereIntersect.glsl.js";import{NoParameters as _}from"../views/webgl/NoParameters.js";import{ShaderBuilder as v}from"../views/webgl/ShaderBuilder.js";class y extends _{constructor(){super(...arguments),this.cloudRadius=0,this.cloudSize=0,this.detailSize=0,this.absorption=0,this.density=0,this.smoothness=0,this.cloudHeight=0,this.coverage=0,this.lastSlice=!1,this.viewMatrix=t()}}const b=has(`esri-mobile`)?1024:2048;function x(t){let r=new v;r.include(i,!1);let _=r.fragment;return _.include(g),_.uniforms.add(new s(`cloudRadius`,e=>e.cloudRadius),new s(`power`,t=>e(35,120,t.absorption)),new s(`
|
|
2
|
+
import has from"../core/has.js";import{lerp as e}from"../core/mathUtils.js";import{create as t}from"../core/libs/gl-matrix-2/factories/mat3f64.js";import{set as n}from"../core/libs/gl-matrix-2/math/vec2.js";import{create as r}from"../core/libs/gl-matrix-2/factories/vec2f64.js";import{ScreenSpacePass as i}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{BooleanPassUniform as a}from"../views/3d/webgl-engine/core/shaderModules/BooleanPassUniform.js";import{Float2PassUniform as o}from"../views/3d/webgl-engine/core/shaderModules/Float2PassUniform.js";import{FloatPassUniform as s}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as c}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix3PassUniform as l}from"../views/3d/webgl-engine/core/shaderModules/Matrix3PassUniform.js";import{Texture2DPassUniform as u}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{atlasSize as d,tileRows as f,tileSize as p,textureScale as m,weatherMapScale as h}from"../views/3d/webgl-engine/effects/clouds/NoiseTextureAtlasDimensions.js";import{SphereIntersect as g}from"../views/3d/webgl-engine/shaders/SphereIntersect.glsl.js";import{NoParameters as _}from"../views/webgl/NoParameters.js";import{ShaderBuilder as v}from"../views/webgl/ShaderBuilder.js";class y extends _{constructor(){super(...arguments),this.cloudRadius=0,this.cloudSize=0,this.detailSize=0,this.absorption=0,this.density=0,this.smoothness=0,this.cloudHeight=0,this.coverage=0,this.lastSlice=!1,this.viewMatrix=t()}}const b=has(`esri-mobile`)?1024:2048;function x(t){let r=new v;r.include(i,!1);let _=r.fragment;return _.include(g),_.uniforms.add(new s(`cloudRadius`,e=>e.cloudRadius),new s(`power`,t=>e(35,120,t.absorption)),new s(`density`,t=>e(0,.3,t.density)),new s(`cloudSize`,t=>e(0,.02,Math.max(.01,1-t.cloudSize))),new s(`detailSize`,t=>e(0,.2,Math.max(.01,1-t.detailSize))),new s(`smoothness`,t=>e(0,.5,1-t.smoothness)),new s(`cloudHeight`,t=>e(0,1500,t.cloudHeight)),new l(`view`,e=>e.viewMatrix),new u(`cloudShapeTexture`,e=>e.noiseTexture?.textureAtlas),new o(`cloudVariables`,e=>n(S,e.coverage,e.absorption)),new a(`lastSlice`,e=>e.lastSlice)),_.constants.add(`halfCubeMapSize`,`float`,b*.5),_.code.add(c`
|
|
3
3
|
const int STEPS = ${t.steps===0?c`16`:t.steps===1?c`100`:c`200`};
|
|
4
4
|
const int STEPS_LIGHT = 6;
|
|
5
5
|
const float stepL = 300.0 / float(STEPS_LIGHT);
|
|
@@ -51,12 +51,12 @@ import has from"../core/has.js";import{lerp as e}from"../core/mathUtils.js";impo
|
|
|
51
51
|
return texture(cloudShapeTexture, uv).a;
|
|
52
52
|
}
|
|
53
53
|
`),_.code.add(c`float clouds(vec3 p) {
|
|
54
|
-
float cloud = saturate(0.5 * mix(0.0, 1.0, min(2.0 *
|
|
54
|
+
float cloud = saturate(0.5 * mix(0.0, 1.0, min(2.0 * cloudVariables.x, 1.0)));
|
|
55
55
|
if (cloud <= 0.0) {
|
|
56
56
|
return 0.0;
|
|
57
57
|
}
|
|
58
58
|
float cloudMap = getCloudMap(cloudSize * p.xy);
|
|
59
|
-
cloud = mix(cloud, min(2.0 * (
|
|
59
|
+
cloud = mix(cloud, min(2.0 * (cloudVariables.x), 1.0) * cloudMap, min(2.0 * (1.0 - cloudVariables.x), 1.0));
|
|
60
60
|
if (cloud <= 0.0) {
|
|
61
61
|
return 0.0;
|
|
62
62
|
}
|
|
@@ -81,7 +81,7 @@ float phaseAttenuation = 1.0;
|
|
|
81
81
|
float luminance = 0.0;
|
|
82
82
|
for (int i = 0; i < 4; i++) {
|
|
83
83
|
float phase = mix(HenyeyGreenstein(0.0, mu), HenyeyGreenstein(0.3 * phaseAttenuation, mu), 0.7);
|
|
84
|
-
luminance += contribution * phase * exp(-stepL * extinction *
|
|
84
|
+
luminance += contribution * phase * exp(-stepL * extinction * (1.0 + cloudVariables.y) * attenuation);
|
|
85
85
|
attenuation *= 0.2;
|
|
86
86
|
contribution *= 0.6;
|
|
87
87
|
phaseAttenuation *= 0.5;
|
|
@@ -95,7 +95,7 @@ lightRayDensity += clouds(p + sunDirection * 3.0 * stepL);
|
|
|
95
95
|
lightRayDensity += clouds(p + sunDirection * 4.0 * stepL);
|
|
96
96
|
lightRayDensity += clouds(p + sunDirection * 5.0 * stepL);
|
|
97
97
|
float beersLaw = multipleOctaves(lightRayDensity, mu, stepL);
|
|
98
|
-
return mix(beersLaw * 2.0 * (1.0 - (exp(-stepL * lightRayDensity * 2.0 *
|
|
98
|
+
return mix(beersLaw * 2.0 * (1.0 - (exp(-stepL * lightRayDensity * 2.0 * (1.0 + cloudVariables.y) ))), beersLaw, 0.5 + 0.5 * mu);
|
|
99
99
|
}`),_.code.add(c`float mainRay(vec3 org, vec3 dir, vec3 sunDirection, float distToStart, float totalDistance, out float totalTransmittance) {
|
|
100
100
|
if (dir.z < 0.0) {
|
|
101
101
|
return 0.0;
|
|
@@ -110,7 +110,7 @@ float dist = distToStart;
|
|
|
110
110
|
float shading = 0.0;
|
|
111
111
|
for (int i = 0; i < STEPS; i++) {
|
|
112
112
|
float sampleDensity = clouds(p);
|
|
113
|
-
float sampleSigmaE = sampleDensity *
|
|
113
|
+
float sampleSigmaE = sampleDensity * (1.0 + cloudVariables.y);
|
|
114
114
|
if (sampleDensity > 0.0 ) {
|
|
115
115
|
float ambient = mix((1.2), (1.6), saturate((length(p) - cloudRadius - cloudStart) / cloudHeight));
|
|
116
116
|
float luminance = sampleDensity * (ambient + power * phaseFunction * lightRay(org, p, phaseFunction, mu, sunDirection));
|
|
@@ -126,11 +126,7 @@ dist += stepS;
|
|
|
126
126
|
p = org + dir * dist;
|
|
127
127
|
}
|
|
128
128
|
return shading;
|
|
129
|
-
}`),_.main.add(c`
|
|
130
|
-
fragColor = vec4(0.0, 1.0, 0.0, 1.0);
|
|
131
|
-
return;
|
|
132
|
-
}
|
|
133
|
-
vec3 rayDir = rayDirection(gl_FragCoord.xy);
|
|
129
|
+
}`),_.main.add(c`vec3 rayDir = rayDirection(gl_FragCoord.xy);
|
|
134
130
|
rayDir = normalize(view * rayDir);
|
|
135
131
|
vec3 viewPos = vec3(0, 0, cloudRadius + 1.0);
|
|
136
132
|
float hazeFactor = smoothstep(-0.01, mix(0.0, 0.075, cloudVariables.x), abs(dot(rayDir, vec3(0, 0, 1))));
|
package/config.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import"./core/has.js";import{deepMerge as e}from"./core/object.js";const t={apiKey:void 0,apiKeys:{scopes:[]},applicationName:``,applicationUrl:globalThis.location?.href,assetsPath:``,fontsUrl:`https://static.arcgis.com/fonts`,geometryServiceUrl:`https://utility.arcgisonline.com/arcgis/rest/services/Geometry/GeometryServer`,geoRSSServiceUrl:`https://utility.arcgis.com/sharing/rss`,kmlServiceUrl:`https://utility.arcgis.com/sharing/kml`,userPrivilegesApplied:!0,portalUrl:`https://www.arcgis.com`,respectPrefersReducedMotion:!0,routeServiceUrl:`https://route-api.arcgis.com/arcgis/rest/services/World/Route/NAServer/Route_World`,workers:{loaderConfig:{has:{},paths:{},map:{},packages:[]}},request:{crossOriginNoCorsDomains:null,httpsDomains:[`arcgis.com`,`arcgisonline.com`,`esrikr.com`,`premiumservices.blackbridge.com`,`esripremium.accuweather.com`,`gbm.digitalglobe.com`,`firstlook.digitalglobe.com`,`msi.digitalglobe.com`],interceptors:[],internalInterceptors:[],maxUrlLength:2e3,priority:`high`,proxyRules:[],proxyUrl:null,timeout:62e3,trustedServers:[],useIdentity:!0},log:{interceptors:[],level:null}};globalThis.esriConfig&&(e(t,globalThis.esriConfig,!0),delete t.has),t.assetsPath||(t.assetsPath=`https://cdn.jsdelivr.net/npm/@arcgis/core@6.0.0-next.
|
|
2
|
+
import"./core/has.js";import{deepMerge as e}from"./core/object.js";const t={apiKey:void 0,apiKeys:{scopes:[]},applicationName:``,applicationUrl:globalThis.location?.href,assetsPath:``,fontsUrl:`https://static.arcgis.com/fonts`,geometryServiceUrl:`https://utility.arcgisonline.com/arcgis/rest/services/Geometry/GeometryServer`,geoRSSServiceUrl:`https://utility.arcgis.com/sharing/rss`,kmlServiceUrl:`https://utility.arcgis.com/sharing/kml`,userPrivilegesApplied:!0,portalUrl:`https://www.arcgis.com`,respectPrefersReducedMotion:!0,routeServiceUrl:`https://route-api.arcgis.com/arcgis/rest/services/World/Route/NAServer/Route_World`,workers:{loaderConfig:{has:{},paths:{},map:{},packages:[]}},request:{crossOriginNoCorsDomains:null,httpsDomains:[`arcgis.com`,`arcgisonline.com`,`esrikr.com`,`premiumservices.blackbridge.com`,`esripremium.accuweather.com`,`gbm.digitalglobe.com`,`firstlook.digitalglobe.com`,`msi.digitalglobe.com`],interceptors:[],internalInterceptors:[],maxUrlLength:2e3,priority:`high`,proxyRules:[],proxyUrl:null,timeout:62e3,trustedServers:[],useIdentity:!0},log:{interceptors:[],level:null}};globalThis.esriConfig&&(e(t,globalThis.esriConfig,!0),delete t.has),t.assetsPath||(t.assetsPath=`https://cdn.jsdelivr.net/npm/@arcgis/core@6.0.0-next.37/assets`,t.defaultAssetsPath=t.assetsPath);export{t as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{create as e}from"../factories/vec3f64.js";import{getEpsilon as t,RANDOM as n}from"./common.js";function r(e){let t=e[0],n=e[1],r=e[2];return Math.sqrt(t*t+n*n+r*r)}function i(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function a(e,t,n,r){return e[0]=t,e[1]=n,e[2]=r,e}function o(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e}function s(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e[2]=t[2]-n[2],e}function c(e,t,n){return e[0]=t[0]*n[0],e[1]=t[1]*n[1],e[2]=t[2]*n[2],e}function l(e,t,n){return e[0]=t[0]/n[0],e[1]=t[1]/n[1],e[2]=t[2]/n[2],e}function u(e,t){return e[0]=Math.ceil(t[0]),e[1]=Math.ceil(t[1]),e[2]=Math.ceil(t[2]),e}function d(e,t){return e[0]=Math.floor(t[0]),e[1]=Math.floor(t[1]),e[2]=Math.floor(t[2]),e}function f(e,t){return e[0]=Math.abs(t[0]),e[1]=Math.abs(t[1]),e[2]=Math.abs(t[2]),e}function p(e,t){return e[0]=Math.sign(t[0]),e[1]=Math.sign(t[1]),e[2]=Math.sign(t[2]),e}function m(e,t,n){return e[0]=Math.min(t[0],n[0]),e[1]=Math.min(t[1],n[1]),e[2]=Math.min(t[2],n[2]),e}function h(e,t,n){return e[0]=Math.max(t[0],n[0]),e[1]=Math.max(t[1],n[1]),e[2]=Math.max(t[2],n[2]),e}function g(e,t=0,n=1){return e[0]=Math.min(Math.max(e[0],t),n),e[1]=Math.min(Math.max(e[1],t),n),e[2]=Math.min(Math.max(e[2],t),n),e}function _(e,t){return e[0]=Math.round(t[0]),e[1]=Math.round(t[1]),e[2]=Math.round(t[2]),e}function v(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e}function y(e,t){return v(e,e,t/$(e))}function b(e,t,n,r){return e[0]=t[0]+n[0]*r,e[1]=t[1]+n[1]*r,e[2]=t[2]+n[2]*r,e}function x(e,t){let n=t[0]-e[0],r=t[1]-e[1],i=t[2]-e[2];return Math.sqrt(n*n+r*r+i*i)}function S(e,t){let n=t[0]-e[0],r=t[1]-e[1],i=t[2]-e[2];return n*n+r*r+i*i}function C(e){let t=e[0],n=e[1],r=e[2];return t*t+n*n+r*r}function ee(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e}function w(e,t){return e[0]=1/t[0],e[1]=1/t[1],e[2]=1/t[2],e}function T(e,t=e){let n=t[0],r=t[1],i=t[2],a=n*n+r*r+i*i;return a>0&&(a=1/Math.sqrt(a),e[0]=t[0]*a,e[1]=t[1]*a,e[2]=t[2]*a),e}function E(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function D(e,t,n){let r=t[0],i=t[1],a=t[2],o=n[0],s=n[1],c=n[2];return e[0]=i*c-a*s,e[1]=a*o-r*c,e[2]=r*s-i*o,e}function O(e,t,n){let r=t[0],i=t[1],a=t[2],o=n[0],s=n[1],c=n[2],l=i*c-a*s,u=a*o-r*c,d=r*s-i*o,f=Math.sqrt(l*l+u*u+d*d);return e[0]=l/f,e[1]=u/f,e[2]=d/f,e}function k(e,t,n,r){let i=t[0],a=t[1],o=t[2];return e[0]=i+r*(n[0]-i),e[1]=a+r*(n[1]-a),e[2]=o+r*(n[2]-o),e}function A(e,t,n,r,i,a){let o=a*a,s=o*(2*a-3)+1,c=o*(a-2)+a,l=o*(a-1),u=o*(3-2*a);return e[0]=t[0]*s+n[0]*c+r[0]*l+i[0]*u,e[1]=t[1]*s+n[1]*c+r[1]*l+i[1]*u,e[2]=t[2]*s+n[2]*c+r[2]*l+i[2]*u,e}function j(e,t,n,r,i,a){let o=1-a,s=o*o,c=a*a,l=s*o,u=3*a*s,d=3*c*o,f=c*a;return e[0]=t[0]*l+n[0]*u+r[0]*d+i[0]*f,e[1]=t[1]*l+n[1]*u+r[1]*d+i[1]*f,e[2]=t[2]*l+n[2]*u+r[2]*d+i[2]*f,e}function M(e,t=1){let r=n,i=r()*2*Math.PI,a=r()*2-1,o=Math.sqrt(1-a*a)*t;return e[0]=Math.cos(i)*o,e[1]=Math.sin(i)*o,e[2]=a*t,e}function N(e,t,n){let r=t[0],i=t[1],a=t[2];return e[0]=n[0]*r+n[4]*i+n[8]*a+n[12],e[1]=n[1]*r+n[5]*i+n[9]*a+n[13],e[2]=n[2]*r+n[6]*i+n[10]*a+n[14],e}function P(e,t){return t[2]*e[0]+t[6]*e[1]+t[10]*e[2]+t[14]}function
|
|
2
|
+
import{create as e}from"../factories/vec3f64.js";import{getEpsilon as t,RANDOM as n}from"./common.js";function r(e){let t=e[0],n=e[1],r=e[2];return Math.sqrt(t*t+n*n+r*r)}function i(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function a(e,t,n,r){return e[0]=t,e[1]=n,e[2]=r,e}function o(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e}function s(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e[2]=t[2]-n[2],e}function c(e,t,n){return e[0]=t[0]*n[0],e[1]=t[1]*n[1],e[2]=t[2]*n[2],e}function l(e,t,n){return e[0]=t[0]/n[0],e[1]=t[1]/n[1],e[2]=t[2]/n[2],e}function u(e,t){return e[0]=Math.ceil(t[0]),e[1]=Math.ceil(t[1]),e[2]=Math.ceil(t[2]),e}function d(e,t){return e[0]=Math.floor(t[0]),e[1]=Math.floor(t[1]),e[2]=Math.floor(t[2]),e}function f(e,t){return e[0]=Math.abs(t[0]),e[1]=Math.abs(t[1]),e[2]=Math.abs(t[2]),e}function p(e,t){return e[0]=Math.sign(t[0]),e[1]=Math.sign(t[1]),e[2]=Math.sign(t[2]),e}function m(e,t,n){return e[0]=Math.min(t[0],n[0]),e[1]=Math.min(t[1],n[1]),e[2]=Math.min(t[2],n[2]),e}function h(e,t,n){return e[0]=Math.max(t[0],n[0]),e[1]=Math.max(t[1],n[1]),e[2]=Math.max(t[2],n[2]),e}function g(e,t=0,n=1){return e[0]=Math.min(Math.max(e[0],t),n),e[1]=Math.min(Math.max(e[1],t),n),e[2]=Math.min(Math.max(e[2],t),n),e}function _(e,t){return e[0]=Math.round(t[0]),e[1]=Math.round(t[1]),e[2]=Math.round(t[2]),e}function v(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e}function y(e,t){return v(e,e,t/$(e))}function b(e,t,n,r){return e[0]=t[0]+n[0]*r,e[1]=t[1]+n[1]*r,e[2]=t[2]+n[2]*r,e}function x(e,t){let n=t[0]-e[0],r=t[1]-e[1],i=t[2]-e[2];return Math.sqrt(n*n+r*r+i*i)}function S(e,t){let n=t[0]-e[0],r=t[1]-e[1],i=t[2]-e[2];return n*n+r*r+i*i}function C(e){let t=e[0],n=e[1],r=e[2];return t*t+n*n+r*r}function ee(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e}function w(e,t){return e[0]=1/t[0],e[1]=1/t[1],e[2]=1/t[2],e}function T(e,t=e){let n=t[0],r=t[1],i=t[2],a=n*n+r*r+i*i;return a>0&&(a=1/Math.sqrt(a),e[0]=t[0]*a,e[1]=t[1]*a,e[2]=t[2]*a),e}function E(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function D(e,t,n){let r=t[0],i=t[1],a=t[2],o=n[0],s=n[1],c=n[2];return e[0]=i*c-a*s,e[1]=a*o-r*c,e[2]=r*s-i*o,e}function O(e,t,n){let r=t[0],i=t[1],a=t[2],o=n[0],s=n[1],c=n[2],l=i*c-a*s,u=a*o-r*c,d=r*s-i*o,f=Math.sqrt(l*l+u*u+d*d);return e[0]=l/f,e[1]=u/f,e[2]=d/f,e}function k(e,t,n,r){let i=t[0],a=t[1],o=t[2];return e[0]=i+r*(n[0]-i),e[1]=a+r*(n[1]-a),e[2]=o+r*(n[2]-o),e}function A(e,t,n,r,i,a){let o=a*a,s=o*(2*a-3)+1,c=o*(a-2)+a,l=o*(a-1),u=o*(3-2*a);return e[0]=t[0]*s+n[0]*c+r[0]*l+i[0]*u,e[1]=t[1]*s+n[1]*c+r[1]*l+i[1]*u,e[2]=t[2]*s+n[2]*c+r[2]*l+i[2]*u,e}function j(e,t,n,r,i,a){let o=1-a,s=o*o,c=a*a,l=s*o,u=3*a*s,d=3*c*o,f=c*a;return e[0]=t[0]*l+n[0]*u+r[0]*d+i[0]*f,e[1]=t[1]*l+n[1]*u+r[1]*d+i[1]*f,e[2]=t[2]*l+n[2]*u+r[2]*d+i[2]*f,e}function M(e,t=1){let r=n,i=r()*2*Math.PI,a=r()*2-1,o=Math.sqrt(1-a*a)*t;return e[0]=Math.cos(i)*o,e[1]=Math.sin(i)*o,e[2]=a*t,e}function N(e,t,n){let r=t[0],i=t[1],a=t[2];return e[0]=n[0]*r+n[4]*i+n[8]*a+n[12],e[1]=n[1]*r+n[5]*i+n[9]*a+n[13],e[2]=n[2]*r+n[6]*i+n[10]*a+n[14],e}function P(e,t,n){return e[0]=t[0]+n[12],e[1]=t[1]+n[13],e[2]=t[2]+n[14],e}function F(e,t){return t[2]*e[0]+t[6]*e[1]+t[10]*e[2]+t[14]}function I(e,t,n){let r=t[0],i=t[1],a=t[2];return e[0]=r*n[0]+i*n[3]+a*n[6],e[1]=r*n[1]+i*n[4]+a*n[7],e[2]=r*n[2]+i*n[5]+a*n[8],e}function L(e,t,n){return R(e,t,n[0],n[1],n[2],n[3])}function R(e,t,n,r,i,a){let o=t[0],s=t[1],c=t[2],l=r*c-i*s,u=i*o-n*c,d=n*s-r*o,f=r*d-i*u,p=i*l-n*d,m=n*u-r*l,h=a*2;return e[0]=o+l*h+f*2,e[1]=s+u*h+p*2,e[2]=c+d*h+m*2,e}function z(e,t,n,r){let i=[],a=[];return i[0]=t[0]-n[0],i[1]=t[1]-n[1],i[2]=t[2]-n[2],a[0]=i[0],a[1]=i[1]*Math.cos(r)-i[2]*Math.sin(r),a[2]=i[1]*Math.sin(r)+i[2]*Math.cos(r),e[0]=a[0]+n[0],e[1]=a[1]+n[1],e[2]=a[2]+n[2],e}function te(e,t,n,r){let i=[],a=[];return i[0]=t[0]-n[0],i[1]=t[1]-n[1],i[2]=t[2]-n[2],a[0]=i[2]*Math.sin(r)+i[0]*Math.cos(r),a[1]=i[1],a[2]=i[2]*Math.cos(r)-i[0]*Math.sin(r),e[0]=a[0]+n[0],e[1]=a[1]+n[1],e[2]=a[2]+n[2],e}function B(e,t,n,r){let i=[],a=[];return i[0]=t[0]-n[0],i[1]=t[1]-n[1],i[2]=t[2]-n[2],a[0]=i[0]*Math.cos(r)-i[1]*Math.sin(r),a[1]=i[0]*Math.sin(r)+i[1]*Math.cos(r),a[2]=i[2],e[0]=a[0]+n[0],e[1]=a[1]+n[1],e[2]=a[2]+n[2],e}function V(e,t){T(H,e),T(U,t);let n=E(H,U);return n>1?0:n<-1?Math.PI:Math.acos(n)}const H=e(),U=e();function W(e){return`vec3(`+e[0]+`, `+e[1]+`, `+e[2]+`)`}function G(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}function K(e,n){if(e===n)return!0;let r=e[0],i=e[1],a=e[2],o=n[0],s=n[1],c=n[2],l=t();return Math.abs(r-o)<=l*Math.max(1,Math.abs(r),Math.abs(o))&&Math.abs(i-s)<=l*Math.max(1,Math.abs(i),Math.abs(s))&&Math.abs(a-c)<=l*Math.max(1,Math.abs(a),Math.abs(c))}function q(e,t,n){let r=n[0]-t[0],i=n[1]-t[1],a=n[2]-t[2],o=r*r+i*i+a*a;return o>0?(o=1/Math.sqrt(o),e[0]=r*o,e[1]=i*o,e[2]=a*o,e):(e[0]=0,e[1]=0,e[2]=0,e)}const J=s,Y=c,X=l,Z=x,Q=S,$=r,ne=C,re=Object.freeze(Object.defineProperty({__proto__:null,abs:f,add:o,angle:V,applyTranslation:P,bezier:j,ceil:u,clamp:g,copy:i,cross:D,crossAndNormalize:O,direction:q,dist:Z,distance:x,div:X,divide:l,dot:E,equals:K,exactEquals:G,floor:d,hermite:A,inverse:w,len:$,length:r,lerp:k,max:h,min:m,mul:Y,multiply:c,negate:ee,normalize:T,random:M,rotateX:z,rotateY:te,rotateZ:B,round:_,scale:v,scaleAndAdd:b,scaleTo:y,set:a,sign:p,sqrDist:Q,sqrLen:ne,squaredDistance:S,squaredLength:C,str:W,sub:J,subtract:s,transformMat3:I,transformMat4:N,transformMat4Z:F,transformQuat:L,transformQuatValues:R},Symbol.toStringTag,{value:`Module`}));export{f as abs,o as add,V as angle,P as applyTranslation,j as bezier,u as ceil,g as clamp,i as copy,D as cross,O as crossAndNormalize,q as direction,Z as dist,x as distance,X as div,l as divide,E as dot,K as equals,G as exactEquals,d as floor,A as hermite,w as inverse,$ as len,r as length,k as lerp,h as max,m as min,Y as mul,c as multiply,ee as negate,T as normalize,M as random,z as rotateX,te as rotateY,B as rotateZ,_ as round,v as scale,b as scaleAndAdd,y as scaleTo,a as set,p as sign,Q as sqrDist,ne as sqrLen,S as squaredDistance,C as squaredLength,W as str,J as sub,s as subtract,I as transformMat3,N as transformMat4,F as transformMat4Z,L as transformQuat,R as transformQuatValues,re as v};
|
package/kernel.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import"./core/has.js";import{addQueryParameter as e}from"./core/urlUtils.js";Symbol.dispose??=Symbol(`Symbol.dispose`),Symbol.asyncDispose??=Symbol(`Symbol.asyncDispose`);const t=`6.0`;let n=`6.0`;n=`6.0.0-next.
|
|
2
|
+
import"./core/has.js";import{addQueryParameter as e}from"./core/urlUtils.js";Symbol.dispose??=Symbol(`Symbol.dispose`),Symbol.asyncDispose??=Symbol(`Symbol.asyncDispose`);const t=`6.0`;let n=`6.0`;n=`6.0.0-next.37`;let r;function i(e){r=e}function a(t){let n=r?.findCredential(t);return n?.token?e(t,`token`,n.token):t}globalThis.$arcgis||Object.defineProperty(globalThis,"$arcgis",{configurable:!1,enumerable:!0,writable:!1,value:{}});export{a as addTokenParameter,n as fullVersion,r as id,i as setId,t as version};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import t from"../core/Error.js";import{property as n,subclass as r}from"../core/accessorSupport/decorators.js";import i from"../geometry/Extent.js";import a from"../geometry/SpatialReference.js";import{create as o}from"../geometry/support/aaBoundingRect.js";import s from"./Layer.js";import{ScaleRangeLayer as c}from"./mixins/ScaleRangeLayer.js";import l from"./support/TileInfo.js";import{TileKey as u}from"./support/TileKey.js";const d=new u(0,0,0);let f=class extends c(s){constructor(e){super(e),this.tileInfo=l.create({spatialReference:a.WebMercator,size:256}),this.fullExtent=new i(-20037508.342787,-20037508.34278,20037508.34278,20037508.342787,a.WebMercator),this.spatialReference=a.WebMercator,this.type=`base-elevation`}get memoizedElevationQueryDependencies(){return[this.loadStatus,this.tileInfo,this.fullExtent,this.spatialReference]}addResolvingPromise(e){super.addResolvingPromise(e)}getTileBounds(e,t,n,r){let i=r??o();return d.level=e,d.row=t,d.col=n,d.extent=i,this.tileInfo.updateTileInfo(d),i}fetchTile(){throw new t(`BaseElevationLayer:fetchTile-not-implemented`,`fetchTile() is not implemented`)}async queryElevation(e,t){let{query:n}=await this._importElevationQuery();return n(this,e,t)}createElevationSampler(e,t){return this._importElevationQuery().then(({createSampler:n})=>n(this,e,t))}_importElevationQuery(){return import(`./support/ElevationQuery.js`)}};e([n({type:l})],f.prototype,`tileInfo`,void 0),e([n({type:[`show`,`hide`]})],f.prototype,`listMode`,void 0),e([n()],f.prototype,`fullExtent`,void 0),e([n({type:a})],f.prototype,`spatialReference`,void 0),e([n()],f.prototype,`memoizedElevationQueryDependencies`,null),e([n({readOnly:!0,value:`base-elevation`})],f.prototype,`type`,void 0),f=e([r(`esri.layers.BaseElevationLayer`)],f);const p=f;export{p as default};
|
|
2
|
+
import{__decorate as e}from"tslib";import t from"../core/Error.js";import{property as n,subclass as r}from"../core/accessorSupport/decorators.js";import i from"../geometry/Extent.js";import a from"../geometry/SpatialReference.js";import{create as o}from"../geometry/support/aaBoundingRect.js";import s from"./Layer.js";import{ScaleRangeLayer as c}from"./mixins/ScaleRangeLayer.js";import l from"./support/TileInfo.js";import{TileKey as u}from"./support/TileKey.js";const d=new u(0,0,0);let f=class extends c(s){constructor(e){super(e),this.tileInfo=l.create({spatialReference:a.WebMercator,size:256}),this.fullExtent=new i(-20037508.342787,-20037508.34278,20037508.34278,20037508.342787,a.WebMercator),this.spatialReference=a.WebMercator,this.type=`base-elevation`}get memoizedElevationQueryDependencies(){return[this.loadStatus,this.tileInfo,this.fullExtent,this.spatialReference]}addResolvingPromise(e){super.addResolvingPromise(e)}getTileBounds(e,t,n,r){let i=r??o();return d.level=e,d.row=t,d.col=n,d.extent=i,this.tileInfo.updateTileInfo(d),i}fetchTile(){throw new t(`BaseElevationLayer:fetchTile-not-implemented`,`fetchTile() is not implemented`)}async queryElevation(e,t){let{query:n}=await this._importElevationQuery();return n(this,e,t)}async queryElevationForGround(e,t){let{queryElevationFromTiles:n}=await this._importElevationQuery();return n(this,e,t)}createElevationSampler(e,t){return this._importElevationQuery().then(({createSampler:n})=>n(this,e,t))}_importElevationQuery(){return import(`./support/ElevationQuery.js`)}};e([n({type:l})],f.prototype,`tileInfo`,void 0),e([n({type:[`show`,`hide`]})],f.prototype,`listMode`,void 0),e([n()],f.prototype,`fullExtent`,void 0),e([n({type:a})],f.prototype,`spatialReference`,void 0),e([n()],f.prototype,`memoizedElevationQueryDependencies`,null),e([n({readOnly:!0,value:`base-elevation`})],f.prototype,`type`,void 0),f=e([r(`esri.layers.BaseElevationLayer`)],f);const p=f;export{p as default};
|
package/layers/ElevationLayer.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import t from"../request.js";import n from"../core/Error.js";import{releaseMaybe as r}from"../core/maybe.js";import{MultiOriginJSONSupportMixin as i}from"../core/MultiOriginJSONSupport.js";import{throwIfAbortError as a,throwIfAborted as o}from"../core/promiseUtils.js";import{objectToQuery as s}from"../core/urlUtils.js";import{property as c,subclass as l}from"../core/accessorSupport/decorators.js";import u from"./Layer.js";import{ArcGISCachedService as d}from"./mixins/ArcGISCachedService.js";import{ArcGISService as f}from"./mixins/ArcGISService.js";import{HeightModelInfoMixin as p}from"./mixins/HeightModelInfoMixin.js";import{OperationalLayer as m}from"./mixins/OperationalLayer.js";import{PortalLayer as h}from"./mixins/PortalLayer.js";import{url as g}from"./support/commonProperties.js";import _ from"./support/ElevationTileData.js";import{acquireDecoder as v}from"./support/LercDecoder.js";import{reader as y}from"../core/accessorSupport/decorators/reader.js";let b=class extends p(d(f(m(h(i(u)))))){constructor(...e){super(...e),this.capabilities={operations:{supportsTileMap:!1}},this.copyright=null,this.path=null,this.minScale=void 0,this.maxScale=void 0,this.opacity=1,this.operationalLayerType=`ArcGISTiledElevationServiceLayer`,this.sourceJSON=null,this.type=`elevation`,this.url=null,this.version=null,this._lercDecoder=v()}normalizeCtorArgs(e,t){return typeof e==`string`?{url:e,...t}:e}destroy(){this._lercDecoder=r(this._lercDecoder)}readCapabilities(e,t){let n=t.capabilities&&t.capabilities.split(`,`).map(e=>e.toLowerCase().trim());return n?{operations:{supportsTileMap:n.includes(`tilemap`)}}:{operations:{supportsTileMap:!1}}}get memoizedElevationQueryDependencies(){return[this.loadStatus,this.tileInfo,this.fullExtent,this.spatialReference]}readVersion(e,t){let n=t.currentVersion;return n||=9.3,n}load(e){let t=e==null?null:e.signal;return this.addResolvingPromise(this.loadFromPortal({supportedTypes:[`Image Service`],supportsData:!1,validateItem:e=>{if(e.typeKeywords){for(let t=0;t<e.typeKeywords.length;t++)if(e.typeKeywords[t].toLowerCase()===`elevation 3d layer`)return!0}throw new n(`portal:invalid-layer-item-type`,"Invalid layer item type '${type}', expected '${expectedType}' ",{type:`Image Service`,expectedType:`Image Service Elevation 3D Layer`})}},e).catch(a).then(()=>this._fetchImageService(t))),Promise.resolve(this)}async fetchTile(e,r,i,a){let o=a?.signal,s={responseType:`array-buffer`,signal:o,useQueue:a?.useQueue,priority:a?.priority},c={noDataValue:a?.noDataValue};await this.load(),await this._fetchTileAvailability(e,r,i,a);let l=await t(this.getTileUrl(e,r,i),s),u=await this._lercDecoder.decode(l.data,c,o);if(!u)throw new n(`elevation-layer:tile-decode-failed`,`Failed to decode elevation tile data.`);return new _({values:u.pixelData,width:u.width,height:u.height,noDataValue:u.noDataValue})}getTileUrl(e,t,n){let r=!this.capabilities.operations.supportsTileMap&&this.supportsBlankTile,i=s({...this.parsedUrl.query,blankTile:!r&&null});return`${this.parsedUrl.path}/tile/${e}/${t}/${n}${i?`?`+i:``}`}async queryElevation(e,t){let{query:n}=await import(`./support/ElevationQuery.js`);return o(t),n(this,e,t)}async createElevationSampler(e,t){let{createSampler:n}=await import(`./support/ElevationQuery.js`);return o(t),n(this,e,t)}_fetchTileAvailability(e,t,n,r){return this.tilemapCache?this.tilemapCache.fetchAvailability(e,t,n,r):Promise.resolve(`unknown`)}async _fetchImageService(e){if(this.sourceJSON)return this.sourceJSON;let n={query:{f:`json`,...this.parsedUrl.query},responseType:`json`,signal:e},r=await t(this.parsedUrl.path,n);r.ssl&&(this.url=this.url?.replace(/^http:/i,`https:`)),this.sourceJSON=r.data,this.read(r.data,{origin:`service`,url:this.parsedUrl})}get hasOverriddenFetchTile(){return!this.fetchTile[x]}};e([c({readOnly:!0})],b.prototype,`capabilities`,void 0),e([y(`service`,`capabilities`,[`capabilities`])],b.prototype,`readCapabilities`,null),e([c({json:{read:{source:`copyrightText`}}})],b.prototype,`copyright`,void 0),e([c({type:String,json:{origins:{"web-scene":{read:!0,write:!0}},read:!1}})],b.prototype,`path`,void 0),e([c({type:[`show`,`hide`]})],b.prototype,`listMode`,void 0),e([c({json:{read:!1,write:!1,origins:{service:{read:!1,write:!1},"portal-item":{read:!1,write:!1},"web-document":{read:!1,write:!1}}},readOnly:!0})],b.prototype,`minScale`,void 0),e([c({json:{read:!1,write:!1,origins:{service:{read:!1,write:!1},"portal-item":{read:!1,write:!1},"web-document":{read:!1,write:!1}}},readOnly:!0})],b.prototype,`maxScale`,void 0),e([c({json:{read:!1,write:!1,origins:{"web-document":{read:!1,write:!1}}}})],b.prototype,`opacity`,void 0),e([c({type:[`ArcGISTiledElevationServiceLayer`]})],b.prototype,`operationalLayerType`,void 0),e([c()],b.prototype,`sourceJSON`,void 0),e([c({json:{read:!1},value:`elevation`,readOnly:!0})],b.prototype,`type`,void 0),e([c()],b.prototype,`memoizedElevationQueryDependencies`,null),e([c(g)],b.prototype,`url`,void 0),e([c()],b.prototype,`version`,void 0),e([y(`version`,[`currentVersion`])],b.prototype,`readVersion`,null),b=e([l(`esri.layers.ElevationLayer`)],b);const x=Symbol(`default-fetch-tile`);b.prototype.fetchTile[x]=!0;const S=b;export{S as default};
|
|
2
|
+
import{__decorate as e}from"tslib";import t from"../request.js";import n from"../core/Error.js";import{releaseMaybe as r}from"../core/maybe.js";import{MultiOriginJSONSupportMixin as i}from"../core/MultiOriginJSONSupport.js";import{throwIfAbortError as a,throwIfAborted as o}from"../core/promiseUtils.js";import{objectToQuery as s}from"../core/urlUtils.js";import{property as c,subclass as l}from"../core/accessorSupport/decorators.js";import u from"./Layer.js";import{ArcGISCachedService as d}from"./mixins/ArcGISCachedService.js";import{ArcGISService as f}from"./mixins/ArcGISService.js";import{HeightModelInfoMixin as p}from"./mixins/HeightModelInfoMixin.js";import{OperationalLayer as m}from"./mixins/OperationalLayer.js";import{PortalLayer as h}from"./mixins/PortalLayer.js";import{url as g}from"./support/commonProperties.js";import _ from"./support/ElevationTileData.js";import{acquireDecoder as v}from"./support/LercDecoder.js";import{reader as y}from"../core/accessorSupport/decorators/reader.js";let b=class extends p(d(f(m(h(i(u)))))){constructor(...e){super(...e),this.capabilities={operations:{supportsTileMap:!1}},this.copyright=null,this.path=null,this.minScale=void 0,this.maxScale=void 0,this.opacity=1,this.operationalLayerType=`ArcGISTiledElevationServiceLayer`,this.sourceJSON=null,this.type=`elevation`,this.url=null,this.version=null,this._lercDecoder=v()}normalizeCtorArgs(e,t){return typeof e==`string`?{url:e,...t}:e}destroy(){this._lercDecoder=r(this._lercDecoder)}readCapabilities(e,t){let n=t.capabilities&&t.capabilities.split(`,`).map(e=>e.toLowerCase().trim());return n?{operations:{supportsTileMap:n.includes(`tilemap`)}}:{operations:{supportsTileMap:!1}}}get memoizedElevationQueryDependencies(){return[this.loadStatus,this.tileInfo,this.fullExtent,this.spatialReference]}readVersion(e,t){let n=t.currentVersion;return n||=9.3,n}load(e){let t=e==null?null:e.signal;return this.addResolvingPromise(this.loadFromPortal({supportedTypes:[`Image Service`],supportsData:!1,validateItem:e=>{if(e.typeKeywords){for(let t=0;t<e.typeKeywords.length;t++)if(e.typeKeywords[t].toLowerCase()===`elevation 3d layer`)return!0}throw new n(`portal:invalid-layer-item-type`,"Invalid layer item type '${type}', expected '${expectedType}' ",{type:`Image Service`,expectedType:`Image Service Elevation 3D Layer`})}},e).catch(a).then(()=>this._fetchImageService(t))),Promise.resolve(this)}async fetchTile(e,r,i,a){let o=a?.signal,s={responseType:`array-buffer`,signal:o,useQueue:a?.useQueue,priority:a?.priority},c={noDataValue:a?.noDataValue};await this.load(),await this._fetchTileAvailability(e,r,i,a);let l=await t(this.getTileUrl(e,r,i),s),u=await this._lercDecoder.decode(l.data,c,o);if(!u)throw new n(`elevation-layer:tile-decode-failed`,`Failed to decode elevation tile data.`);return new _({values:u.pixelData,width:u.width,height:u.height,noDataValue:u.noDataValue})}getTileUrl(e,t,n){let r=!this.capabilities.operations.supportsTileMap&&this.supportsBlankTile,i=s({...this.parsedUrl.query,blankTile:!r&&null});return`${this.parsedUrl.path}/tile/${e}/${t}/${n}${i?`?`+i:``}`}async queryElevation(e,t){let{query:n}=await import(`./support/ElevationQuery.js`);return o(t),n(this,e,t)}async queryElevationForGround(e,t){let{queryElevationFromTiles:n}=await import(`./support/ElevationQuery.js`);return n(this,e,t)}async createElevationSampler(e,t){let{createSampler:n}=await import(`./support/ElevationQuery.js`);return o(t),n(this,e,t)}_fetchTileAvailability(e,t,n,r){return this.tilemapCache?this.tilemapCache.fetchAvailability(e,t,n,r):Promise.resolve(`unknown`)}async _fetchImageService(e){if(this.sourceJSON)return this.sourceJSON;let n={query:{f:`json`,...this.parsedUrl.query},responseType:`json`,signal:e},r=await t(this.parsedUrl.path,n);r.ssl&&(this.url=this.url?.replace(/^http:/i,`https:`)),this.sourceJSON=r.data,this.read(r.data,{origin:`service`,url:this.parsedUrl})}get hasOverriddenFetchTile(){return!this.fetchTile[x]}};e([c({readOnly:!0})],b.prototype,`capabilities`,void 0),e([y(`service`,`capabilities`,[`capabilities`])],b.prototype,`readCapabilities`,null),e([c({json:{read:{source:`copyrightText`}}})],b.prototype,`copyright`,void 0),e([c({type:String,json:{origins:{"web-scene":{read:!0,write:!0}},read:!1}})],b.prototype,`path`,void 0),e([c({type:[`show`,`hide`]})],b.prototype,`listMode`,void 0),e([c({json:{read:!1,write:!1,origins:{service:{read:!1,write:!1},"portal-item":{read:!1,write:!1},"web-document":{read:!1,write:!1}}},readOnly:!0})],b.prototype,`minScale`,void 0),e([c({json:{read:!1,write:!1,origins:{service:{read:!1,write:!1},"portal-item":{read:!1,write:!1},"web-document":{read:!1,write:!1}}},readOnly:!0})],b.prototype,`maxScale`,void 0),e([c({json:{read:!1,write:!1,origins:{"web-document":{read:!1,write:!1}}}})],b.prototype,`opacity`,void 0),e([c({type:[`ArcGISTiledElevationServiceLayer`]})],b.prototype,`operationalLayerType`,void 0),e([c()],b.prototype,`sourceJSON`,void 0),e([c({json:{read:!1},value:`elevation`,readOnly:!0})],b.prototype,`type`,void 0),e([c()],b.prototype,`memoizedElevationQueryDependencies`,null),e([c(g)],b.prototype,`url`,void 0),e([c()],b.prototype,`version`,void 0),e([y(`version`,[`currentVersion`])],b.prototype,`readVersion`,null),b=e([l(`esri.layers.ElevationLayer`)],b);const x=Symbol(`default-fetch-tile`);b.prototype.fetchTile[x]=!0;const S=b;export{S as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import t from"../request.js";import{ClonableMixin as n}from"../core/Clonable.js";import r from"../core/Error.js";import has from"../core/has.js";import i from"../core/Logger.js";import{MultiOriginJSONSupportMixin as a}from"../core/MultiOriginJSONSupport.js";import{throwIfAbortError as o}from"../core/promiseUtils.js";import{on as s,sync as c,watch as l}from"../core/reactiveUtils.js";import{property as u,subclass as d}from"../core/accessorSupport/decorators.js";import{persistable as f}from"../core/accessorSupport/decorators/persistable.js";import p from"../geometry/Extent.js";import m from"../geometry/SpatialReference.js";import h from"./Layer.js";import{APIKeyMixin as g}from"./mixins/APIKeyMixin.js";import{ArcGISService as _}from"./mixins/ArcGISService.js";import{CustomParametersMixin as v}from"./mixins/CustomParametersMixin.js";import{OperationalLayer as y}from"./mixins/OperationalLayer.js";import{PortalLayer as b}from"./mixins/PortalLayer.js";import{ScaleRangeLayer as x}from"./mixins/ScaleRangeLayer.js";import{elevationInfo as S,url as C}from"./support/commonProperties.js";import w from"./support/SceneModifications.js";import{default3DTilesSpatialReference as
|
|
2
|
+
import{__decorate as e}from"tslib";import t from"../request.js";import{ClonableMixin as n}from"../core/Clonable.js";import r from"../core/Error.js";import has from"../core/has.js";import i from"../core/Logger.js";import{MultiOriginJSONSupportMixin as a}from"../core/MultiOriginJSONSupport.js";import{throwIfAbortError as o}from"../core/promiseUtils.js";import{on as s,sync as c,watch as l}from"../core/reactiveUtils.js";import{property as u,subclass as d}from"../core/accessorSupport/decorators.js";import{persistable as f}from"../core/accessorSupport/decorators/persistable.js";import p from"../geometry/Extent.js";import m from"../geometry/SpatialReference.js";import h from"./Layer.js";import{APIKeyMixin as g}from"./mixins/APIKeyMixin.js";import{ArcGISService as _}from"./mixins/ArcGISService.js";import{CustomParametersMixin as v}from"./mixins/CustomParametersMixin.js";import{OperationalLayer as y}from"./mixins/OperationalLayer.js";import{PortalLayer as b}from"./mixins/PortalLayer.js";import{ScaleRangeLayer as x}from"./mixins/ScaleRangeLayer.js";import{elevationInfo as S,url as C}from"./support/commonProperties.js";import{GeometryDescriptor as w}from"./support/GeometryDescriptor.js";import T from"./support/SceneModifications.js";import{default3DTilesSpatialReference as E,default3DTilesFullExtent as D,initFullExtent as O,hasEsriCrs as k}from"./support/tiles3DUtils.js";import A from"../portal/Portal.js";import{getElevationOffsetInMeters as j,logInvalidElevationInfoWarning as M,elevationModeRequiredMessage as N,featureExpressionUnsupportedMessage as P}from"../support/elevationInfoUtils.js";import{isGround as F}from"../support/groundInstanceUtils.js";import{f as I}from"../chunks/persistableUrlUtils.js";import{isBasemap as L}from"../support/userTypeGuards/isBasemap.js";import{initialize as R,switchMeshModificationPolygonVCSSync as z}from"../views/3d/layers/Lyr3DWorker.js";import{toWasmModification as B,fromWasmModification as V}from"../views/3d/layers/SceneLayerWorkerHandle.js";import{reader as H}from"../core/accessorSupport/decorators/reader.js";let U=class extends _(y(b(x(a(v(g(n(h)))))))){readModifications(e,t,n){this._modificationsSource={url:I(e,n),context:n}}initialize(){this.addHandles([s(()=>this.modifications,`after-changes`,()=>{this.modifications=this.modifications,this._modificationsGeneration++},c),l(()=>this.modifications,()=>this._modificationsGeneration++)])}constructor(e){super(e),this.operationalLayerType=`IntegratedMesh3DTilesLayer`,this.modifications=null,this._modificationsSource=null,this.spatialReference=E,this.fullExtent=D,this.esriCrsSpatialReference=null,this.esriCrsFullExtent=null,this.url=null,this.type=`integrated-mesh-3dtiles`,this.path=null,this.minScale=0,this.maxScale=0,this._rootTilesetJSON=null,this._rootTileset=null,this._key=null,this._session=null,this._rootRequestPromise=null,this.queryElevationCallback=null,this._modificationsGeneration=0,this._simulateGoogleUrl=!1}get supportedSpatialReferences(){return!this.initialized||!this.esriCrsSpatialReference?[m.WGS84]:[m.WGS84,this.esriCrsSpatialReference]}get fullExtents(){let e=this.fullExtent??D;return!this.initialized||!this.esriCrsFullExtent?[e]:[e,this.esriCrsFullExtent]}set elevationInfo(e){(e==null||e.mode===`absolute-height`)&&this._set(`elevationInfo`,e),this._validateElevationInfo(e)}async load(e){return this.addResolvingPromise(this._doLoad(e)),this}get rootTilesetJSON(){return this._rootTilesetJSON}get rootTileset(){return this._rootTileset}get key(){return this._key}get session(){return this._session}_findSessionParameter(e){let t=[e];for(;t?.length>0;){let e=t.pop();if(!e)return;for(let[n,r]of Object.entries(e)){if(n===`uri`)try{let e=new URL(`https://tmp`+r).searchParams.get(`session`);if(e)return e}catch{}typeof r==`object`&&r&&t.push(r)}}return null}async requestRootAndSession(e){let n=(e,t)=>new r(`3dtiles-init:`+e,t);return this._rootRequestPromise||=new Promise((r,a)=>{this.url||a(n(`url-missing`,`Layer url missing`)),this._key=this.customParameters?this.customParameters.key:null,new Promise((e,r)=>{if(this.replacesTerrain&&!this._key){let i=this.portalItem?.portal||this.parent?.portalItem?.portal||A.getDefault();i.signIn().then(()=>{i.g3dTilesEnabled?t(i.restUrl+`/portals/self/modules/g3dtiles`,{responseType:`json`,query:{f:`json`}}).then(t=>{this._key=t.data.keyString,e()},()=>r(n(`g3dtiles-key-error`,`Error fetching Google 3D Tiles key from portal`))):r(n(`g3dTilesEnabled-false`,`Google 3D Tiles are not enabled on Portal `+i.url))},()=>r(n(`sign-in-failed`,`Error signing in to Portal`)))}else e()}).then(()=>{t(this.url,{query:this._key?{key:this._key,token:this.apiKey}:{token:this.apiKey},responseType:`array-buffer`,signal:e}).then(e=>{try{this._rootTilesetJSON=JSON.parse(new TextDecoder().decode(e.data))}catch(e){a(n(`root-parse-failed`,`Error parsing root tile, details: `+e));return}this._rootTilesetJSON?(this._session=this._findSessionParameter(this._rootTilesetJSON),this._rootTileset=e.data,this.fullExtent=O(this._rootTilesetJSON),k(this._rootTilesetJSON)&&(this.esriCrsFullExtent=O(this._rootTilesetJSON,!0),this.esriCrsSpatialReference=this.esriCrsFullExtent.spatialReference,this.spatialReference=this.esriCrsSpatialReference),r(),this._rootRequestPromise=null):a(n(`root-is-null`,`Root tile is null.`))},e=>{o(e),a(n(`root-load-failed`,`Error loading root tile`)),this._rootRequestPromise=null,i.getLogger(`IntegratedMesh3DTilesLayer`).error(`Layer loading failed`,e)})},e=>a(e))}),this._rootRequestPromise}_haveWGS84ZModifications(e){for(let t of e)if(!t.geometry?.spatialReference||t.geometry?.spatialReference.vcsWkid===115700&&t.geometry?.spatialReference.wkid===4326)return!0;return!1}async _doLoad(e){let t=e==null?null:e.signal;try{await this.loadFromPortal({supportedTypes:[`3DTiles Service`],validateItem:e=>{if(e.typeKeywords?.includes(`IntegratedMesh`))return!0;throw new r(`portal:invalid-layer-item-type`,"Invalid layer item, expected '${expectedType}' ",{expectedType:`3DTiles Service containing IntegratedMesh`})}},e)}catch(e){o(e)}if(this._modificationsSource!=null){let t=await T.fromUrl(this._modificationsSource.url,this.spatialReference,e,!0);if(this._haveWGS84ZModifications(t)){await R();try{let e=B(null,t.toArray(),m.WGS84),n=z({modifications:e,inVCS:115700});n.success&&n.modifications&&V(n.modifications,t)}catch(e){i.getLogger(this).error(`convert-mesh-modification-z-error`,`Error when converting:`,e)}}this.setAtOrigin(`modifications`,t,this._modificationsSource.context.origin),this._modificationsSource=null}await this.requestRootAndSession(t)}async beforeSave(){if(this._modificationsSource==null){let{modifications:e}=this;e&&e.length>0&&await R()}else await this.load().then(()=>{},()=>{})}async queryElevationForGround(e,t){let n=w.fromGeometry(e),r=t.signal;if(this.queryElevationCallback&&(has(`enable-feature:im-as-ground`)?this.isUsedAsGroundLayer:this.replacesTerrain)){let i=12.9*(t.minDemResolution||0)+.71,a=await(await this.queryElevationCallback(n,{signal:r,maxGeometricError:i})).project(e.spatialReference,r);if(a){if(t.noDataValue!==void 0&&t.noDataValue!==Number.MAX_VALUE)for(let e of a.coordinates)e.z===Number.MAX_VALUE&&(e.z=t.noDataValue);let e=t.noDataValue??Number.MAX_VALUE,n=a.coordinates.map(t=>({demResolution:t.z===e?-1:1,source:this}));return{geometry:a.export(),noDataValue:e,sampleInfo:n}}}return{geometry:n.export(),noDataValue:Number.MAX_VALUE,sampleInfo:n.coordinates.map(()=>({demResolution:-1,source:this}))}}get memoizedElevationQueryDependencies(){return[this.loadStatus,this.queryElevationCallback!=null,j(this.elevationInfo),this._modificationsGeneration]}get hasAttributionData(){return!1}_validateElevationInfo(e){let t=`Integrated mesh 3d tiles layers`;M(i.getLogger(this),N(t,`absolute-height`,e)),M(i.getLogger(this),P(t,e))}get replacesTerrain(){return this.hasGoogleUrl&&this.isUsedAsGroundLayer}get isUsedAsGroundLayer(){return has(`enable-feature:im-as-ground`)?L(this.parent)||F(this.parent):L(this.parent)}get hasGoogleUrl(){return this._simulateGoogleUrl||!!(this.url?.match(/.+\.googleapis.com/)??!1)}get test(){}};e([u({type:[`IntegratedMesh3DTilesLayer`]})],U.prototype,`operationalLayerType`,void 0),e([u({type:T,clonable:e=>e?.clone()??null}),f({origins:[`web-scene`,`portal-item`],type:`resource`,prefix:`modifications`})],U.prototype,`modifications`,void 0),e([u({clonable:e=>e?{...e}:null})],U.prototype,`_modificationsSource`,void 0),e([H([`web-scene`,`portal-item`],`modifications`)],U.prototype,`readModifications`,null),e([u({type:m})],U.prototype,`spatialReference`,void 0),e([u({type:p})],U.prototype,`fullExtent`,void 0),e([u({readOnly:!0})],U.prototype,`supportedSpatialReferences`,null),e([u({type:[p]})],U.prototype,`fullExtents`,null),e([u(S)],U.prototype,`elevationInfo`,null),e([u({type:[`show`,`hide`]})],U.prototype,`listMode`,void 0),e([u(C)],U.prototype,`url`,void 0),e([u({readOnly:!0})],U.prototype,`type`,void 0),e([u({type:String,json:{origins:{"web-scene":{read:!0,write:!0},"portal-item":{read:!0,write:!0}},read:!1}})],U.prototype,`path`,void 0),e([u({type:Number,json:{name:`layerDefinition.minScale`,write:!0,origins:{service:{read:!1,write:!1}}}})],U.prototype,`minScale`,void 0),e([u({type:Number,json:{name:`layerDefinition.maxScale`,write:!0,origins:{service:{read:!1,write:!1}}}})],U.prototype,`maxScale`,void 0),e([u()],U.prototype,`queryElevationCallback`,void 0),e([u()],U.prototype,`_modificationsGeneration`,void 0),e([u()],U.prototype,`memoizedElevationQueryDependencies`,null),e([u({readOnly:!0})],U.prototype,`hasAttributionData`,null),e([u()],U.prototype,`replacesTerrain`,null),e([u()],U.prototype,`isUsedAsGroundLayer`,null),e([u()],U.prototype,`hasGoogleUrl`,null),e([u()],U.prototype,`_simulateGoogleUrl`,void 0),U=e([d(`esri.layers.IntegratedMesh3DTilesLayer`)],U);const W=U;export{W as default};
|
|
@@ -190,6 +190,8 @@ export default class IntegratedMeshLayer extends IntegratedMeshLayerSuperclass {
|
|
|
190
190
|
/**
|
|
191
191
|
* Queries the integrated mesh layer for elevation values for the given geometry.
|
|
192
192
|
*
|
|
193
|
+
* The terrain resolution options `demResolution` and `minDemResolution` are ignored by I3S integrated mesh queries.
|
|
194
|
+
*
|
|
193
195
|
* @param view - The [SceneView](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/) whose scheduler runs the query.
|
|
194
196
|
* @param geometry - The point to query.
|
|
195
197
|
* @param options
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{__addDisposableResource as e,__disposeResources as t,__decorate as n}from"tslib";import{isSome as r}from"../core/arrayUtils.js";import{result as i,assertResult as a}from"../core/asyncUtils.js";import{ClonableMixin as o}from"../core/Clonable.js";import s from"../core/Error.js";import{abortHandle as c,disposable as l,makeHandle as u}from"../core/handleUtils.js";import has from"../core/has.js";import d from"../core/Logger.js";import{MultiOriginJSONSupportMixin as f}from"../core/MultiOriginJSONSupport.js";import{throwIfAborted as p,throwIfAbortError as m}from"../core/promiseUtils.js";import{on as h,sync as g,watch as _}from"../core/reactiveUtils.js";import{property as v,subclass as y}from"../core/accessorSupport/decorators.js";import{persistable as b}from"../core/accessorSupport/decorators/persistable.js";import x from"./Layer.js";import{APIKeyMixin as S}from"./mixins/APIKeyMixin.js";import{ArcGISService as C}from"./mixins/ArcGISService.js";import{CustomParametersMixin as w}from"./mixins/CustomParametersMixin.js";import{OperationalLayer as T}from"./mixins/OperationalLayer.js";import{PortalLayer as E}from"./mixins/PortalLayer.js";import{ScaleRangeLayer as D}from"./mixins/ScaleRangeLayer.js";import{SceneService as O}from"./mixins/SceneService.js";import{elevationInfo as k}from"./support/commonProperties.js";import{GeometryDescriptor as A}from"./support/GeometryDescriptor.js";import{queryIntegratedMeshElevation as j,defaultNoDataValue as M}from"./support/I3SIntegratedMeshElevationQuery.js";import{I3SNodePageDefinition as N,I3SMaterialDefinition as P,I3STextureSetDefinition as F,I3SGeometryDefinition as I}from"./support/I3SLayerDefinitions.js";import L from"./support/SceneModifications.js";import{logInvalidElevationInfoWarning as R,elevationModeRequiredMessage as z,featureExpressionUnsupportedMessage as B}from"../support/elevationInfoUtils.js";import{isGround as V}from"../support/groundInstanceUtils.js";import{f as H}from"../chunks/persistableUrlUtils.js";import{isBasemap as U}from"../support/userTypeGuards/isBasemap.js";import{SceneLayerWorkerHandle as W}from"../views/3d/layers/SceneLayerWorkerHandle.js";import{I3SDataRequester as G}from"../views/3d/layers/i3s/I3SDataRequester.js";import K from"../views/3d/layers/i3s/I3SNodeLoader.js";import{ImmediateTask as q}from"../views/support/Scheduler.js";import{reader as J}from"../core/accessorSupport/decorators/reader.js";let Y=class extends O(C(T(E(D(f(w(S(o(x))))))))){constructor(...e){super(...e),this.geometryType=`mesh`,this.operationalLayerType=`IntegratedMeshLayer`,this.type=`integrated-mesh`,this.nodePages=null,this.materialDefinitions=null,this.textureSetDefinitions=null,this.geometryDefinitions=null,this.serviceUpdateTimeStamp=null,this.profile=`mesh-pyramids`,this.modifications=null,this._modificationsSource=null,this.path=null,this.definitionExpression=null,this._elevationQueryAbortController=new AbortController,this._elevationQueryWorkerContext=`i3s-elevation-query-${this.uid}`,this._elevationQueryWorkerHandle=null,this._elevationQueryWorkerSetup=null,this._modificationsGeneration=0}destroy(){this._elevationQueryAbortController.abort();let e=this._elevationQueryWorkerHandle;this._elevationQueryWorkerHandle=null,this._elevationQueryWorkerSetup=null,e?.destroyContextAndSelf(this._elevationQueryWorkerContext),super.destroy()}initialize(){this.addHandles([h(()=>this.modifications,`after-changes`,()=>{this.modifications=this.modifications,this._modificationsGeneration++},g),_(()=>this.modifications,()=>this._modificationsGeneration++,g),_(()=>this.memoizedElevationQueryDependencies,()=>this._abortElevationQueriesAfterDependencyChange(),g)])}normalizeCtorArgs(e,t){return typeof e==`string`?{url:e,...t}:e}readModifications(e,t,n){this._modificationsSource={url:H(e,n),context:n}}set elevationInfo(e){(e==null||e.mode===`absolute-height`)&&this._set(`elevationInfo`,e),this._validateElevationInfo(e)}async load(e){return this.addResolvingPromise(this._doLoad(e)),this}get _elevationQueryWorker(){return this._elevationQueryWorkerHandle??=new W((e,t)=>q.schedule(e,t))}get memoizedElevationQueryDependencies(){return[this.elevationInfo?.offset,this._modificationsGeneration]}async queryElevation(n,a,o){let s={stack:[],error:void 0,hasError:!1};try{let t=o?.noDataValue??Number.MAX_VALUE,d=this._elevationQueryWorker,f=new AbortController;n.addHandles(c(f),f),e(s,l(u(()=>n.removeHandles(f))),!1);let m=AbortSignal.any([o?.signal,this._elevationQueryAbortController.signal,f.signal].filter(r));await this.load({signal:m}),p(m);let h=A.fromGeometry(a),g={signal:m,elevationOffset:this.elevationInfo?.offset??0,scheduler:n.resourceController.scheduler};if(this._elevationQueryWorkerSetup==null){let e=this.store?.defaultGeometrySchema;e!=null&&(this._elevationQueryWorkerSetup=i(d.setLegacySchema(this._elevationQueryWorkerContext,e)))}let _=await j(this,h,g);p(m);let v=_.coordinates[0].z===M;v&&(_.coordinates[0].z=t);let y=await _.project(a.spatialReference,m);p(m);let b=y??h.clone(),x={geometry:b.export(),noDataValue:t};return o?.returnSampleInfo&&(x.sampleInfo=b.coordinates.map(()=>({demResolution:v?-1:1}))),x}catch(e){s.error=e,s.hasError=!0}finally{t(s)}}_abortElevationQueriesAfterDependencyChange(){let e=this._elevationQueryAbortController;this._elevationQueryAbortController=new AbortController,e.abort()}async processElevationQueryGeometry(e,t){let n=await this._elevationQueryWorkerSetup;return n!=null&&a(n),p(t),this._elevationQueryWorker.invoke(e,t)}async _doLoad(e){let t=e?.signal;try{await this.loadFromPortal({supportedTypes:[`Scene Service`]},e)}catch(e){m(e)}if(p(t),await this._fetchService(t),p(t),this._modificationsSource!=null){let n=await L.fromUrl(this._modificationsSource.url,this.spatialReference,e);p(t),this.setAtOrigin(`modifications`,n,this._modificationsSource.context.origin),this._modificationsSource=null}await this._fetchIndexAndUpdateExtent(this.nodePages,t),p(t)}beforeSave(){if(this._modificationsSource!=null)return this.load().then(()=>{},()=>{})}async saveAs(e,t){return this._debouncedSaveOperations(1,{...t,getTypeKeywords:()=>this._getTypeKeywords(),portalItemLayerType:`integrated-mesh`},e)}async save(){return this._debouncedSaveOperations(0,{getTypeKeywords:()=>this._getTypeKeywords(),portalItemLayerType:`integrated-mesh`})}get isUsedAsGroundLayer(){return!has(`enable-feature:im-as-ground`)||U(this.parent)||V(this.parent)}get replacesTerrain(){return!1}validateLayer(e){if(e.layerType&&e.layerType!==`IntegratedMesh`)throw new s(`integrated-mesh-layer:layer-type-not-supported`,`IntegratedMeshLayer does not support this layer type`,{layerType:e.layerType});if(isNaN(this.version.major)||isNaN(this.version.minor))throw new s(`layer:service-version-not-supported`,`Service version is not supported.`,{serviceVersion:this.version.versionString,supportedVersions:`1.x`});if(this.version.major>1)throw new s(`layer:service-version-too-new`,`Service version is too new.`,{serviceVersion:this.version.versionString,supportedVersions:`1.x`})}_getTypeKeywords(){return[`IntegratedMeshLayer`]}get elevationQueryDataRequester(){return new G(this.customParameters,this.apiKey)}get elevationQueryNodeLoader(){return new K(this,this.elevationQueryDataRequester,d.getLogger(`esri.layers.IntegratedMeshLayer`),this.store?.defaultGeometrySchema,[],{loadFeatureData:!1,textureUsageMask:0})}_validateElevationInfo(e){let t=`Integrated mesh layers`;R(d.getLogger(this),z(t,`absolute-height`,e)),R(d.getLogger(this),B(t,e))}};n([v({type:String,readOnly:!0})],Y.prototype,`geometryType`,void 0),n([v({type:[`show`,`hide`]})],Y.prototype,`listMode`,void 0),n([v({type:[`IntegratedMeshLayer`]})],Y.prototype,`operationalLayerType`,void 0),n([v({json:{read:!1},readOnly:!0})],Y.prototype,`type`,void 0),n([v({type:N,readOnly:!0,clonable:!1})],Y.prototype,`nodePages`,void 0),n([v({type:[P],readOnly:!0,clonable:!1})],Y.prototype,`materialDefinitions`,void 0),n([v({type:[F],readOnly:!0,clonable:!1})],Y.prototype,`textureSetDefinitions`,void 0),n([v({type:[I],readOnly:!0,clonable:!1})],Y.prototype,`geometryDefinitions`,void 0),n([v({readOnly:!0})],Y.prototype,`serviceUpdateTimeStamp`,void 0),n([v({type:L,clonable:e=>e?.clone()??e}),b({origins:[`web-scene`,`portal-item`],type:`resource`,prefix:`modifications`})],Y.prototype,`modifications`,void 0),n([v({clonable:e=>e?{...e}:null})],Y.prototype,`_modificationsSource`,void 0),n([J([`web-scene`,`portal-item`],`modifications`)],Y.prototype,`readModifications`,null),n([v(k)],Y.prototype,`elevationInfo`,null),n([v({type:String,json:{origins:{"web-scene":{read:!0,write:!0},"portal-item":{read:!0,write:!0}},read:!1}})],Y.prototype,`path`,void 0),n([v({clonable:!1})],Y.prototype,`_elevationQueryWorker`,null),n([v()],Y.prototype,`_modificationsGeneration`,void 0),n([v()],Y.prototype,`memoizedElevationQueryDependencies`,null),n([v()],Y.prototype,`isUsedAsGroundLayer`,null),n([v()],Y.prototype,`replacesTerrain`,null),n([v({clonable:!1})],Y.prototype,`elevationQueryDataRequester`,null),n([v({clonable:!1})],Y.prototype,`elevationQueryNodeLoader`,null),Y=n([y(`esri.layers.IntegratedMeshLayer`)],Y);const X=Y;export{X as default};
|
|
2
|
+
import{__addDisposableResource as e,__disposeResources as t,__decorate as n}from"tslib";import{isSome as r}from"../core/arrayUtils.js";import{result as i,assertResult as a}from"../core/asyncUtils.js";import{ClonableMixin as o}from"../core/Clonable.js";import s from"../core/Error.js";import{abortHandle as c,disposable as l,makeHandle as u}from"../core/handleUtils.js";import has from"../core/has.js";import d from"../core/Logger.js";import{MultiOriginJSONSupportMixin as f}from"../core/MultiOriginJSONSupport.js";import{throwIfAborted as p,throwIfAbortError as m}from"../core/promiseUtils.js";import{on as h,sync as g,watch as _}from"../core/reactiveUtils.js";import{property as v,subclass as y}from"../core/accessorSupport/decorators.js";import{persistable as b}from"../core/accessorSupport/decorators/persistable.js";import x from"./Layer.js";import{APIKeyMixin as S}from"./mixins/APIKeyMixin.js";import{ArcGISService as C}from"./mixins/ArcGISService.js";import{CustomParametersMixin as w}from"./mixins/CustomParametersMixin.js";import{OperationalLayer as T}from"./mixins/OperationalLayer.js";import{PortalLayer as E}from"./mixins/PortalLayer.js";import{ScaleRangeLayer as D}from"./mixins/ScaleRangeLayer.js";import{SceneService as O}from"./mixins/SceneService.js";import{elevationInfo as k}from"./support/commonProperties.js";import{GeometryDescriptor as A}from"./support/GeometryDescriptor.js";import{queryIntegratedMeshElevation as j,defaultNoDataValue as M}from"./support/I3SIntegratedMeshElevationQuery.js";import{I3SNodePageDefinition as N,I3SMaterialDefinition as P,I3STextureSetDefinition as F,I3SGeometryDefinition as I}from"./support/I3SLayerDefinitions.js";import L from"./support/SceneModifications.js";import{logInvalidElevationInfoWarning as R,elevationModeRequiredMessage as z,featureExpressionUnsupportedMessage as B}from"../support/elevationInfoUtils.js";import{isGround as V}from"../support/groundInstanceUtils.js";import{f as H}from"../chunks/persistableUrlUtils.js";import{isBasemap as U}from"../support/userTypeGuards/isBasemap.js";import{SceneLayerWorkerHandle as W}from"../views/3d/layers/SceneLayerWorkerHandle.js";import{I3SDataRequester as G}from"../views/3d/layers/i3s/I3SDataRequester.js";import K from"../views/3d/layers/i3s/I3SNodeLoader.js";import{ImmediateTask as q}from"../views/support/Scheduler.js";import{reader as J}from"../core/accessorSupport/decorators/reader.js";let Y=class extends O(C(T(E(D(f(w(S(o(x))))))))){constructor(...e){super(...e),this.geometryType=`mesh`,this.operationalLayerType=`IntegratedMeshLayer`,this.type=`integrated-mesh`,this.nodePages=null,this.materialDefinitions=null,this.textureSetDefinitions=null,this.geometryDefinitions=null,this.serviceUpdateTimeStamp=null,this.profile=`mesh-pyramids`,this.modifications=null,this._modificationsSource=null,this.path=null,this.definitionExpression=null,this._elevationQueryAbortController=new AbortController,this._elevationQueryWorkerContext=`i3s-elevation-query-${this.uid}`,this._elevationQueryWorkerHandle=null,this._elevationQueryWorkerSetup=null,this._modificationsGeneration=0}destroy(){this._elevationQueryAbortController.abort();let e=this._elevationQueryWorkerHandle;this._elevationQueryWorkerHandle=null,this._elevationQueryWorkerSetup=null,e?.destroyContextAndSelf(this._elevationQueryWorkerContext),super.destroy()}initialize(){this.addHandles([h(()=>this.modifications,`after-changes`,()=>{this.modifications=this.modifications,this._modificationsGeneration++},g),_(()=>this.modifications,()=>this._modificationsGeneration++,g),_(()=>this.memoizedElevationQueryDependencies,()=>this._abortElevationQueriesAfterDependencyChange(),g)])}normalizeCtorArgs(e,t){return typeof e==`string`?{url:e,...t}:e}readModifications(e,t,n){this._modificationsSource={url:H(e,n),context:n}}set elevationInfo(e){(e==null||e.mode===`absolute-height`)&&this._set(`elevationInfo`,e),this._validateElevationInfo(e)}async load(e){return this.addResolvingPromise(this._doLoad(e)),this}get _elevationQueryWorker(){return this._elevationQueryWorkerHandle??=new W((e,t)=>q.schedule(e,t))}get memoizedElevationQueryDependencies(){return[this.elevationInfo?.offset,this._modificationsGeneration]}async queryElevation(n,a,o){let s={stack:[],error:void 0,hasError:!1};try{let t=o?.noDataValue??Number.MAX_VALUE,d=this._elevationQueryWorker,f=new AbortController;n.addHandles(c(f),f),e(s,l(u(()=>n.removeHandles(f))),!1);let m=AbortSignal.any([o?.signal,this._elevationQueryAbortController.signal,f.signal].filter(r));await this.load({signal:m}),p(m);let h=A.fromGeometry(a),g={signal:m,elevationOffset:this.elevationInfo?.offset??0,scheduler:n.resourceController.scheduler};if(this._elevationQueryWorkerSetup==null){let e=this.store?.defaultGeometrySchema;e!=null&&(this._elevationQueryWorkerSetup=i(d.setLegacySchema(this._elevationQueryWorkerContext,e)))}let _=await j(this,h,g);p(m);let v=_.coordinates[0].z===M;v&&(_.coordinates[0].z=t);let y=await _.project(a.spatialReference,m);p(m);let b=y??h.clone(),x={geometry:b.export(),noDataValue:t};return o?.returnSampleInfo&&(x.sampleInfo=b.coordinates.map(()=>({demResolution:v?-1:1}))),x}catch(e){s.error=e,s.hasError=!0}finally{t(s)}}async queryElevationForGround(e,t){let n=A.fromGeometry(e),r=Z(e),{view:i,...a}=t;if(r!=null&&i?.type===`3d`){let e=await this.queryElevation(i,r,a),t=A.fromGeometry(e.geometry),o=t.coordinates.map((t,n)=>({demResolution:e.sampleInfo?.[n]?.demResolution??(t.z===e.noDataValue?-1:1),source:this}));return{geometry:n.clone(t.coordinates).export(),noDataValue:e.noDataValue,sampleInfo:o}}return{geometry:n.export(),noDataValue:Number.MAX_VALUE,sampleInfo:n.coordinates.map(()=>({demResolution:-1,source:this}))}}_abortElevationQueriesAfterDependencyChange(){let e=this._elevationQueryAbortController;this._elevationQueryAbortController=new AbortController,e.abort()}async processElevationQueryGeometry(e,t){let n=await this._elevationQueryWorkerSetup;return n!=null&&a(n),p(t),this._elevationQueryWorker.invoke(e,t)}async _doLoad(e){let t=e?.signal;try{await this.loadFromPortal({supportedTypes:[`Scene Service`]},e)}catch(e){m(e)}if(p(t),await this._fetchService(t),p(t),this._modificationsSource!=null){let n=await L.fromUrl(this._modificationsSource.url,this.spatialReference,e);p(t),this.setAtOrigin(`modifications`,n,this._modificationsSource.context.origin),this._modificationsSource=null}await this._fetchIndexAndUpdateExtent(this.nodePages,t),p(t)}beforeSave(){if(this._modificationsSource!=null)return this.load().then(()=>{},()=>{})}async saveAs(e,t){return this._debouncedSaveOperations(1,{...t,getTypeKeywords:()=>this._getTypeKeywords(),portalItemLayerType:`integrated-mesh`},e)}async save(){return this._debouncedSaveOperations(0,{getTypeKeywords:()=>this._getTypeKeywords(),portalItemLayerType:`integrated-mesh`})}get isUsedAsGroundLayer(){return!has(`enable-feature:im-as-ground`)||U(this.parent)||V(this.parent)}get replacesTerrain(){return!1}validateLayer(e){if(e.layerType&&e.layerType!==`IntegratedMesh`)throw new s(`integrated-mesh-layer:layer-type-not-supported`,`IntegratedMeshLayer does not support this layer type`,{layerType:e.layerType});if(isNaN(this.version.major)||isNaN(this.version.minor))throw new s(`layer:service-version-not-supported`,`Service version is not supported.`,{serviceVersion:this.version.versionString,supportedVersions:`1.x`});if(this.version.major>1)throw new s(`layer:service-version-too-new`,`Service version is too new.`,{serviceVersion:this.version.versionString,supportedVersions:`1.x`})}_getTypeKeywords(){return[`IntegratedMeshLayer`]}get elevationQueryDataRequester(){return new G(this.customParameters,this.apiKey)}get elevationQueryNodeLoader(){return new K(this,this.elevationQueryDataRequester,d.getLogger(`esri.layers.IntegratedMeshLayer`),this.store?.defaultGeometrySchema,[],{loadFeatureData:!1,textureUsageMask:0})}_validateElevationInfo(e){let t=`Integrated mesh layers`;R(d.getLogger(this),z(t,`absolute-height`,e)),R(d.getLogger(this),B(t,e))}};n([v({type:String,readOnly:!0})],Y.prototype,`geometryType`,void 0),n([v({type:[`show`,`hide`]})],Y.prototype,`listMode`,void 0),n([v({type:[`IntegratedMeshLayer`]})],Y.prototype,`operationalLayerType`,void 0),n([v({json:{read:!1},readOnly:!0})],Y.prototype,`type`,void 0),n([v({type:N,readOnly:!0,clonable:!1})],Y.prototype,`nodePages`,void 0),n([v({type:[P],readOnly:!0,clonable:!1})],Y.prototype,`materialDefinitions`,void 0),n([v({type:[F],readOnly:!0,clonable:!1})],Y.prototype,`textureSetDefinitions`,void 0),n([v({type:[I],readOnly:!0,clonable:!1})],Y.prototype,`geometryDefinitions`,void 0),n([v({readOnly:!0})],Y.prototype,`serviceUpdateTimeStamp`,void 0),n([v({type:L,clonable:e=>e?.clone()??e}),b({origins:[`web-scene`,`portal-item`],type:`resource`,prefix:`modifications`})],Y.prototype,`modifications`,void 0),n([v({clonable:e=>e?{...e}:null})],Y.prototype,`_modificationsSource`,void 0),n([J([`web-scene`,`portal-item`],`modifications`)],Y.prototype,`readModifications`,null),n([v(k)],Y.prototype,`elevationInfo`,null),n([v({type:String,json:{origins:{"web-scene":{read:!0,write:!0},"portal-item":{read:!0,write:!0}},read:!1}})],Y.prototype,`path`,void 0),n([v({clonable:!1})],Y.prototype,`_elevationQueryWorker`,null),n([v()],Y.prototype,`_modificationsGeneration`,void 0),n([v()],Y.prototype,`memoizedElevationQueryDependencies`,null),n([v()],Y.prototype,`isUsedAsGroundLayer`,null),n([v()],Y.prototype,`replacesTerrain`,null),n([v({clonable:!1})],Y.prototype,`elevationQueryDataRequester`,null),n([v({clonable:!1})],Y.prototype,`elevationQueryNodeLoader`,null),Y=n([y(`esri.layers.IntegratedMeshLayer`)],Y);const X=Y;function Z(e){return e instanceof A?Z(e.geometry):e.type===`point`?e:null}export{X as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import t from"../../core/Accessor.js";import n from"../../core/Error.js";import r from"../../core/Logger.js";import{getOrCreateMapValue as i}from"../../core/MapUtils.js";import{createAbortError as a}from"../../core/promiseUtils.js";import{parseWhereClause as o}from"../../core/sql.js";import{property as s,subclass as c}from"../../core/accessorSupport/decorators.js";import l from"../../geometry/Extent.js";import u from"../../geometry/Polygon.js";import{initializeProjection as d,project as f}from"../../geometry/projectionUtils.js";import{wgs84 as p}from"../../geometry/support/spatialReferenceUtils.js";import{systemOidFieldName as m,systemOriginIdFieldName as h,systemDestinationIdFieldName as g,systemIsSpatialFieldName as _,systemLayoutGeometryFieldName as v}from"./constants.js";import{recursiveParseSqlToCypher as y,addAdditionalClausesToCypher as b}from"./cypherUtils.js";import x from"./SessionMemoryStorage.js";import{utilsExtentToInBoundsRings as S}from"./supportUtils.js";import{executeQueryStreaming as C}from"../../rest/knowledgeGraphService.js";import w from"../../rest/knowledgeGraph/GraphQueryStreaming.js";import T from"../../rest/support/Query.js";let E=class extends t{constructor(e){super(e),this._processingCacheUpdatesLookup=new Map,this.knowledgeGraph=null,this.inclusionModeDefinition={generateAllSublayers:!0,namedTypeDefinitions:new Map},this.entityTypeNames=new Set,this.relationshipTypeNames=new Set,this.geographicLookup=new Map,this.sublayerCaches=new Map,this.nodeConnectionsLookup=new Map,this.relationshipConnectionsLookup=new Map,this.memberIdTypeLookup=new Map;let t=new Map;e.knowledgeGraph.dataModel.entityTypes?.forEach(n=>{n.name&&(t.set(n.name,`entity`),this._processingCacheUpdatesLookup.set(n.name,[]),(!e.inclusionModeDefinition||e.inclusionModeDefinition?.generateAllSublayers)&&this.entityTypeNames.add(n.name),n.properties?.forEach(e=>{e.geometryType&&e.geometryType!==`esriGeometryNull`&&this.geographicLookup.set(n.name,{name:e.name??``,geometryType:e.geometryType})}))}),e.knowledgeGraph.dataModel.relationshipTypes?.forEach(n=>{n.name&&(t.set(n.name,`relationship`),this._processingCacheUpdatesLookup.set(n.name,[]),(!e.inclusionModeDefinition||e.inclusionModeDefinition?.generateAllSublayers)&&this.relationshipTypeNames.add(n.name),n.properties?.forEach(e=>{e.geometryType&&e.geometryType!==`esriGeometryNull`&&this.geographicLookup.set(n.name,{name:e.name??``,geometryType:e.geometryType})}))}),e.inclusionModeDefinition?.namedTypeDefinitions.forEach((n,a)=>{if(t.get(a)===`entity`)this.entityTypeNames.add(a);else if(t.get(a)===`relationship`)this.relationshipTypeNames.add(a);else{r.getLogger(this).warn(`A named type, ${a}, was in the inclusion list that wasn't in the data model and will be removed`),e.inclusionModeDefinition?.namedTypeDefinitions.delete(a);return}let o=new Map;n.members?.forEach(e=>{i(this.memberIdTypeLookup,e.id,()=>new Set).add(a)}),this.sublayerCaches.set(a,o)})}addToLayer(e){e.forEach(({typeName:e,id:t})=>{if(!this.inclusionModeDefinition)throw new n(`knowledge-graph:layer-data-manager`,`You cannot add to a layer's exclusion list if it was not created with an exclusion list originally`);if(!this.inclusionModeDefinition.namedTypeDefinitions.has(e)){let n=new Map;n.set(t,{id:t}),this.inclusionModeDefinition.namedTypeDefinitions.set(e,{useAllData:!1,members:n}),i(this.memberIdTypeLookup,t,()=>new Set).add(e)}else if(this.inclusionModeDefinition.namedTypeDefinitions.has(e)){let n=this.inclusionModeDefinition.namedTypeDefinitions.get(e);n.members||=new Map,n.members.set(t,{id:t}),i(this.memberIdTypeLookup,t,()=>new Set).add(e)}})}getById(e){return x.getInstance().readFromStoreById(e)}async getData(e,t,n,r){if(t.objectType.name&&this.inclusionModeDefinition?.namedTypeDefinitions&&this.inclusionModeDefinition.namedTypeDefinitions.size>0&&!this.inclusionModeDefinition.namedTypeDefinitions.has(t.objectType.name))return{features:[],cypherTranslationApplied:!1};let i;if(i=e||new T({where:`1=1`,outFields:[`*`]}),n.type===`link-chart`){let e=n,r=this._processingCacheUpdatesLookup.get(t.objectType.name??``),a=i.outFields;a&&a.length===1&&a[0]===m&&i.where===`1=1`||await Promise.all(r??[]);let o=this.sublayerCaches.has(t.objectType.name??``)?Array.from(this.sublayerCaches.get(t.objectType.name)?.values()):[],s=[];return o.forEach(n=>{if(this.relationshipTypeNames.has(t.objectType.name)){n.geometry=e.relationshipLinkChartDiagramLookup.get(n.attributes[t.objectIdField]);let r=this.memberIdTypeLookup.get(n.attributes[h]),i=this.memberIdTypeLookup.get(n.attributes[g]),a=this._isEndEntitySpatial(r,n,h),o=this._isEndEntitySpatial(i,n,g);n.attributes[_]=Number(a&&o)}else{n.geometry=e.entityLinkChartDiagramLookup.get(n.attributes[t.objectIdField]);let r=this.geographicLookup.get(t.objectType.name);r&&n.attributes[r.name]?n.attributes[_]=1:n.attributes[_]=0}n.attributes[v]=n.geometry,s.push(n)}),{features:s,cypherTranslationApplied:!1}}return this.retrieveDataFromService(i,t,n,r)}async getConnectedRecordIds(e,t,n){let r=[],i=``,a=this._getNamedTypeIdMapFromNodeIds(e);if(t&&t?.length!==0){for(let e of t)i=i+e+`|`;i=i.slice(0,-1)}let o={},s=[];for(let[e,n]of a){let r=`${e}_ids`;o[r]=n,t&&t?.length!==0?s.push(`MATCH (n:${e}) WHERE id(n) IN $${r} WITH n MATCH (n)-[r:${i}]-(m) RETURN id(r), type(r), id(m), labels(m)[0]`):s.push(`MATCH (n:${e}) WHERE id(n) IN $${r} WITH n MATCH (n)-[r]-(m) RETURN id(r), type(r), id(m), labels(m)[0]`)}if(!s.length)return r;let c=s.join(` UNION `),l=(await C(this.knowledgeGraph,new w({openCypherQuery:c,bindParameters:o}),{signal:n?.signal})).resultRowsStream.getReader();for(;;){let{done:e,value:t}=await l.read();if(e)break;for(let e=0;e<t.length;e++){let n=t[e];r.push({id:n[0],typeName:n[1]}),r.push({id:n[2],typeName:n[3]})}}return r}async getRelationshipsBetweenNodes(e,t,n){let r=this._getNamedTypeIdMapFromNodeIds(e);if(r.size===0)return[];let i={relationshipExclusionIds:t,possibleConnectionEntityIds:e},a=[];for(let[e,t]of r.entries()){let n=`${e}_ids`;i[n]=t,a.push(`MATCH (n:${e}) WHERE id(n) IN $${n} WITH n MATCH (n)-[r]->(m) WHERE id(m) IN $possibleConnectionEntityIds AND NOT id(r) IN $relationshipExclusionIds RETURN id(r), type(r)`)}let o=a.join(` UNION `),s=[],c=(await C(this.knowledgeGraph,new w({openCypherQuery:o,bindParameters:i}),{signal:n?.signal})).resultRowsStream.getReader();for(;;){let{done:e,value:t}=await c.read();if(e)break;for(let e=0;e<t.length;e++){let n=t[e];s.push({id:n[0],typeName:n[1]})}}return s}async getRelationshipsFromNodes(e,t,n,r){let i=this._getNamedTypeIdMapFromNodeIds(e);if(i.size===0||t.length===0)return[];let a={relationshipExclusionIds:n,possibleConnectionEntityIds:t},o=[];for(let[e,t]of i.entries()){let n=`${e}_ids`;a[n]=t,o.push(`MATCH (n:${e}) WHERE id(n) IN $${n} WITH n MATCH (n)-[r]-(m) WHERE id(m) IN $possibleConnectionEntityIds AND NOT id(r) IN $relationshipExclusionIds RETURN id(r), type(r)`)}let s=o.join(` UNION `),c=new Map,l=(await C(this.knowledgeGraph,new w({openCypherQuery:s,bindParameters:a}),{signal:r?.signal})).resultRowsStream.getReader();for(;;){let{done:e,value:t}=await l.read();if(e)break;for(let e=0;e<t.length;e++){let n=t[e],r=c.get(n[1]);r||(r=new Set,c.set(n[1],r)),r.add(n[0])}}let u=[];for(let[e,t]of c)for(let n of t)u.push({id:n,typeName:e});return u}async refreshCacheContent(e,t,r,o=!0,s){let c=x.getInstance(),l=[],u=new Map,d=new Map;this.knowledgeGraph.dataModel.entityTypes?.forEach(e=>{e.name&&d.set(e.name,e)}),this.knowledgeGraph.dataModel.relationshipTypes?.forEach(e=>{e.name&&d.set(e.name,e)}),!e&&!this.inclusionModeDefinition?(this.knowledgeGraph.dataModel.entityTypes?.forEach(e=>{e.name&&u.set(e.name,null)}),this.knowledgeGraph.dataModel.entityTypes?.forEach(e=>{e.name&&u.set(e.name,null)})):e?e.forEach(e=>{if(this.memberIdTypeLookup.has(e))for(let t of this.memberIdTypeLookup.get(e))u.has(t)?u.get(t)?.push(e):u.set(t,[e])}):this.inclusionModeDefinition?.namedTypeDefinitions?.forEach((e,t)=>{e.useAllData?u.set(t,null):e.members&&e.members.forEach(e=>{u.has(t)&&u.get(t)!==null?u.get(t)?.push(e.id):u.set(t,[e.id])})});for(let[e,a]of u){let u=new Set(a),f=new Promise((l,f)=>{(async()=>{let l=new Set,f=[],p=``,h=!1;if(t||d.get(e)?.properties?.forEach(e=>{e.name&&l.add(e.name)}),r&&this.geographicLookup.has(e)){let t=this.geographicLookup.get(e)?.name;t&&l.add(t)}if(this.entityTypeNames.has(e))p=`MATCH (n:${e}) ${a?`WHERE id(n) IN $ids `:``}return ID(n)`,l.forEach(e=>{p+=`, n.${e}`,f.push(e)});else if(this.relationshipTypeNames.has(e))h=!0,p=`MATCH ()-[n:${e}]->() ${a?`WHERE id(n) IN $ids `:``}return ID(n), id(startNode(n)), id(endNode(n))`,l.forEach(e=>{p+=`, n.${e}`,f.push(e)});else throw new n(`knowledge-graph:layer-data-manager`,`The graph type of ${e} could not be determined. Was this type set in the KG data model and inclusion definition?`);let g;g=a?new w({openCypherQuery:p,bindParameters:{ids:a}}):new w({openCypherQuery:p});let _=(await C(this.knowledgeGraph,g,{signal:s?.signal})).resultRowsStream.getReader();for(;;){let{done:t,value:n}=await _.read();if(t)break;let r=[];for(let e=0;e<n.length;e++){let t=n[e],a=0,o=0,s={properties:{}};for(s.id=t[a],a++,o++,h&&(s.originId=t[a],a++,o++,s.destinationId=t[a],a++,o++,i(this.nodeConnectionsLookup,s.originId,()=>new Set).add(s.id),i(this.nodeConnectionsLookup,s.destinationId,()=>new Set).add(s.id),i(this.relationshipConnectionsLookup,s.id,()=>[s.originId,s.destinationId]));a<t.length;a++)s.properties[f[a-o]]=t[a];u.delete(s.id),r.push(s)}let a=c.writeToStore(r,m,this.geographicLookup.get(e)?.name);this.sublayerCaches.has(e)||this.sublayerCaches.set(e,new Map),o&&!this.inclusionModeDefinition?.namedTypeDefinitions.has(e)&&this.inclusionModeDefinition?.namedTypeDefinitions.set(e,{useAllData:!1,members:new Map}),o&&!this.inclusionModeDefinition?.namedTypeDefinitions.get(e).members&&(this.inclusionModeDefinition.namedTypeDefinitions.get(e).members=new Map);let s=this.sublayerCaches.get(e);a.forEach(t=>{s?.set(t.attributes[m],t),o&&!this.inclusionModeDefinition?.namedTypeDefinitions.get(e).members.has(t.attributes[m])&&(this.inclusionModeDefinition?.namedTypeDefinitions.get(e).members.set(t.attributes[m],{id:t.attributes[m]}),i(this.memberIdTypeLookup,t.attributes[m],()=>new Set).add(e))})}let v=this.inclusionModeDefinition?.namedTypeDefinitions.get(e);if(v)for(let e of u)v.members?.delete(e)})().then(()=>{l(null)}).catch(e=>{e.name===`AbortError`?l(null):f(e)})});l.push(f),this._processingCacheUpdatesLookup.get(e)?.push(f)}if(await Promise.all(l),s?.signal?.aborted)throw a()}removeFromLayer(e){let t=new Set,n=new Set(e.map(e=>e.id));for(let n of e)t.add(n.typeName),this.memberIdTypeLookup.get(n.id)?.size===1?this.memberIdTypeLookup.delete(n.id):this.memberIdTypeLookup.get(n.id)?.delete(n.typeName),this.inclusionModeDefinition?.namedTypeDefinitions.forEach((e,t)=>{t===n.typeName&&e.members?.has(n.id)&&e.members.delete(n.id)});t.forEach(e=>{this.sublayerCaches.get(e)?.forEach((t,r)=>{n.has(r)&&this.sublayerCaches.get(e)?.delete(r)})})}async retrieveDataFromService(e,t,r,i){let a=x.getInstance(),s=new Set,c=[],h=``,g=[],_=!1,v,T=t.graphType===`relationship`,E=this.inclusionModeDefinition?.namedTypeDefinitions?.get(t.objectType.name)?.useAllData,D=r.sublayerIdsCache.get(t.objectType.name),O=!E&&D?Array.from(D).sort():null,k={systemOidFieldName:m,supportedSqlTypes:new Set([`column-reference`,`string`,`number`,`binary-expression`]),supportedSqlOperators:new Set([`=`,`<`,`<=`,`<>`,`>`,`>=`,`AND`,`OR`,`LIKE`]),unsupportedOperationFound:!1};if(this.inclusionModeDefinition?.namedTypeDefinitions?.get(t.objectType.name)?.useAllData)this.inclusionModeDefinition?.namedTypeDefinitions?.get(t.objectType.name)?.useAllData&&e.objectIds!=null&&(O=e.objectIds);else if(e.objectIds!=null&&O&&O.length>0){let t=e.objectIds,n=O.filter(e=>t.includes(e));if(t.length>0&&n.length===0)return{features:[],cypherTranslationApplied:_};e.objectIds=n}else if(e.objectIds!=null)O=e.objectIds;else if(this.inclusionModeDefinition?.namedTypeDefinitions.has(t.objectType.name)&&(!this.inclusionModeDefinition.namedTypeDefinitions.get(t.objectType.name)?.members||this.inclusionModeDefinition.namedTypeDefinitions.get(t.objectType.name)?.members?.size<1))return e.objectIds=[],{features:[],cypherTranslationApplied:_};else e.objectIds=O;if(e.outFields!=null){let n=e.outFields;n.includes(`*`)?t.fields.forEach(e=>{s.add(e.name)}):n.forEach(e=>{e!==m&&e!==t.geometryFieldName&&s.add(e)})}if(e.geometry!=null){let i=e.geometry,a,m=r.dataManager.knowledgeGraph.serviceDefinition,g=m?.spatialReference,_=m?.serviceCapabilities?.geometryCapabilities,y=_?.geometryMaxBoundingRectangleSizeX,b=_?.geometryMaxBoundingRectangleSizeY;if(i.type===`point`){let e=i;e.spatialReference?.isWGS84||(await d(e.spatialReference,p),e=f(e,p)),a=new l({spatialReference:p,xmin:e.x-1e-4,ymin:e.y-1e-4,xmax:e.x+1e-4,ymax:e.y+1e-4})}else i?.extent?.spatialReference&&!i.spatialReference?.isWGS84?(await d(i.extent.spatialReference,p),a=f(i.extent,p)):a=i.extent;if(y&&b&&g){if(g.wkid!==4326){let e=new l({spatialReference:g,xmax:y,ymax:b}),t=f(e,p);y=t.xmax,b=t.ymax}if(a.xmax-a.xmin>y)throw new n(`knowledge-graph:layer-data-manager`,`Extent x bounds should be within ${y}° latitude, limit exceeded`);if(a.ymax-a.ymin>b)throw new n(`knowledge-graph:layer-data-manager`,`Extent y bounds should be within ${b}° longitude, limit exceeded`)}if(e.where!=null&&e.where!==`1=1`){let n=await o(e.where.toUpperCase(),t.fieldsIndex);t.fields.forEach(e=>{n.fieldNames.includes(e.name)&&s.add(e.name)})}h=T?`Match ()-[n:${t.objectType.name}]->() WHERE esri.graph.ST_Intersects($param_filter_geom, n.${t.geometryFieldName}) return ID(n), id(startNode(r)), id(endNode(r))`:`Match (n:${t.objectType.name}) WHERE esri.graph.ST_Intersects($param_filter_geom, n.${t.geometryFieldName}) return ID(n)`,t.geometryFieldName&&s.add(t.geometryFieldName),s.forEach(e=>{h+=`, n.${e}`,c.push(e)}),v=new w({openCypherQuery:h,bindParameters:{param_filter_geom:new u({rings:S(a)})}})}else{let n=``;if(e.where!=null&&e.where!==`1=1`){let r=await o(e.where,t.fieldsIndex);t.fields.forEach(e=>{r.fieldNames.includes(e.name)&&s.add(e.name)}),n=y(r.parseTree,k),k.unsupportedOperationFound&&(n=``)}let r=``;r=T?`Match ()-[n:${t.objectType.name}]->()`:`Match (n:${t.objectType.name})`;let i=!1;O&&(i=!0,r+=` WHERE ID(n) IN $ids`),n&&(r+=i?` AND`:` WHERE`,r+=` ${n}`),r+=` return ID(n)`,T&&(r+=`, id(startNode(n)), id(endNode(n))`),e.returnGeometry&&t.geometryFieldName&&s.add(t.geometryFieldName),s.forEach(e=>{r+=`, n.${e}`,c.push(e)}),k.unsupportedOperationFound||(r=b(r,e),_=!0),v=O?new w({openCypherQuery:r,bindParameters:{ids:O}}):new w({openCypherQuery:r})}let A=(await C(r.dataManager.knowledgeGraph,v,i)).resultRowsStream.getReader();for(;;){let{done:e,value:n}=await A.read();if(e)break;let i=[];for(let e=0;e<n.length;e++){let t=n[e],r=0,a=0,o={properties:{}};for(o.id=t[r],r++,a++,T&&(o.originId=t[r],r++,a++,o.destinationId=t[r],r++,a++);r<t.length;r++)o.properties[c[r-a]]=t[r];i.push(o)}g=g.concat(a.writeToStore(i,m,r.dataManager.geographicLookup.get(t.objectType.name)?.name))}return{features:g,cypherTranslationApplied:_}}_isEndEntitySpatial(e,t,n){for(let r of e??[])if(this.entityTypeNames.has(r)){let e=this.geographicLookup.get(r),i=e&&this.sublayerCaches.get(r)?.get(t.attributes[n]);if(e&&i?.attributes[e.name])return!0}return!1}_getNamedTypeIdMapFromNodeIds(e){let t=new Map;return e.forEach(e=>{if(this.memberIdTypeLookup.has(e))for(let n of this.memberIdTypeLookup.get(e)){if(!this.entityTypeNames.has(n))return;t.has(n)?t.get(n)?.push(e):t.set(n,[e])}}),t}};e([s()],E.prototype,`knowledgeGraph`,void 0),e([s()],E.prototype,`inclusionModeDefinition`,void 0),e([s()],E.prototype,`entityTypeNames`,void 0),e([s()],E.prototype,`relationshipTypeNames`,void 0),e([s()],E.prototype,`geographicLookup`,void 0),e([s()],E.prototype,`sublayerCaches`,void 0),e([s()],E.prototype,`nodeConnectionsLookup`,void 0),e([s()],E.prototype,`relationshipConnectionsLookup`,void 0),e([s()],E.prototype,`memberIdTypeLookup`,void 0),E=e([c(`esri.layers.knowledgeGraph.KnowledgeGraphLayerDataManager`)],E);export{E as KnowledgeGraphLayerDataManager};
|
|
2
|
+
import{__decorate as e}from"tslib";import t from"../../core/Accessor.js";import n from"../../core/Error.js";import r from"../../core/Logger.js";import{getOrCreateMapValue as i}from"../../core/MapUtils.js";import{createAbortError as a}from"../../core/promiseUtils.js";import{parseWhereClause as o}from"../../core/sql.js";import{property as s,subclass as c}from"../../core/accessorSupport/decorators.js";import l from"../../geometry/Extent.js";import u from"../../geometry/Polygon.js";import{initializeProjection as d,project as f}from"../../geometry/projectionUtils.js";import{wgs84 as p}from"../../geometry/support/spatialReferenceUtils.js";import{systemOidFieldName as m,systemOriginIdFieldName as h,systemDestinationIdFieldName as g,systemIsSpatialFieldName as _,systemLayoutGeometryFieldName as v}from"./constants.js";import{recursiveParseSqlToCypher as y,addAdditionalClausesToCypher as b}from"./cypherUtils.js";import x from"./SessionMemoryStorage.js";import{utilsExtentToInBoundsRings as S}from"./supportUtils.js";import{executeQueryStreaming as C}from"../../rest/knowledgeGraphService.js";import w from"../../rest/knowledgeGraph/GraphQueryStreaming.js";import T from"../../rest/support/Query.js";let E=class extends t{constructor(e){super(e),this._processingCacheUpdatesLookup=new Map,this.knowledgeGraph=null,this.inclusionModeDefinition={generateAllSublayers:!0,namedTypeDefinitions:new Map},this.entityTypeNames=new Set,this.relationshipTypeNames=new Set,this.geographicLookup=new Map,this.sublayerCaches=new Map,this.nodeConnectionsLookup=new Map,this.relationshipConnectionsLookup=new Map,this.memberIdTypeLookup=new Map;let t=new Map;e.knowledgeGraph.dataModel.entityTypes?.forEach(n=>{n.name&&(t.set(n.name,`entity`),this._processingCacheUpdatesLookup.set(n.name,[]),(!e.inclusionModeDefinition||e.inclusionModeDefinition?.generateAllSublayers)&&this.entityTypeNames.add(n.name),n.properties?.forEach(e=>{e.geometryType&&e.geometryType!==`esriGeometryNull`&&this.geographicLookup.set(n.name,{name:e.name??``,geometryType:e.geometryType})}))}),e.knowledgeGraph.dataModel.relationshipTypes?.forEach(n=>{n.name&&(t.set(n.name,`relationship`),this._processingCacheUpdatesLookup.set(n.name,[]),(!e.inclusionModeDefinition||e.inclusionModeDefinition?.generateAllSublayers)&&this.relationshipTypeNames.add(n.name),n.properties?.forEach(e=>{e.geometryType&&e.geometryType!==`esriGeometryNull`&&this.geographicLookup.set(n.name,{name:e.name??``,geometryType:e.geometryType})}))}),e.inclusionModeDefinition?.namedTypeDefinitions.forEach((n,a)=>{if(t.get(a)===`entity`)this.entityTypeNames.add(a);else if(t.get(a)===`relationship`)this.relationshipTypeNames.add(a);else{r.getLogger(this).warn(`A named type, ${a}, was in the inclusion list that wasn't in the data model and will be removed`),e.inclusionModeDefinition?.namedTypeDefinitions.delete(a);return}let o=new Map;n.members?.forEach(e=>{i(this.memberIdTypeLookup,e.id,()=>new Set).add(a)}),this.sublayerCaches.set(a,o)})}addToLayer(e){e.forEach(({typeName:e,id:t})=>{if(!this.inclusionModeDefinition)throw new n(`knowledge-graph:layer-data-manager`,`You cannot add to a layer's exclusion list if it was not created with an exclusion list originally`);if(!this.inclusionModeDefinition.namedTypeDefinitions.has(e)){let n=new Map;n.set(t,{id:t}),this.inclusionModeDefinition.namedTypeDefinitions.set(e,{useAllData:!1,members:n}),i(this.memberIdTypeLookup,t,()=>new Set).add(e)}else if(this.inclusionModeDefinition.namedTypeDefinitions.has(e)){let n=this.inclusionModeDefinition.namedTypeDefinitions.get(e);n.members||=new Map,n.members.set(t,{id:t}),i(this.memberIdTypeLookup,t,()=>new Set).add(e)}})}getById(e){return x.getInstance().readFromStoreById(e)}async getData(e,t,n,r){if(t.objectType.name&&this.inclusionModeDefinition?.namedTypeDefinitions&&this.inclusionModeDefinition.namedTypeDefinitions.size>0&&!this.inclusionModeDefinition.namedTypeDefinitions.has(t.objectType.name))return{features:[],cypherTranslationApplied:!1};let i;if(i=e||new T({where:`1=1`,outFields:[`*`]}),n.type===`link-chart`){let e=n,r=this._processingCacheUpdatesLookup.get(t.objectType.name??``),a=i.outFields;a&&a.length===1&&a[0]===m&&i.where===`1=1`||await Promise.all(r??[]);let o=this.sublayerCaches.has(t.objectType.name??``)?Array.from(this.sublayerCaches.get(t.objectType.name)?.values()):[],s=[];return o.forEach(n=>{if(this.relationshipTypeNames.has(t.objectType.name)){n.geometry=e.relationshipLinkChartDiagramLookup.get(n.attributes[t.objectIdField]);let r=this.memberIdTypeLookup.get(n.attributes[h]),i=this.memberIdTypeLookup.get(n.attributes[g]),a=this._isEndEntitySpatial(r,n,h),o=this._isEndEntitySpatial(i,n,g);n.attributes[_]=Number(a&&o)}else{n.geometry=e.entityLinkChartDiagramLookup.get(n.attributes[t.objectIdField]);let r=this.geographicLookup.get(t.objectType.name);r&&n.attributes[r.name]?n.attributes[_]=1:n.attributes[_]=0}n.attributes[v]=n.geometry,s.push(n)}),{features:s,cypherTranslationApplied:!1}}return this.retrieveDataFromService(i,t,n,r)}async getConnectedRecordIds(e,t,n){let r=[],i=``,a=this._getNamedTypeIdMapFromNodeIds(e);if(t&&t?.length!==0){for(let e of t)i=i+e+`|`;i=i.slice(0,-1)}let o={},s=[];for(let[e,n]of a){let r=`${e}_ids`;o[r]=n,t&&t?.length!==0?s.push(`MATCH (n:${e}) WHERE id(n) IN $${r} WITH n MATCH (n)-[r:${i}]-(m) RETURN id(r), type(r), id(m), labels(m)[0]`):s.push(`MATCH (n:${e}) WHERE id(n) IN $${r} WITH n MATCH (n)-[r]-(m) RETURN id(r), type(r), id(m), labels(m)[0]`)}if(!s.length)return r;let c=s.join(` UNION `),l=(await C(this.knowledgeGraph,new w({openCypherQuery:c,bindParameters:o}),{signal:n?.signal})).resultRowsStream.getReader();for(;;){let{done:e,value:t}=await l.read();if(e)break;for(let e=0;e<t.length;e++){let n=t[e];r.push({id:n[0],typeName:n[1]}),r.push({id:n[2],typeName:n[3]})}}return r}async getRelationshipsBetweenNodes(e,t,n){let r=this._getNamedTypeIdMapFromNodeIds(e);if(r.size===0)return[];let i={relationshipExclusionIds:t,possibleConnectionEntityIds:e},a=[];for(let[e,t]of r.entries()){let n=`${e}_ids`;i[n]=t,a.push(`MATCH (n:${e}) WHERE id(n) IN $${n} WITH n MATCH (n)-[r]->(m) WHERE id(m) IN $possibleConnectionEntityIds AND NOT id(r) IN $relationshipExclusionIds RETURN id(r), type(r)`)}let o=a.join(` UNION `),s=[],c=(await C(this.knowledgeGraph,new w({openCypherQuery:o,bindParameters:i}),{signal:n?.signal})).resultRowsStream.getReader();for(;;){let{done:e,value:t}=await c.read();if(e)break;for(let e=0;e<t.length;e++){let n=t[e];s.push({id:n[0],typeName:n[1]})}}return s}async getRelationshipsFromNodes(e,t,n,r){let i=this._getNamedTypeIdMapFromNodeIds(e);if(i.size===0||t.length===0)return[];let a={relationshipExclusionIds:n,possibleConnectionEntityIds:t},o=[];for(let[e,t]of i.entries()){let n=`${e}_ids`;a[n]=t,o.push(`MATCH (n:${e}) WHERE id(n) IN $${n} WITH n MATCH (n)-[r]-(m) WHERE id(m) IN $possibleConnectionEntityIds AND NOT id(r) IN $relationshipExclusionIds RETURN id(r), type(r)`)}let s=o.join(` UNION `),c=new Map,l=(await C(this.knowledgeGraph,new w({openCypherQuery:s,bindParameters:a}),{signal:r?.signal})).resultRowsStream.getReader();for(;;){let{done:e,value:t}=await l.read();if(e)break;for(let e=0;e<t.length;e++){let n=t[e],r=c.get(n[1]);r||(r=new Set,c.set(n[1],r)),r.add(n[0])}}let u=[];for(let[e,t]of c)for(let n of t)u.push({id:n,typeName:e});return u}async refreshCacheContent(e,t,r,o=!0,s){let c=x.getInstance(),l=[],u=new Map,d=new Map;this.knowledgeGraph.dataModel.entityTypes?.forEach(e=>{e.name&&d.set(e.name,e)}),this.knowledgeGraph.dataModel.relationshipTypes?.forEach(e=>{e.name&&d.set(e.name,e)}),!e&&!this.inclusionModeDefinition?(this.knowledgeGraph.dataModel.entityTypes?.forEach(e=>{e.name&&u.set(e.name,null)}),this.knowledgeGraph.dataModel.entityTypes?.forEach(e=>{e.name&&u.set(e.name,null)})):e?e.forEach(e=>{if(this.memberIdTypeLookup.has(e))for(let t of this.memberIdTypeLookup.get(e))u.has(t)?u.get(t)?.push(e):u.set(t,[e])}):this.inclusionModeDefinition?.namedTypeDefinitions?.forEach((e,t)=>{e.useAllData?u.set(t,null):e.members&&e.members.forEach(e=>{u.has(t)&&u.get(t)!==null?u.get(t)?.push(e.id):u.set(t,[e.id])})});for(let[e,a]of u){let u=new Set(a),f=new Promise((l,f)=>{(async()=>{let l=new Set,f=[],p=``,h=!1;if(t||d.get(e)?.properties?.forEach(e=>{e.name&&l.add(e.name)}),r&&this.geographicLookup.has(e)){let t=this.geographicLookup.get(e)?.name;t&&l.add(t)}if(this.entityTypeNames.has(e))p=`MATCH (n:${e}) ${a?`WHERE id(n) IN $ids `:``}return ID(n)`,l.forEach(e=>{p+=`, n.${e}`,f.push(e)});else if(this.relationshipTypeNames.has(e))h=!0,p=`MATCH ()-[n:${e}]->() ${a?`WHERE id(n) IN $ids `:``}return ID(n), id(startNode(n)), id(endNode(n))`,l.forEach(e=>{p+=`, n.${e}`,f.push(e)});else throw new n(`knowledge-graph:layer-data-manager`,`The graph type of ${e} could not be determined. Was this type set in the KG data model and inclusion definition?`);let g;g=a?new w({openCypherQuery:p,bindParameters:{ids:a}}):new w({openCypherQuery:p});let _=(await C(this.knowledgeGraph,g,{signal:s?.signal})).resultRowsStream.getReader();for(;;){let{done:t,value:n}=await _.read();if(t)break;let r=[];for(let e=0;e<n.length;e++){let t=n[e],a=0,o=0,s={properties:{}};for(s.id=t[a],a++,o++,h&&(s.originId=t[a],a++,o++,s.destinationId=t[a],a++,o++,i(this.nodeConnectionsLookup,s.originId,()=>new Set).add(s.id),i(this.nodeConnectionsLookup,s.destinationId,()=>new Set).add(s.id),i(this.relationshipConnectionsLookup,s.id,()=>[s.originId,s.destinationId]));a<t.length;a++)s.properties[f[a-o]]=t[a];u.delete(s.id),r.push(s)}let a=c.writeToStore(r,m,this.geographicLookup.get(e)?.name);this.sublayerCaches.has(e)||this.sublayerCaches.set(e,new Map),o&&!this.inclusionModeDefinition?.namedTypeDefinitions.has(e)&&this.inclusionModeDefinition?.namedTypeDefinitions.set(e,{useAllData:!1,members:new Map}),o&&!this.inclusionModeDefinition?.namedTypeDefinitions.get(e).members&&(this.inclusionModeDefinition.namedTypeDefinitions.get(e).members=new Map);let s=this.sublayerCaches.get(e);a.forEach(t=>{s?.set(t.attributes[m],t),o&&!this.inclusionModeDefinition?.namedTypeDefinitions.get(e).members.has(t.attributes[m])&&(this.inclusionModeDefinition?.namedTypeDefinitions.get(e).members.set(t.attributes[m],{id:t.attributes[m]}),i(this.memberIdTypeLookup,t.attributes[m],()=>new Set).add(e))})}let v=this.inclusionModeDefinition?.namedTypeDefinitions.get(e);if(v)for(let e of u)v.members?.delete(e)})().then(()=>{l(null)}).catch(e=>{e.name===`AbortError`?l(null):f(e)})});l.push(f),this._processingCacheUpdatesLookup.get(e)?.push(f)}if(await Promise.all(l),s?.signal?.aborted)throw a()}removeFromLayer(e){let t=new Set,n=new Set(e.map(e=>e.id));for(let n of e)t.add(n.typeName),this.memberIdTypeLookup.get(n.id)?.size===1?this.memberIdTypeLookup.delete(n.id):this.memberIdTypeLookup.get(n.id)?.delete(n.typeName),this.inclusionModeDefinition?.namedTypeDefinitions.forEach((e,t)=>{t===n.typeName&&e.members?.has(n.id)&&e.members.delete(n.id)});t.forEach(e=>{this.sublayerCaches.get(e)?.forEach((t,r)=>{n.has(r)&&this.sublayerCaches.get(e)?.delete(r)})})}async retrieveDataFromService(e,t,r,i){let a=x.getInstance(),s=new Set,c=[],h=``,g=[],_=!1,v,T=t.graphType===`relationship`,E=this.inclusionModeDefinition?.namedTypeDefinitions?.get(t.objectType.name)?.useAllData,D=r.sublayerIdsCache.get(t.objectType.name),O=!E&&D?Array.from(D).sort():null,k={systemOidFieldName:m,supportedSqlTypes:new Set([`column-reference`,`string`,`number`,`binary-expression`]),supportedSqlOperators:new Set([`=`,`<`,`<=`,`<>`,`>`,`>=`,`AND`,`OR`,`LIKE`]),unsupportedOperationFound:!1};if(this.inclusionModeDefinition?.namedTypeDefinitions?.get(t.objectType.name)?.useAllData)this.inclusionModeDefinition?.namedTypeDefinitions?.get(t.objectType.name)?.useAllData&&e.objectIds!=null&&(O=e.objectIds);else{if(!O?.length)return{features:[],cypherTranslationApplied:_};if(e.objectIds!=null){let t=e.objectIds,n=O.filter(e=>t.includes(e));if(t.length>0&&n.length===0)return{features:[],cypherTranslationApplied:_};e.objectIds=n,n.length>0&&(O=n)}else e.objectIds=O}if(e.outFields!=null){let n=e.outFields;n.includes(`*`)?t.fields.forEach(e=>{s.add(e.name)}):n.forEach(e=>{e!==m&&e!==t.geometryFieldName&&s.add(e)})}if(e.geometry!=null){let i=e.geometry,a,m=r.dataManager.knowledgeGraph.serviceDefinition,g=m?.spatialReference,_=m?.serviceCapabilities?.geometryCapabilities,y=_?.geometryMaxBoundingRectangleSizeX,b=_?.geometryMaxBoundingRectangleSizeY;if(i.type===`point`){let e=i;e.spatialReference?.isWGS84||(await d(e.spatialReference,p),e=f(e,p)),a=new l({spatialReference:p,xmin:e.x-1e-4,ymin:e.y-1e-4,xmax:e.x+1e-4,ymax:e.y+1e-4})}else i?.extent?.spatialReference&&!i.spatialReference?.isWGS84?(await d(i.extent.spatialReference,p),a=f(i.extent,p)):a=i.extent;if(y&&b&&g){if(g.wkid!==4326){let e=new l({spatialReference:g,xmax:y,ymax:b}),t=f(e,p);y=t.xmax,b=t.ymax}if(a.xmax-a.xmin>y)throw new n(`knowledge-graph:layer-data-manager`,`Extent x bounds should be within ${y}° latitude, limit exceeded`);if(a.ymax-a.ymin>b)throw new n(`knowledge-graph:layer-data-manager`,`Extent y bounds should be within ${b}° longitude, limit exceeded`)}if(e.where!=null&&e.where!==`1=1`){let n=await o(e.where.toUpperCase(),t.fieldsIndex);t.fields.forEach(e=>{n.fieldNames.includes(e.name)&&s.add(e.name)})}h=T?`Match ()-[n:${t.objectType.name}]->() WHERE esri.graph.ST_Intersects($param_filter_geom, n.${t.geometryFieldName}) return ID(n), id(startNode(r)), id(endNode(r))`:`Match (n:${t.objectType.name}) WHERE esri.graph.ST_Intersects($param_filter_geom, n.${t.geometryFieldName}) return ID(n)`,t.geometryFieldName&&s.add(t.geometryFieldName),s.forEach(e=>{h+=`, n.${e}`,c.push(e)}),v=new w({openCypherQuery:h,bindParameters:{param_filter_geom:new u({rings:S(a)})}})}else{let n=``;if(e.where!=null&&e.where!==`1=1`){let r=await o(e.where,t.fieldsIndex);t.fields.forEach(e=>{r.fieldNames.includes(e.name)&&s.add(e.name)}),n=y(r.parseTree,k),k.unsupportedOperationFound&&(n=``)}let r=``;r=T?`Match ()-[n:${t.objectType.name}]->()`:`Match (n:${t.objectType.name})`;let i=!1;O&&(i=!0,r+=` WHERE ID(n) IN $ids`),n&&(r+=i?` AND`:` WHERE`,r+=` ${n}`),r+=` return ID(n)`,T&&(r+=`, id(startNode(n)), id(endNode(n))`),e.returnGeometry&&t.geometryFieldName&&s.add(t.geometryFieldName),s.forEach(e=>{r+=`, n.${e}`,c.push(e)}),k.unsupportedOperationFound||(r=b(r,e),_=!0),v=O?new w({openCypherQuery:r,bindParameters:{ids:O}}):new w({openCypherQuery:r})}let A=(await C(r.dataManager.knowledgeGraph,v,i)).resultRowsStream.getReader();for(;;){let{done:e,value:n}=await A.read();if(e)break;let i=[];for(let e=0;e<n.length;e++){let t=n[e],r=0,a=0,o={properties:{}};for(o.id=t[r],r++,a++,T&&(o.originId=t[r],r++,a++,o.destinationId=t[r],r++,a++);r<t.length;r++)o.properties[c[r-a]]=t[r];i.push(o)}g=g.concat(a.writeToStore(i,m,r.dataManager.geographicLookup.get(t.objectType.name)?.name))}return{features:g,cypherTranslationApplied:_}}_isEndEntitySpatial(e,t,n){for(let r of e??[])if(this.entityTypeNames.has(r)){let e=this.geographicLookup.get(r),i=e&&this.sublayerCaches.get(r)?.get(t.attributes[n]);if(e&&i?.attributes[e.name])return!0}return!1}_getNamedTypeIdMapFromNodeIds(e){let t=new Map;return e.forEach(e=>{if(this.memberIdTypeLookup.has(e))for(let n of this.memberIdTypeLookup.get(e)){if(!this.entityTypeNames.has(n))return;t.has(n)?t.get(n)?.push(e):t.set(n,[e])}}),t}};e([s()],E.prototype,`knowledgeGraph`,void 0),e([s()],E.prototype,`inclusionModeDefinition`,void 0),e([s()],E.prototype,`entityTypeNames`,void 0),e([s()],E.prototype,`relationshipTypeNames`,void 0),e([s()],E.prototype,`geographicLookup`,void 0),e([s()],E.prototype,`sublayerCaches`,void 0),e([s()],E.prototype,`nodeConnectionsLookup`,void 0),e([s()],E.prototype,`relationshipConnectionsLookup`,void 0),e([s()],E.prototype,`memberIdTypeLookup`,void 0),E=e([c(`esri.layers.knowledgeGraph.KnowledgeGraphLayerDataManager`)],E);export{E as KnowledgeGraphLayerDataManager};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{result as e}from"../../core/asyncUtils.js";import t from"../../core/Error.js";import
|
|
2
|
+
import{result as e}from"../../core/asyncUtils.js";import t from"../../core/Error.js";import{assertIsSome as n}from"../../core/maybe.js";import{whenOrAbort as r,throwIfAbortError as i}from"../../core/promiseUtils.js";import{getMetersPerUnitForSR as a}from"../../core/units.js";import{initializeProjection as o,project as s}from"../../geometry/projectionUtils.js";import{fromExtent as c}from"../../geometry/support/aaBoundingRect.js";import{GeometryQueryContext as l,ExtentQueryContext as u,isTileInfoTilemapCache as d,getLods as f}from"./ElevationQueryContext.js";import{ElevationTile as p}from"./ElevationTile.js";import m from"./ElevationTileData.js";import{GeometryDescriptor as h}from"./GeometryDescriptor.js";import{TileElevationSampler as g}from"./TileElevationSampler.js";import{TileKey as _}from"./TileKey.js";async function v(e,n,r){if(e=r?.ignoreInvisibleLayers?e.filter(e=>e.visible):e.slice(),!e.length)throw new t(H,`Elevation queries require at least one elevation layer to fetch tiles from`);let i=h.fromGeometry(n),a={...j,...r,returnSampleInfo:!0},o=await y(e.pop(),i,a),s=await w(e,o,a);return s.geometry=s.geometry.export(),r?.returnSampleInfo||delete s.sampleInfo,s}async function y(e,n,r){if(!e)throw new t(H,`Elevation queries require an elevation layer to fetch tiles from`);if(!n||!(n instanceof h)&&n.type!==`point`&&n.type!==`multipoint`&&n.type!==`polyline`)throw new t(`elevation-query:invalid-geometry`,`Only point, polyline and multipoint geometries can be used to query elevation`);return e.queryElevationForGround(n,{...j,...r})}async function b(e,t,n){let{view:r,...i}={...j,...n},a=i.signal,o=new l(e,t.spatialReference,i);return await e.load({signal:a}),await M(o,t,a),await T(o,a),await L(o,a),z(o),B(o,a)}async function x(e,n,r){if(e=Array.isArray(e)?e:[e],e=r?.ignoreInvisibleLayers?e.filter(e=>e.visible):e.slice(),e.length===0)throw new t(H,`Elevation queries require at least one elevation layer to fetch tiles from`);if(!n||n.type!==`extent`)throw new t(`elevation-query:invalid-extent`,`Invalid or undefined extent`);let i={...j,...r,returnSampleInfo:!0},a=S(e[e.length-1],n,i);if(e.length===1)return a;let o=await a;return C(e,n,o,i)}async function S(e,t,n,r){let i=n.signal;await e.load({signal:i});let a=t.spatialReference,c=e.tileInfo.spatialReference;a.equals(c)||(await o([{source:a,dest:c}],{signal:i}),t=s(t,c));let l=new u(e,t,n,r);await T(l,i),await L(l,i);let d=l.elevationTiles,f=l.layer.tileInfo,p=l.parameters.noDataValue;return new g({noDataValue:p,tiles:d,tileInfo:f})}async function C(e,t,n,r){if(e.pop(),!e.length)return n;let i=n.samplers.filter(e=>!e.tile.hasNoDataValues).map(e=>c(e.extent)),a=await S(e[e.length-1],t,r,i);if(a.samplers.length===0)return n;let o=n.samplers.concat(a.samplers),s=r.noDataValue;return C(e,t,new g({samplers:o,noDataValue:s}),r)}async function w(e,t,r){let i=t.geometry.coordinates,a=t.sampleInfo;n(a);let o=[],s=[];for(let t=0;t<i.length;t++)a[t].demResolution<0&&e.length&&(o.push(i[t]),s.push(t));let c=e.pop();if(c==null||o.length===0)return t;let l=await y(c,t.geometry.clone(o),r),u=l.sampleInfo;if(!u)throw Error(`no sampleInfo`);return s.forEach((e,t)=>{i[e].z=l.geometry.coordinates[t].z,a[e].demResolution=u[t].demResolution,a[e].source=u[t].source}),w(e,t,r)}async function T(e,n){e.type===`geometry`&&N(e);let r=e.parameters.demResolution;if(typeof r==`number`)F(e,r);else if(r===`finest-contiguous`)await E(e,n);else if(r===`auto`)await O(e,n);else throw new t(`elevation-query:invalid-dem-resolution`,`Invalid dem resolution value '${r}', expected a number, "finest-contiguous" or "auto"`)}async function E(e,t){let{tileInfo:n,tilemapCache:r}=e.layer;await D(e,A(n,r,e.parameters.minDemResolution),t)}async function D(e,n,a){let o=e.layer;if(e.selectTilesAtLOD(n),n<0)return;let s=o.tilemapCache,c=e.getTilesToFetch();try{if(s&&!d(s))await r(Promise.all(c.map(e=>s.fetchAvailability(e.level,e.row,e.col,{signal:a}))),a);else if(await L(e,a),!e.allElevationTilesFetched())throw e.clearElevationTiles(),new t(`elevation-query:has-unavailable-tiles`,`Some elevation tiles are unavailable`)}catch(t){i(t),await D(e,n-1,a)}}async function O(t,n){I(t),R(t);let a=t.layer.tilemapCache;if(!a||d(a))return k(t,n);let o=t.getTilesToFetch(),s={},c=o.map(async t=>{let r=new _(0,0,0),o=await e(a.fetchAvailabilityUpsample(t.level,t.row,t.col,r,{signal:n}));o.ok===!1?i(o.error):t.id!=null&&(s[t.id]=r)});await r(Promise.all(c),n),t.remapTiles(s)}async function k(e,t){let n=e.layer.tileInfo;await L(e,t);let r=!1;e.forEachTileToFetch((e,t)=>{n.upsampleTile(e)?r=!0:t()}),r&&await k(e,t)}function A(e,t,n=0){let r=f(e,t),i=r.length-1;if(n>0){let t=n/a(e.spatialReference),o=r.findIndex(e=>e.resolution<t);o===0?i=0:o>0&&(i=o-1)}return i}const j={maximumAutoTileRequests:20,noDataValue:0,returnSampleInfo:!1,demResolution:`auto`,minDemResolution:0,signal:null};async function M(e,n,r){let i,a=e.layer.tileInfo.spatialReference;if(n instanceof h?i=await n.project(a,r):(await o([{source:n.spatialReference,dest:a}],{signal:r}),i=s(n,a)),!i)throw new t(`elevation-query:spatial-reference-mismatch`,`Cannot query elevation in '${n.spatialReference.wkid}' on an elevation service in '${a.wkid}'`);e.geometry=h.fromGeometry(i)}function N(e){if(e.layer.fullExtent==null)return;let t=new p(new _(-1,-1,-1));t.sample=()=>e.parameters.noDataValue,e.outsideExtentTile=t;let n=e.layer.fullExtent;e.geometry.coordinates.forEach(e=>{let r=e.x,i=e.y;(r<n.xmin||r>n.xmax||i<n.ymin||i>n.ymax)&&(e.elevationTile=t)})}function P(e,t){let{tileInfo:n,tilemapCache:r}=e.layer,i=t/a(n.spatialReference),o=f(n,r),s=o[0],c=0;for(let e=1;e<o.length;e++){let t=o[e];Math.abs(t.resolution-i)<Math.abs(s.resolution-i)&&(s=t,c=e)}return c}function F(e,t){let n=P(e,t);e.selectTilesAtLOD(n)}function I(e){let{tileInfo:t,tilemapCache:n}=e.layer,r=A(t,n,e.parameters.minDemResolution);e.selectTilesAtLOD(r,e.parameters.maximumAutoTileRequests)}async function L(e,t){let n=e.getTilesToFetch(),i={},a=e.parameters.cache,o=e.parameters.noDataValue,s={noDataValue:o,signal:t},c=n.map(async t=>{if(t.id==null)return;let n=`${e.layer.uid}:${t.id}:${o}`,r=a?.get(n)??m.from(await e.layer.fetchTile(t.level,t.row,t.col,s));a?.put(n,r),i[t.id]=new p(t,r)});await r(Promise.allSettled(c),t),e.populateElevationTiles(i)}function R(e){let t=e.layer.tileInfo,n=0,r={},i=e=>{e.id!=null&&(e.id in r?r[e.id]++:(r[e.id]=1,n++))},a=e=>{if(e.id==null)return;let t=r[e.id];t===1?(delete r[e.id],n--):r[e.id]=t-1};e.forEachTileToFetch(i,a);let o=!0;for(;o&&(o=!1,e.forEachTileToFetch(r=>{n<=e.parameters.maximumAutoTileRequests||(a(r),t.upsampleTile(r)&&(o=!0),i(r))},a),o););}function z(e){e.geometry.coordinates.forEach(t=>{let n=t.elevationTile,r=e.parameters.noDataValue;if(n){let e=n.sample(t.x,t.y);e==null?t.elevationTile=null:r=e}t.z=r})}async function B(e,t){let r=await e.geometry.project(e.outSpatialReference,t);n(r);let i={geometry:r.export(),noDataValue:e.parameters.noDataValue};return e.parameters.returnSampleInfo&&(i.sampleInfo=V(e)),e.geometry.coordinates.forEach(e=>{e.tile=null,e.elevationTile=null}),i}function V(e){let t=e.layer.tileInfo,n=a(t.spatialReference);return e.geometry.coordinates.map(r=>{let i=-1;r.elevationTile&&r.elevationTile!==e.outsideExtentTile&&(i=t.lodAt(r.elevationTile.key.level).resolution*n);let a=i===-1?void 0:e.layer;return{demResolution:i,source:a}})}const H=`elevation-query:invalid-layer`;export{H as InvalidLayerError,x as createSampler,j as defaultOptions,A as getFinestLodIndex,y as query,v as queryAll,b as queryElevationFromTiles};
|