参数化建模系列-cityengine篇之:如何基于GIS数据快速构建道路三维建模模型

news2024/11/17 3:43:40

结合上期介绍的基于GIS数据自动化构建城市三维建筑模型,本期在上期的知识点上继续介绍道路模型的自动化构建方法。

数据获取

本期道路自动化建模从获取道路数据开始。

首先打开“QuickOSM”插件,在“Key”中选择“highway”;其次选择数据范围,例如“苏州市姑苏区”;点击“Run query”运行,即可获取道路矢量中心线数据。

数据处理

小编这次着重介绍对主要道路进行自动化建模,因此需要对获取的开源数据进行预处理。首先需要筛选出用于建模的主要道路中心线数据,打开属性表,并使其处于可编辑状态,选择highway属性为primary的数据,其次将这部分数据单独保存或导出。

然后点击“Vector”→“Data Management Tools”→“Reproject Layer”进行数据重投影。

勾选上“选中的数据”,设置目标投影,如“EPSG:4326 - WGS 84”,点击“run”开始运行,即完成数据预处理。

下面是CE道路建模中比较重要的一步数据处理操作,即将双线数据转成单线数据(在cityengine中单线可直接生成为双向车道)。点击”编辑”图标,选择双线的数据,按“delete”清除。最后将数据保存为“3857”坐标备用。

参数化建模规则编写

完成上述的数据获取→数据预处理→道路双线转单线后,小编开始介绍如何编写道路规则啦。

整体规则代码依然要以“@StartRule”开始,不过编写道路规则,和建筑不一样,他分了很多类型,提到类型,我们需要了解一下“帮助文档”中街道形状的默认初始规则 街道和交叉点形状—ArcGIS CityEngine 资源 | 文档

街道建模规则编写

第一步:需要将道路进行纵向切分,根据道路情况不同,需要区分出有路口的道路、没有路口的道路、一侧有路口一侧没有路口的道路。

第二步:分别对每段道路进行切分,区分出路口路面、斑马线、车道导向区域路面、车道路面。

第三步:对路口路面、和斑马线区域进行贴图。

第四步:对车道导向区域路面进行切分,分出车道区域和普通路面区域。

第五步:分割车道区域,将该区域分为车道停止线和导向箭头路面。

第六步:将以上区分好的区域,根据不同类别一一对应赋予正确的贴图。通过以上六个步骤路面规则就完成了。

第七步:实现人行道规则,通过将人行道向世界位置抬升0.1米,区分出人行道与地面的高度,然后给人行道赋予贴图。

第八步:基于街道形状的默认初始规则分配一下,各路口的规则。

通过以上八个步骤,基本完成了道路自动化建模规则的编写,要想生成道路,只需要将上述写好的规则赋予道路矢量中心线数据即可。

好了今天的介绍就到这了,谢谢各位同学。

工程文件可提供下载,注册可获取工程


 关注Mapmost,持续更新GIS、三维美术、计算机技术干货

Mapmost是一套以三维地图和时空计算为特色的数字孪生底座平台,包含了空间数据管理工具(Studio)、应用开发工具(SDK)、应用创作工具(Alpha)。平台能力已覆盖城市时空数据的集成、多源数据资源的发布管理,以及数字孪生应用开发工具链,满足企业开发者用户快速搭建数字孪生场景的切实需求,助力实现行业领先。

欢迎进入官网体验使用:Mapmost——让人与机器联合创作成为新常态

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1656191.html

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

相关文章

AI智能化逐渐趋于成熟后,预测今后最吃香的开发职业

AI智能化正在成熟的路途中,这中间会有波折,但终有一天会来的,我相信等到了这一天,我们的开发效率和代码质量,将会大大不同,而我们的团队与个人,也会面临着很棒的体验。 那么在AI智能化真正趋于成…

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-15-GPIO中断控制实验

前言: 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM(MX6U)裸机篇”视频的学习笔记,在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…

Failed to build flash-attn:ERROR: Could not build wheels for flash-attn

安装 FlashAttention 的时候遇到报错: Failed to build flash-attn ERROR: Could not build wheels for flash-attn, which is required to install pyproject.toml-based projects可能是安装的版本与环境存在冲突吧,我的环境是: python 3.1…

域控安全 ----> Ntds.dit文件抓取

大家还记得内网渗透的初衷吗??? 找到域馆,拿下域控!! 拿下了域控就是拿下了整个域!! 但是大家知道拿下域环境之后应该怎么操作吗(灵魂拷问)??? …

【WEEK11】 【DAY3】员工管理系统第四部分【中文版】

2024.5.8 Wednesday 接上文【WEEK11】 【DAY2】员工管理系统第三部分【中文版】 目录 10.5.展示员工列表10.5.1.修改dashboard.html10.5.2.新建EmployeeController.java10.5.3.新建emp文件夹,将list.html移动至该文件夹10.5.4.重启并检查10.5.5.提取公共页面&#x…

钉钉开放平台创建企业内部H5微应用或者小程序

前言: 在当今企业数字化转型的浪潮中,创建企业内部H5微应用或小程序已成为提升工作效率和促进内部沟通的重要举措。发话不多说本文将介绍如何利用钉钉平台快速创建这些应用,让企业内部的工作更加便捷高效。 步骤 1.在浏览器打开链接…

旧物回收小程序开发:打造绿色生活,共筑美好未来

