SuperMap Hi-Fi 3D SDK for Unity矢量面贴地贴模型
作者:kele
一、背景
SuperMap Hi-Fi 3D SDK(2023 11i) for Unity推出新功能:支持矢量面同时贴地形图层和模型图层,并且能实现数据点击查询属性、更改初始填充颜色、初始边框线颜色、选中填充颜色、选中边框线颜色、控制显示高度等效果。
二、功能介绍
SuperMap Hi-Fi 3D SDK(2023 11i) for Unity支持矢量面叠加模型缓存、地形使用,并且支持设置矢量面填充颜色、线框颜色、选中颜色、可见高度等参数
三、实现步骤
1、制作矢量面数据
准备好矢量面数据,使用 SuperMap iDesktopX 桌面软件将数据添加到场景中,通过【风格设置】将数据前景色、线颜色都设置成白色
保存场景,对场景右键【生成场景瓦片】,S3M版本选择【S3M 1.0】格式,得到瓦片数据
2、Unity中添加矢量面瓦片数据
选择矢量面配置文件(*.scp)后,点击【添加图层】
之后以同样的方式,添加一份倾斜摄影瓦片数据,运行场景
可以看到,倾斜摄影瓦片和矢量面瓦片都添加到场景中了,但是矢量面瓦片并没有贴在模型上,也没有初始化颜色,下面咱们通过代码来控制矢量面的初始颜色、选中颜色,以及显示高度。
3、设置矢量面显示风格、贴模型对象、贴地
找到并打开 SupermapGIS 脚本,在 SceneAddLayer 方法中插入以下代码:
//设置矢量面数据 贴倾斜 var s3mLayer = info.Layer as Layer3DS3MFile;if (s3mLayer.DataType == S3MType.ObliquePhotogrammetry3DModel)s3mLayer.ClampVector = true;//设置矢量面数据填充颜色、边框颜色、选中风格if (s3mLayer != null && s3mLayer.Type == Layer3DType.S3M && s3mLayer.Name.Contains("社")){//设置矢量面初始风格:面颜色、半透;贴地矢量面的边框颜色;执行贴地Style3D style = s3mLayer.Style;style.FillColor = new Color(02f, 0.4f, 0.1f, 0.5f); //蓝色style.LineColor = new Color(0.0f, 1.0f, 0.0f, 1.0f);//绿框style.AltitudeMode = AltitudeMode.ClampToGround;//贴地s3mLayer.Style = style;//设置选中风格Style3D selectstyle = s3mLayer.SelectStyle;selectstyle.FillColor = new Color(0.0f, 0.0f, 1.0f, 0.5f); //蓝色selectstyle.AltitudeMode = AltitudeMode.ClampToGround;s3mLayer.SelectStyle = selectstyle;s3mLayer.UpdateData();}
4、根据相机高度,控制矢量面显隐
找到并打开 SupermapGIS 脚本,在 PlayingUpdate 方法中插入以下代码:
//当相机高度小于5000米时,显示矢量面,反之隐藏if (came.Altitude < 5000){for (int i = 0; i < Realspace.SceneControl.Scene.Layers.Count; i++){var layer = Realspace.SceneControl.Scene.Layers[i];if (layer.Type == Layer3DType.S3M && layer.Name.Contains("社")) //找到社区矢量面图层{if (layer.IsVisible != true){layer.IsVisible = true; //矢量面图层可见性}}else if (layer.Type == Layer3DType.S3M && layer.Name.Contains("Config")) //找到倾斜摄影图层{layer.IsVisible = true; //倾斜摄影图层可见性}else if (layer.Type == Layer3DType.S3M){if (layer.IsVisible == true){layer.IsVisible = false; //隐藏其它矢量面图层}}}}
5、查询属性
打开属性查询功能,通过鼠标点击矢量面进行属性查询
四、最终效果
相关文章:

SuperMap Hi-Fi 3D SDK for Unity矢量面贴地贴模型
作者:kele 一、背景 SuperMap Hi-Fi 3D SDK(2023 11i) for Unity推出新功能:支持矢量面同时贴地形图层和模型图层,并且能实现数据点击查询属性、更改初始填充颜色、初始边框线颜色、选中填充颜色、选中边框线颜色、控…...
【DB2】Maxlocks和防止锁升级
数据库在对行操作的时候,为了避免多个作业互相覆盖影响数据准确性,在进行操作(尤其是写操作)的时候会上锁,同一时间只有一个作业可以修改数值 对行上锁,为了记录锁的信息,所以会占用一定的内存…...

