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.mzph.cn/news/891297.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【SQL Server】教材数据库(1)

1 利用sql建立教材数据库,并定义以下基本表: 学生(学号,年龄,性别,系名) 教材(编号,书名,出版社编号,价格) 订购(学号…

RP2040 C SDK I2C外设使用

RP2040 C SDK I2C外设使用 📌相关篇《RP2040 VSCode C/C开发环境快速部署》📍I2C API 外设:https://www.raspberrypi.com/documentation/pico-sdk/hardware.html#group_hardware_i2c🔧驱动I2C ssd1306 屏幕需要使用到的库&#xf…

模仿微信小程序wx.showModal自定义弹窗,内容可以修改

实现以下弹框样式功能 1.在components新建一个文件showModel.wpy作为组件&#xff0c;复制下面代码 <style lang"less" scoped> .bg_model {display: flex;justify-content: center;align-items: center;// 弹框背景.bg_hui {width: 100%;height: 100%;posi…

WebP Vs. PNG:哪种图像格式适合您的网站?

图像对任何网站都至关重要,可以增强视觉吸引力和用户体验。但是,图像也会显着影响网站的加载时间,因此必须针对 Web 使用对其进行优化。一种方法是使用正确的图像格式。

mysql乱码、mysql数据中文问号

网上排出此错误方法的很多&#xff0c;但是 都不简洁&#xff0c;找不到根本原因 主要排查两点&#xff1a; 1.代码中jdbc链接的编码规则 urljdbc:mysql://localhost:3306/title?useUnicodetrue&amp;characterEncodingutf8 将characterEncoding设置为utf8 2.设置mysq…

INT303 Big Data Analytics 笔记

Lecture1 Introduction 不考&#xff01; “Data Mining is the study of collecting, processing, analyzing, and gaining useful insights from data” EXPLORATORY ANALYSIS Make measurements to understand what the data looks like first steps when collecting da…

Unity3D仿星露谷物语开发12之创建道具列表

1、目标 道具是游戏的核心部分&#xff0c;道具包括你可以拾取的东西&#xff0c;你可以使用的工具和你能种的东西等。 本节就是创建道具的信息类。同时了解ScriptableObject类的使用。 2、创建道具枚举类 修改Assets -> Scripts -> Enums.cs脚本&#xff0c; 新增如…

如何修复 WordPress 中的“Error establishing a database connection”问题

如何修复 WordPress 中的“Error establishing a database connection”问题 在使用 WordPress 建站时&#xff0c;如果你看到“Error establishing a database connection”的提示&#xff0c;不要慌张。这通常意味着网站无法连接到数据库&#xff0c;因此无法显示内容。下面…

SQL 基础教程 - SQL SELECT 语句

SQL SELECT DISTINCT 语句 SELECT DISTINCT 语句用于返回唯一不同的值。 在表中&#xff0c;一个列可能会包含多个重复值&#xff0c;有时您也许希望仅仅列出不同&#xff08;distinct&#xff09;的值。 DISTINCT 关键词用于返回唯一不同的值。 SQL SELECT DISTINCT 语法 …

使用Anaconda管理R语言环境,并使用Jupyter Notebook编写R语言

文章目录 Anaconda中创建R环境0 官方教程存在的问题1 创建R语言环境2 安装常用包集合&#xff1a;r-essentials3 用VS Code的Jupyter插件写R 相信一直使用Python搞数据分析、机器学习的同学们会习惯使用 Anaconda管理不同的Python环境&#xff0c;并使用Jupyter Notebook&#…

3.5mm耳机接口硬件连接

结构 以最复杂的结构为例 简单的结构无非就是没有MIC&#xff08;麦克风&#xff09;接口 上图的5就是Detect的作用 上面这两款产品都为3.5mm的音频插座&#xff0c;图一 为连接4节的音频座&#xff0c;而且有两个开关&#xff0c;1接地&#xff0c;2接MIC&#xff0c;3接左声…

第25天:信息收集-项目系统一键打点资产侦察企查产权空间引擎风险监测利器部署

#知识点 1、信息收集-项目推荐-自动化环境部署 2、信息收集-项目推荐-自动化资产收集管理 一、自动化-网络空间-Yakit&TscanPlus 项目地址&#xff1a;https://www.yaklang.com/ 项目地址&#xff1a;https://github.com/TideSec/TscanPlus 集成Fofa、Hunter、Quake、Zoome…

vue3学习笔记(11)-组件通信

1.props 父传子 子传夫 父传子 接收用defineProps([]) 空字符串也是假 2.自定义事件 $event:事件对象 ref定义的数据在模板里面引用的时候可以不用.value 3.子传父 宏函数 触发事件 声明事件 defineEmits() 挂载之后3s钟触发 4.命名 肉串命名 5.任意组件通信 mitt pubs…

1 数据库(下):多表设计 、多表查询 + SQL中的with查询语法(MySQL8.0以后版本才支持这种新语法)+ 数据库优化(索引优化)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、多表设计1 多表设计-概述2 三种多表关系一对多&#xff08;多对一&#xff09;&#xff08;1&#xff09;无外键约束&#xff08;逻辑外键&#xff09;&…

Supermap iClient Webgl 粒子特效案例-消防场景

作者&#xff1a;Lzzzz 前言 WebGL 粒子特效的应用场景非常广泛&#xff0c;几乎可以在任何需要丰富视觉效果或动态表现的地方看到其身影。通过灵活运用颗粒系统&#xff0c;开发者可以创造出引人入胜的用户体验和视觉表现。 一、效果展示 二、实现步骤 1&#xff0c;构建…

Eclipse常用快捷键详解

文章目录 Eclipse常用快捷键详解一、引言二、编辑快捷键三、选择和移动快捷键四、行操作快捷键五、搜索和导航快捷键六、调试快捷键七、重构快捷键八、其他快捷键九、使用案例场景一&#xff1a;代码编写代码示例 场景二&#xff1a;代码调试场景三&#xff1a;代码重构代码示例…

【MATLAB】股票(和指数)数据下载--雅虎财经

文章目录 一、构建请求二、响应解读及整理2.1 响应2.2 数据提取和保存 三、通用函数3.1 函数3.2 调用示例 四、雅虎财经股票、指数代码4.1 指数4.2 股票 五、GUI界面、可执行程序 雅虎2021年就退出中国了&#xff0c;你懂的。 能下载股票等数据的财经网站、软件也很多。我写着玩…

Unity 使用UGUI制作卷轴开启关闭效果

视频效果 代码 using UnityEngine.UI; using System.Collections; using System.Collections.Generic; using UnityEngine; using DG.Tweening; using DG.Tweening.Core; using DG.Tweening.Plugins.Options;public class JuanZhou : MonoBehaviour {[SerializeField]private …

Bash 脚本教程

注&#xff1a;本文为 “Bash 脚本编写” 相关文章合辑。 BASH 脚本编写教程 as good as well于 2017-08-04 22:04:28 发布 这里有个老 American 写的 BASH 脚本编写教程&#xff0c;非常不错&#xff0c;至少没接触过 BASH 的也能看懂&#xff01; 建立一个脚本 Linux 中有…

NPM组件包 vant部分版本内嵌挖矿代码

Vant 是一个轻量、可定制的移动端组件库&#xff0c;于 2017 年开源。 目前 Vant 官方提供了 Vue 2 版本、Vue 3 版本和微信小程序版本&#xff0c;并由社区团队维护 React 版本和支付宝小程序版本。 Vant 2 版本&#xff1a;https://vant-ui.github.io/vant/v2/#/zh-CN/home V…