随着环保意识的逐渐增强,我们越来越意识到旧物回收的重要性。为了响应这一趋势,我们精心研发了一款旧物回收小程序,旨在通过科技的力量,让每个人都能够轻松参与到旧物回收的行动中来,共同为地球环保贡献一份力量。 一…

【C++】Visual Studio 2019 给 C++ 文件添加头部注释说明

使用代码片段管理器&#xff0c;添加快捷插入代码文件说明 1. 效果 2. header.snippet 新建 header.snippet 文件&#xff0c;存放到某个文件夹 内容&#xff0c;自行更新 快捷名称&#xff0c;修改 Header 里面内容注释内容&#xff0c;修改 Code 里面内容 <?xml ver…

利用函数视图实现精细化管控:DolphinDB 非标权限管理指南

1. 前言 DolphinDB 提供的用户权限管理功能管控的最小粒度是表级别&#xff0c;无法设置小于表粒度的数据访问权限管控&#xff0c;如限制用户仅能访问表中某些行或某些列的数据。为了满足客户更精细的权限管控需求&#xff0c;我们编写了本教程。 2. 概述 函数视图是封装了…

vue打包报错:CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory

前言&#xff1a; vue项目&#xff0c;打包报错&#xff1a;CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 报错现象&#xff1a; 报错原因&#xff1a; 这个错误是由Node.js在尝试分配内存时因为系统的可用内存不足而发生的。"JavaScript heap…

远动屏柜作用

远动屏柜作用 远动屏柜是电力系统中的重要设备&#xff0c;主要用于实现远方监控和遥控功能&#xff0c;确保电力系统的安全运行。它主要由远动装置、通讯管理机、交换机、调制解调器、GPS对时装置、数字通道防雷器、模拟通道防雷器、插线板、空气开关、屏柜及附件等组成。 远…

英语学习笔记7——Are you a teacher?

Are you a teacher? 你是教师吗&#xff1f; 词汇 Vocabulary name /neɪm/ n. 名字&#xff0c;名声 英文名字构成&#xff1a; 名 字 姓      given name family name  也叫做&#xff1a;first name last name      例&#xff1a;Yanyan Gao 例句&#xff1…

【prometheus】Pushgateway安装和使用

目录 一、Pushgateway概述 1.1 Pushgateway简介 1.2 Pushgateway优点 1.3 pushgateway缺点 二、测试环境 三、安装测试 3.1 pushgateway安装 3.2 prometheus添加pushgateway 3.3 推送指定的数据格式到pushgateway 1.添加单条数据 2.添加复杂数据 3.SDk-prometheus-…

CISCN 2023 初赛

Web unzip 文件上传页面 upload.php页面源码显示了出来 <?php error_reporting(0); highlight_file(__FILE__);$finfo finfo_open(FILEINFO_MIME_TYPE); if (finfo_file($finfo, $_FILES["file"]["tmp_name"]) application/zip){exec(cd /tmp &am…

致力于双碳减排服务——安科瑞推出碳电表

1. 概述 全球首个“碳关税”——欧盟碳边境调节机制于2023年10月启动试运行。自此&#xff0c;首批纳入欧盟碳边境调节机制的6个行业相关产品在出口至欧盟国家时需提供碳排放数据&#xff0c;这会倒逼国内制造业企业加快开展产品碳足迹核查的步伐。以钢铁行业为例&#xff0c;…

进口家装水管十大品牌哪家好,弗锐德为您推荐进口家装水管领先十大品牌

水管作为家装隐蔽工程之一&#xff0c;选对一款优质的水管是至关重要的&#xff0c;毕竟好的水管能够保证家庭后续几十年的用水安全和健康。今天&#xff0c;小编就和大家说说进口家装水管十大品牌哪家好&#xff1f; 目前国内进口家装水管具有知名度和消费者认可的品牌有&…

Linux网络编程(三)IO复用三 epoll系统调用

三、epoll系统调用 epoll是Linux特有的I/O复用函数。它在实现和使用上与select、poll有很大差异。 epoll使用一组函数来完成任务&#xff0c;而不是单个函数epoll把用户关心的文件描述符上的事件放在内核里的一个事件表中&#xff0c;从而无须像select和poll那样每次调用都要…

JS笔试手撕题

数据劫持 Vue2的Object.defineProperty() Vue2的响应式是通过Object.defineProperty()拦截数据&#xff0c;将数据转换成getter/setter的形式&#xff0c;在访问数据的时候调用getter函数&#xff0c;在修改数据的时候调用setter函数。然后利用发布-订阅模式&#xff0c;在数…

计算机专业,求你别再玩了,我都替你们着急

明确学习目标和方向&#xff1a;确定自己希望在计算机领域的哪个方向深入发展&#xff0c;如前端开发、后端开发、数据库管理、人工智能等。根据目标方向&#xff0c;制定详细的学习计划&#xff0c;确保所学知识与未来职业方向相匹配。 【PDF学习资料文末获取】 扎实基础知识…

effective python学习笔记_推导与生成

用推导取代map和filter 序列推导可取代map和filter&#xff0c;优越性有&#xff1a;1可读性强2不需要map的函数 控制推导逻辑的子表达式不要超过2个 即推导的for层数最多建议两层&#xff0c;多了可读性会下降&#xff0c;反而用for循环会清晰 一层for内可连接多个if&…