网工内推 | 网络服务工程师,HCIE认证优先,带薪年假,年终奖
01 高凌信息 招聘岗位:服务工程师(珠海) 职责描述: 1、负责华为数通(交换机、路由器)、IT(服务器、存储)等任一或多个产品领域的项目实施交付; 2、独立完成华为数通&…...

TrustZone之可信固件
Trusted Firmware是Armv8-A设备的安全世界软件的开源参考实现。Trusted Firmware为SoC开发人员和OEM提供了一个符合相关Arm规格(包括TBBR和SMCC)的参考Trusted代码库。 以下图表显示了Trusted Firmware的结构: SMC调度程序处理传入的SMC。SMC…...

Visual Studio 2013 中创建一个基于 Qt 的动态链接库:并在MFC DLL程序中使用
在本地已经安装好 Qt 的情况下,按照以下步骤在 Visual Studio 2013 中创建一个基于 Qt 的动态链接库: 一、新建 Qt 项目: 在 Visual Studio 中,选择 “文件” -> “新建” -> “项目…”。在 “新建项目” 对话框中&#…...

云计算:OpenStack 配置云主机实例的资源实现内网互通
目录 一、实验 1. 环境 2.配置项目及用户 3.配置规格实例与镜像 4.配置VPC 5. 配置安全组 6. 创建云主机 cs_01 (cirros系统) 7.创建云主机 cs_02 (cirros系统) 一、实验 1. 环境 (1)宿主机 表1…...

Android原生实现单选
六年前写的一个控件,一直没有时间总结,趁年底不怎么忙,整理一下之前写过的组件。供大家一起参考学习。废话不多说,先上图。 一、效果图 实现思路使用的是radioGroup加radiobutton组合方式。原理就是通过修改RadioButton 的backgr…...
为什么需要对数值类型的特征做归一化?
对数值类型的特征做归一化可以将所有的特征都统一到一个大致相同的数值区间内。最常用的方法有以下两种: (1)线性函数归一化(Min-Max Scaling) 它对原始数据进行线性变换,使结果映射到【0,1】的范围&…...

ARM 点灯
.text .global _start _start: led1设置GPIOE时钟使能 RCC_MP_AHB4ENSETR[4]->1 0X50000A28LDR R0,0X50000A28 指定寄存器地址LDR R1,[R0] 将寄存器数值取出来放在R1中ORR R1,R1,#(0x1<<4) 将第4位设置为1STR R1,[R0] 将修改后的值写回去设置PE10为输出 GPIOE…...

CamSim相机模拟器:极大加速图像处理开发与验证过程
随着图像处理技术的不断发展,相机模拟在图像处理开发和验证中扮演着越来越重要的角色。相机模拟能够模拟真实相机的成像过程,提供高质量的图像输入,使开发人员能够更好地评估和调整图像处理算法。本文将探讨如何通过相机模拟来加速图像处理的…...

Google Ad帐号被封?代理IP和电子邮件可能是原因
海外广告投放工作中,账号是非常重要的环节。与在Facebook上运行广告相比,运行Google Ads在代理选择方面通常没有那么严格,因为 Google 对 IP 使用并不那么严格。但是,这并不意味着您可以不加考虑地使用任何代理IP。在本文中&#…...

EfficientNet
时间:2019 EfficicentNet网络简介 EfficientNet:Rethinking Model Scaling for Convolutional Neural Networkshttps://arxiv.org/abs/1905.11946,这篇论文是Google在2019年发表的文章。 EfficientNet这篇论文,作者同时关于输入分辨率,网络…...

百度每天20%新增代码由AI生成,Comate SaaS服务8000家客户 采纳率超40%
12月28日,由深度学习技术及应用国家工程研究中心主办的WAVE SUMMIT深度学习开发者大会2023在北京召开。百度首席技术官、深度学习技术及应用国家工程研究中心主任王海峰现场公布了飞桨文心五载十届最新生态成果,文心一言最新用户规模破1亿,截…...

产品管理-学习笔记-版本的划分
版本号说明【X.Y.Z_修饰词】 版本号定义原则X表示大版本号,一般当产品出现重大更新、调整、不再向后兼容的情况时我们会在X上加1Y表示功能更新,在产品原有的基础上增加、修改部分功能,且并不影响产品的整体流程或业务Z表示小修改,…...

