SuperMap Hi-Fi 3D SDK for Unity矢量面贴地贴模型

这篇具有很好参考价值的文章主要介绍了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支持矢量面叠加模型缓存、地形使用,并且支持设置矢量面填充颜色、线框颜色、选中颜色、可见高度等参数
supermap for unity,组件GIS,3d,unity

三、实现步骤

1、制作矢量面数据

准备好矢量面数据,使用 SuperMap iDesktopX 桌面软件将数据添加到场景中,通过【风格设置】将数据前景色、线颜色都设置成白色
supermap for unity,组件GIS,3d,unity
保存场景,对场景右键【生成场景瓦片】,S3M版本选择【S3M 1.0】格式,得到瓦片数据

supermap for unity,组件GIS,3d,unity

2、Unity中添加矢量面瓦片数据

选择矢量面配置文件(*.scp)后,点击【添加图层】
supermap for unity,组件GIS,3d,unity
之后以同样的方式,添加一份倾斜摄影瓦片数据,运行场景
supermap for unity,组件GIS,3d,unity
可以看到,倾斜摄影瓦片和矢量面瓦片都添加到场景中了,但是矢量面瓦片并没有贴在模型上,也没有初始化颜色,下面咱们通过代码来控制矢量面的初始颜色、选中颜色,以及显示高度。

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();
   }

supermap for unity,组件GIS,3d,unity

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 for unity,组件GIS,3d,unity

四、最终效果

supermap for unity,组件GIS,3d,unity文章来源地址https://www.toymoban.com/news/detail-777409.html

到了这里,关于SuperMap Hi-Fi 3D SDK for Unity矢量面贴地贴模型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SuperMap Hi-Fi 3D SDK for Unreal游戏引擎打包常见问题

    目录 前言 常见问题 1. UE打包报错:ERROR: No target name was specified on the command-line. 2. UE打包报错:ERROR: Expecting to find a type to be declared in a module rules named ‘XXX’ 3. UE打包报错:Error: System.ArgumentException: An item with the same key has already been added. Key: PakLoader

    2024年02月03日
    浏览(49)
  • SuperMap Hi-Fi 3D SDK for Unreal游戏引擎创建工程报错汇总

    作者: 姜尔         同学们首次使用UE时创建工程时,总会遇到些许问题,本文为首次接触UE的同学提供参考以更好的使用到SuperMap Hi-Fi 3D SDK for Unreal插件。 目录 一、报错“尝试生成项目文件时发生错误” 1.“The required library hostfxr.dll could not be found” 【出现报错】

    2024年02月03日
    浏览(62)
  • SuperMap iClient3D for Cesium 构建隧道

    作者:kele 前段时间看到一篇构建隧道的文章(https://blog.csdn.net/supermapsupport/article/details/128453116),突然想到一个使用场景:隧道通常是建在山体下面,是否可以通过这种方式构建出一条贯穿山体的隧道,来模拟实际的施工方案?答案是可以,效果图如下: 1、生成隧道模型

    2024年02月01日
    浏览(77)
  • SuperMap iClient3D for WebGL查询地图栅格值

    栅(shān)格数据就是将空间分割成有规律的网格,每一个网格称为一个单元,并在各单元上赋予相应的属性值来表示实体的一种数据形式。每一个单元(像素)的位置由它的行列号定义,所表示的实体位置隐含在栅格行列位置中,数据组织中的每个数据表示地物或现象的非几何

    2024年02月04日
    浏览(49)
  • SuperMap iClient3D for Cesium最短路径分析

    作者:Mei    在交通、消防业务场景中,如果某地发生火灾或者交通事故,需要快速规划出最短抢救路线,这就要用到网络分析中的最短路径分析功能。接下来就跟着小编一起看看,在三维场景中,如何实现最短路径分析。    首先在iDesktop中通过二维线构建网络数据集,

    2024年02月11日
    浏览(53)
  • SuperMap iClient3D for WebGL/Cesium端性能优化

        目录 一、请求优化 1.1 多子域 1.1.1 scene.open()打开场景 1.1.2 加载地形 1.1.3 加载影像 1.1.4 加载S3M 1.1.5 加载MVT 1.2 批量请求 1.2.1 地形 1.2.2 影像 二、内存优化 2.1 根节点驻留内存 2.2 自动释放缓存 2.3 内存管理 三、图层优化 3.1 LOD 3.2 空间索引 3.3 控制图层显示范围 3.4 控制图层

    2024年01月25日
    浏览(46)
  • 【超图】SuperMap iClient3D for WebGL/WebGPU ——颜色(1)

    作者:taco         在项目中通常会出现,高亮对象。给对象设置颜色的一些问题。那么针对颜色设置在超图的 iClient3D for WebGl/WebGPU 中又提供了哪些方式呢?本篇文章将介绍一些颜色的设置方法。以及一些颜色的参数设置。         在iClient3D for WebGl/WebGPU 中主要以Supe

    2024年02月04日
    浏览(54)
  • SuperMap iClient3D for Cesium 实现图层下钻功能

    目录 前言 一、所需数据及发布服务 1、数据准备  2、地图展示 二、Cesium.SuperMapImageryProvider 接口 三、相关代码         实现地图下钻功能可以提供更详细的地理信息、支持交互式探索、展示层级关联的数据和提供数据分析决策支持等优势。通过点击地图上的区域或点,用

    2024年02月03日
    浏览(84)
  • vue3+SuperMap iClient3D for Cesium实现可视域分析功能

    本人小白一枚,文章如有问题还请各位大神评论区指出。整体实现是参考SuperMap iClient3D for Cesium的可视域分析功能源码~ 文章目录 前言 一、主要功能 二、使用步骤 1.HTML主要结构 2.javascript SuperMap iClient3D for Cesium中的ViewShed3D类提供了可视域分析,设置观察点、目标的位置,水平

    2024年02月15日
    浏览(40)
  • SuperMap iClient3D 11i (2023) SP1 for Cesium之移动实体对象

     作者:nannan 目录 前言 一、代码思路 1.1 绘制面实体对象 1.2 鼠标左键按下事件 1.3 鼠标移动事件 1.4 鼠标左键抬起事件 二、运行效果 三、注意事项        SuperMap 官网三维前端范例 编辑线面,可以对面实体对象的节点进行增加、删除以及修改位置。那可不可以整个线/面对

    2024年02月09日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包