当前位置: 首页 > news >正文

07-ArcGIS For JavaScript--隐藏参数qualitySettings(memory和lod控制)

目录

  • 1、综述
  • 2、sceneview.qualitySettings
    • 2.1、sceneview.qualitySettings.memoryLimit
    • 2.2、lodFactor
    • 2.3 additionalCacheMemory
  • 3、结论

1、综述

先上重点,SceneView.qualitySettings为隐藏对象参数,该对象的memoryLimit和lodFactor等值,可以修改当前可见区域加载的内存大小,并且可以修改当前场景中加载的模型的lod的层级(控制相同视角下的模型的粗糙度)。

对于ArcGIS For JavaScript,只能从SceneViewPerformanceInfo对象下图参数中看到与内存相关的内容:
在这里插入图片描述
在这里插入图片描述
对于这些内存的内容,我们能够了解到当前场景中使用的内存大小,以及能够允许的最大内存,但是却不能去直接设置当前场景可加载的内存大小。
通过下面代码,可以打印一下SceneView对象的信息。

const view = new SceneView({container: "viewDiv",map: map,});view.when(function () {console.log(view)})

在我们常用的qualityProfile下面有一个qualitySettings的参数,这个就是我们今天要降到的隐藏参数。
在这里插入图片描述

2、sceneview.qualitySettings

对于qualitySettings的研究后,目前有可见效果的参数有以下几个:

  1. memoryLimit:设置当前可见区域内的最大加载内存
  2. lodFactor:设置当前场景中模型的lod级别
  3. additionalCacheMemory:设置缓存本地的内存大小。
    下面分别介绍这几个参数。

2.1、sceneview.qualitySettings.memoryLimit

我们知道SceneView场景中qualityProfile参数设置为high, medium 和low的时候,其对应的memoryLimit的值是不一样的,如下:
在这里插入图片描述
这个memoryLimit其实就是限制了当前可见区域的数据加载的对大值,例如,当讲sceneview.qualitySettings.memoryLimit值设置为50MB的时候,出现如下情况。

  1. 模型再拖动的时候出现缺块问题。
  2. 后台报内存溢出。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    这个缺块就是因为当前可见区域内存太小,导致加载其他数据时会先删除之前加载的缓存,再去加载新的,删除的时候就会导致缺块问题。

因此当遇到后台报内存错误问题,或者页面在加载的时候出现缺块问题,可以通过调整sceneview.qualitySettings.memoryLimit去解决。

2.2、lodFactor

lodFactor主要是修改当前模型限制的lod级别,默认为1,当设置为0.5的时候,模型限制的比较粗糙,当设置为2的时候,模型限制的比较精细。

sceneview.qualitySettings下有个sceneService对象,下面可以看到有integratedMesh(倾斜模型)、object(3d object模型)、point(点模型)、pointCloud(点云模型)等对象。
在这里插入图片描述
用倾斜举例,可以看到integratedMesh下面有个lodFactor的值。
在这里插入图片描述
默认情况:
在这里插入图片描述
lodFactor=0.1时:

view.qualitySettings.sceneService['integratedMesh'].lodFactor = 0.1;

在这里插入图片描述
lodFactor=2时

view.qualitySettings.sceneService['integratedMesh'].lodFactor = 2;

在这里插入图片描述
因此,当需要在特定场景对模型的精细度要求比较严格的时候,可以通过调整lodFacrtor的值进行修改。

2.3 additionalCacheMemory

additionalCacheMemory主要是设置当前页面缓存到本地硬盘的大小的变量,可以将需要预览的数据提前缓存到本地,下次浏览的时候提升加载速度。但是这种情况再页面刷新后会本清除。

3、结论

  1. 当模型数据比较大的时候,模型加载出现缺块问题,可通过修改memoryLimit值进行测试。但是大小不能太大,需要考虑浏览器的压力。
  2. 当场景在不同情况下对模型的精度要求很严格的时候,或者需要降低模型质量去提升加载效率的时候,可通过修改lodFactor。
  3. additionalCacheMemory主要是设置当前页面缓存到本地硬盘的大小的变量,可以将需要预览的数据提前缓存到本地,下次浏览的时候提升加载速度。但是这种情况再页面刷新后会本清除。
http://www.lryc.cn/news/515555.html

相关文章:

  • QML自定义数值编辑框SpinBox样式
  • 【数据可视化-10】国防科技大学录取分数线可视化分析
  • 深入探索:将 Elasticsearch 与 Ruby 工具结合使用
  • Istio 补充 Kubernetes 的不足
  • 远程主机执行脚本1、无脚本内容外协。
  • Jmeter进阶篇(32)Jmeter 在 MySQL 数据库压测中的应用
  • Python脚本实现通过Vector VN1630A CAN盒子与ECU通信
  • Spring实现Logback日志模板设置动态参数
  • 内部类 --- (寄生的哲学)
  • Python深度学习GRU、LSTM 、BiLSTM-CNN神经网络空气质量指数AQI时间序列预测及机器学习分析|数据分享...
  • JSP基础
  • 基于Springboot +Vue 在线考试管理系统
  • Node.js 函数
  • JVM学习指南(9)-JVM运行时数据区
  • 2025/1/4期末复习 密码学 按老师指点大纲复习
  • 关于嵌入式系统的知识课堂(二)
  • 基于ETAS工具的AutoConnect实现方案
  • BGP基础配置实验
  • 基于单片机的人体健康指标采集系统设计
  • Go语言性能优化-字符串格式化优化
  • UE5失真材质
  • SAP 01-初识AMDP(ABAP-Managed Database Procedure)
  • 关于视频审核,内容风控在“控”什么?
  • 5G NTN(七) 高层(1)
  • 专家混合(MoE)大语言模型:免费的嵌入模型新宠
  • 《柴油遗产-无耻时代》V98375官方版
  • 科技云报到:洞见2025年科技潮流,技术大融合开启“智算时代”
  • 【openwrt】OpenWrt 路由器的 802.1X 动态 VLAN
  • [coredump] 生成管理
  • CSS——5. 外部样式