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

结合上期介绍的基于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.mfbz.cn/a/606190.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python程序设计 函数(三)

练习十一 函数 第1关: 一元二次方程的根 定义一个函数qg,输入一元二次方程的系数a,b,c 当判别式大于0,返回1和两个根 当判别式等于0,返回0和两个根 当判别式小于0,访问-1和两个根 在主程序中,根据函数返回…

数据结构(四)—— 堆和二叉树(上)

制作不易,三连支持一下呗!!! 文章目录 前言一、树的概念及结构二、二叉树的概念及结构总结 前言 这篇博客我们将进行更加复杂的一种数据结构的学习——树形结构。 一、树的概念及结构 树是一种非线性的数据结构,它是…

如何把多个文件(夹)平均复制到多个文件夹中

首先,需要用到的这个工具: 度娘网盘 提取码:qwu2 蓝奏云 提取码:2r1z 假定的情况是,共有20个兔兔的图片,想要平均的复制4个文件夹里,那么每个文件夹里面就有5个图片 (如果是5个&a…

一般产品:功能、质量、结构

**一般产品:**功能、质量、结构 通用工程: 收益-风险;过程-结果;少数-多数 风险 vs 收益 过程 vs 结果 少数 vs 多数 工程师的特点: 人道无害雇主实事求是,恪守公心,严守纪律,…

信创 | 信创基础设施建设:国内外对比分析研究

信创基础设施建设在国内外的比较分析涉及到多个方面,包括政策支持、产业发展现状、技术进步、市场应用等。通过综合分析,我们可以得出以下结论: 政策支持与发展方向:中国自2019年以来,陆续出台了一系列政策支持信创产业…

RS485空调系统到BACnet江森楼宇系统的高效整合攻略

智慧城市的每一栋建筑都在追求更高的能效与更佳的居住体验,而这一切的实现离不开强大且灵活的楼宇自动化系统。其中,协议转换网关作为连接不同设备的纽带,扮演着至关重要的角色。本文将以一个典型的商业综合体为例,揭秘BACnet协议…

北交所佣金费率标准是多少?北交所相关信息科普

北交所的佣金费率并非固定不变,而是可以根据投资者的需求和证券公司的政策进行调整。目前北交所的佣金费率最低是万分之二。 一般来说,北交所的佣金费率默认在万分之三左右,但这不是固定的费率。根据证券公司的不同,佣金费率可以…

语义分割——前列腺分割数据集

引言 亲爱的读者们,您是否在寻找某个特定的数据集,用于研究或项目实践?欢迎您在评论区留言,或者通过公众号私信告诉我,您想要的数据集的类型主题。小编会竭尽全力为您寻找,并在找到后第一时间与您分享。 …

微服务学习笔记

微服务学习笔记 文章目录 微服务学习笔记认识微服务微服务技术栈微服务学习要点微服务远程调用1)注册RestTemplate2) 服务远程调用RestTemplate Eureka注册中心简介操作过程搭建EurekaServer注册user-service在order-service完成服务拉取 Ribbon负载均衡IRule负载均衡策略饥饿加…

Electron学习笔记(二)

文章目录 相关笔记笔记说明 三、引入现代前端框架1、配置 webpack(1)安装 webpack 和 electron-webpack:(2)自定义入口页面 2、引入 Vue(1)安装 Vue CLI (2)调试配置 -- …

【Micropython Pitaya Lite教程】烧录固件

文章目录 前言一、编译固件源码二、烧录固件总结 前言 MicroPython是一种精简的Python 3解释器,可以在微控制器和嵌入式系统上运行。Pitaya Lite是一款基于ESP32的微控制器开发板,它结合了低功耗、Wi-Fi和蓝牙功能。结合MicroPython和Pitaya Lite&#…

Python AI库pandas读写数据库的应用操作——以sqlite3为例

Python AI库pandas读写数据库的应用操作——以sqlite3为例 本文默认读者具备以下技能: 熟悉python基础知识,vscode或其它编辑工具 已阅读Pandas基础操作文章,了解pandas常见操作 具备自主扩展学习能力 在数据分析和人工智能领域,pandas库和s…

Ruby中的字符串转换方法

在Ruby中,你可以使用各种方法来转换字符串。下面是一些常用的方法,当然选择哪种适用的方法还得更具具体项目来做调整。日常使用中下面的错误也是比较常见的,看看我们怎么处理哈。 1、问题背景 在Python中,内置的数据结构都有一个…

VMware 虚拟机打开一段时间后卡死,VNX进程CPU占比高

一、问题描述 打开虚拟机后可以正常运行 运行几分钟后突然卡死 然后通过任务管理器可以观察到VMware Workstation VMX应用进程的CPU占比高,CPU也出现异常 关闭虚拟机重新开启,还是一样卡死 二、系统环境 系统: Windows10 VMware: Workstation 17 Pro …

visa/masterCard虚拟信用卡可以用于欧洲亚马逊店Amazon铺吗?欧洲亚马逊Amazon店铺扣租金

亚马逊是网络上最早开始经营电子商务的公司之一,亚马逊成立于1995年,一开始只经营网络的书籍销售业务,现在则扩及了范围相当广的其他产品,已成为全球商品品种最多的网上零售商和全球互联网企业。 很多小伙伴需要开多个站点店铺&a…

软胶囊硬度计:QC部门保障药品质量的精准工具

软胶囊硬度计:QC部门保障药品质量的精准工具 一、引言 随着医药行业的快速发展和药品监管力度的加强,制药企业对于药品质量的要求越来越高。在药品的生产过程中,软胶囊作为一种常见的剂型,其硬度的控制对于药品质量至关重要。软胶…

数组进了多个obj,但是 在修改某个num值时,导致别的num值也发生了变化如何解决?

问题如下: 遇到的问题,数组monthArr1 push进了多个obj,但是 在修改某个num值时,导致别的num值也发生了变化。 而这就是深拷贝浅拷贝的问题。 解决浅拷贝使用深拷贝最简单方法 :JSON.parse(JSON.stringify(obj)) 或者: 使用深拷…

学习Java的日子 Day44 HTML基础

Day44 HTML 学习路线: 前端:展示页面、与用户交互 — HTML 后端:数据的交互和传递 — JavaEE/JavaWeb 1.网页的组成部分(HTMLCSSJavaScript) 前端开发的工作模式:开发输出htmlcssjs HTML:页面结构 CSS:页面…

【linux】——日志分析

1. 日志文件 1.1 日志文件的分类 日志文件: 是用于记录Linux系统中各种运行消息的文件,相当于Linux主机的“日记". 日志文件对于诊断和解决系统中的问题很有帮助,系统一旦出现问题时及时分析日志就会“有据可查”。此外。当主机遭受攻…

JVM的垃圾回收

JVM简介 JVM 是 Java Virtual Machine 的简称,意为 Java虚拟机。 虚拟机:是指通过软件模拟的具有完整硬件功能、运行在一个完全隔离的环境中完整计算机系统 1.JVM的内存区域划分 jvm是一个java进程 每一个java进程就是一个jvm实例 一个进程运行过程中 就要从操作系…
最新文章