编程笔记 html5cssjs 004 我的第一个页面
编程笔记 html5&css&js 004 我的第一个页面 一、基本结构二、HTML标签三、HTML元素四、HTML属性五、编写第一个网页六、使用VSCODE小结 开始编写网页,并且使用第一个网页成为一个母板,用于完成后续内容的学习。有一个基本要求,显示结…...

为实体服务器配置Ubuntu
简介 我们在使用虚拟机时,直接在网上找到镜像然后下载到本地,在VMware创建实例时将该iso文件作为镜像源然后进行基础配置就可以轻松安装配置好Linux虚拟机。 在为实体服务器安装Linux系统,同样的,我们也需要镜像源(即…...
单例模式的双重检查锁定是什么?
单例模式的双重检查锁定是什么? 单例模式是一种常见的设计模式,用于确保一个类只有一个实例,并提供一个全局访问点。双重检查锁定(Double-Checked Locking)是一种在单例模式中使用的性能优化技术。 在传统的单例模式…...

hyper-v ubuntu 3节点 k8s集群搭建
前奏 搭建一主二从的k8s集群,如图所示,准备3台虚拟机。 不会创建的同学,可以看我上上篇博客:https://blog.csdn.net/dawnto/article/details/135086252 和上篇博客:https://blog.csdn.net/dawnto/article/details/135…...

postman进阶使用
前言 对于postman的基础其实很容易上手实现,也有很多教程。 对于小编我来说,也基本可以实现开发任务。 但是今年我们的高级测试,搞了一下postman,省去很多工作,让我感觉很有必要学一下 这篇文章是在 高级测试工程师ht…...

errors包返回堆栈信息的性能测试
errors包返回堆栈信息的性能测试 上一篇Golang中使用errors返回调用堆栈信息 讲了使用第三方开源库的errors github.com/go-errors/errors,错误信息带调用栈,方便定位错误的抛出位置。 通过堆栈的信息来定位是方便了,性能怎么样,…...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...

DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...
docker 部署发现spring.profiles.active 问题
报错: org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...

HDFS分布式存储 zookeeper
hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架,允许使用简单的变成模型跨计算机对大型集群进行分布式处理(1.海量的数据存储 2.海量数据的计算)Hadoop核心组件 hdfs(分布式文件存储系统)&a…...
JS设计模式(4):观察者模式
JS设计模式(4):观察者模式 一、引入 在开发中,我们经常会遇到这样的场景:一个对象的状态变化需要自动通知其他对象,比如: 电商平台中,商品库存变化时需要通知所有订阅该商品的用户;新闻网站中࿰…...

【Linux系统】Linux环境变量:系统配置的隐形指挥官
。# Linux系列 文章目录 前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变量的生命周期 四、环境变量的组织方式五、C语言对环境变量的操作5.1 设置环境变量:setenv5.2 删除环境变量:unsetenv5.3 遍历所有环境…...

wpf在image控件上快速显示内存图像
wpf在image控件上快速显示内存图像https://www.cnblogs.com/haodafeng/p/10431387.html 如果你在寻找能够快速在image控件刷新大图像(比如分辨率3000*3000的图像)的办法,尤其是想把内存中的裸数据(只有图像的数据,不包…...
node.js的初步学习
那什么是node.js呢? 和JavaScript又是什么关系呢? node.js 提供了 JavaScript的运行环境。当JavaScript作为后端开发语言来说, 需要在node.js的环境上进行当JavaScript作为前端开发语言来说,需要在浏览器的环境上进行 Node.js 可…...
41道Django高频题整理(附答案背诵版)
解释一下 Django 和 Tornado 的关系? Django和Tornado都是Python的web框架,但它们的设计哲学和应用场景有所不同。 Django是一个高级的Python Web框架,鼓励快速开发和干净、实用的设计。它遵循MVC设计,并强调代码复用。Django有…...
接口 RESTful 中的超媒体:REST 架构的灵魂驱动
在 RESTful 架构中,** 超媒体(Hypermedia)** 是一个核心概念,它体现了 REST 的 “表述性状态转移(Representational State Transfer)” 的本质,也是区分 “真 RESTful API” 与 “伪 RESTful AP…...