SuperMap iObjects .NET 制作2.5D数据详解(一)

作者:为梦齐舞

目前腾讯搜搜、百度地图等多家地图厂商都已推出2.5D地图查看模式,只要把查看级别缩放到较小的区域,就可以看到该区域楼体的形状,用户可以由此更好的辨认位置,确认自己的出行目的地,如下图所示:
这里写图片描述

很多用户都会有这样的疑问,在SuperMap中我们能否制作出类似百度的2.5D地图呢?答案都是肯定的,下面就让我们来一步一步了解SuperMap iObjects .NET 制作2.5D数据的步骤。

一、 数据准备:我们首先准备一份小区的矢量数据。
这里写图片描述

二、 制作顶面:根据图1和图2的对比,我们不难发现2.5D数据只是将数据向Y方向偏移了一定的距离, 那让我们来直接平移一下,看一下效果。
这里写图片描述
我们可以发现直接平移后的数据和百度地图还是有一定差距的,也就是两份数据中间的部分缺失掉了,如果我们把中间的部分补起来,是否就可以达到和百度地图一样的效果呢?

三、 制作侧面:那么现在问题来了,如何能够生成中间部分的数据呢?我们不难发现,其实这两份数据有一个共同的特点,就是每个点的坐标只有Y方向有特定数值的拉高,X坐标不变,我们可以根据这个特点,向上构造侧面,取底面的第一个和第二个点,我们把它命名为A点和B点,以A点为起点,那么第二个点就是A点Y值拉伸的点A1,第三个点为B点拉伸的点B1,第四个点为B点,按照顺时针方向构造点集,生成侧面。如下图:
这里写图片描述
以此类推,生成其他的面片,来构造侧面,生成顶面和侧面的代码如下:
这里写图片描述
其中ati变量为拉伸的高度,生成结果:
这里写图片描述
做到这一步,跟百度地图的效果已经很相近了,但是如图6和图7所示,侧面出现了面与面压盖的问题,看起来还是存在视觉差异。那么如何解决这个问题呢?

四、 侧面压盖:既然小的面片出现了压盖,那么我们直接将面片合并为一个整面,是否可以解决压盖问题呢?
这里写图片描述

这里写图片描述

五、 制作棱角:走到这一步,我们发现效果还是不太好,如果每个棱角,能够标示出来,是否效果还会好一些呢?棱角的提取还是和之前的思路一致,直接使用拉伸前的点和拉伸后的点构造棱角线。
这里写图片描述
虽然棱角线是有了,但是出现了很多多余的棱角线,从第三步的截图中我们也可以发现,侧面其实也存在很多冗余的数据,那些数据在顶面的背后,不能被看见,这样的就是棱角线和侧面都存在数据冗余。

六、 去除冗余数据:顶面、侧面和棱角的关系,大家都能从图中看出,被顶面包含的棱角和侧面其实是我们不需要的;对于侧面,我们可以将顶面和侧面做擦除运算,对于棱角线,可以使用运算结果和棱角线做相交;这样就可以解决冗余数据的问题了,下面我们来看一下代码实现和效果。
这里写图片描述

七、合并数据:工作进行到这一步,大致就已经完成了,但是这些数据是由侧面、顶面、棱角边,三份数据组成的,这样管理数据将会非常头痛,我们是否可以设法将这三份数据合并为一个数据集来存放呢?那么问题就又来了,线数据和面数据怎么合并啊?我们这时可以将侧面转换为线,然后将结果追加到棱角线中,再拓扑生成面数据集就可以解决以上问题。(PS:这里不要使用线数据集转面数据功能,可能结果会出现数据丢失的问题)
这里写图片描述

八、 区分对象类型:接着步骤7的思路,我们是否也有要顶面和侧面也合并呢?这时会发现顶面和侧面是有一定区别的,就百度地图来看,他们设置的颜色不一样,合并后如何解决这个问题呢?我们可以建立一个名称为isSide的Boolean类型字段,来标识是底面还是侧面,就可以轻松解决这个问题了。
这里写图片描述
这里写图片描述

九、效果展示:通过以上的步骤,我们制作的2.5D数据就全部完成了,只需要使用字段isSide制作专题图即可。下面我们来看一下最终的效果。
这里写图片描述

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: SuperMap iObjects .NET是一种基于.NET平台的GIS开发框架,它提供了一系列的GIS组件和API,可以帮助开发者快速构建高效、稳定的GIS应用程序。SuperMap iObjects .NET支持多种数据格式和数据源,包括Oracle、SQL Server、PostgreSQL、MySQL等数据库,以及Shapefile、GeoJSON、KML等常见的地理数据格式。同时,它还提供了丰富的地图显示和分析功能,如地图渲染、空间查询、空间分析等,可以满足各种GIS应用的需求。 ### 回答2: SuperMap iObjects .NET 是一款针对 .NET 开发者的 GIS 开发框架,它提供了一组完整的 GIS 控件、类库和 API,开发者可以使用这些工具来快速构建并定制化自己的 GIS 应用程序。 此框架可以轻松处理几何计算、数据连接、符号设计、地图绘制、空间分析和数据查询等功能。同时,SuperMap iObjects .NET 还支持多种数据格式,包括文件格式(如 Shapefile、KML、GPX 等),数据库格式(如 Oracle、SQL Server、MySQL 等),以及 OGC 标准格式(如 WMS、WFS、WCS 等)。 此外,SuperMap iObjects .NET 还提供了一套完整的开发工具,包括 SuperMap iDesktop、SuperMap iServer、SuperMap iPortal 和 SuperMap iMobile。SuperMap iDesktop 是一个功能强大的桌面 GIS 开发环境,提供了丰富的可视化编辑功能、数据管理功能、以及符号化和分析工具。SuperMap iServer 是一款高性能的 GIS 服务器,能够处理海量的 GIS 数据和请求,支持多系统、多平台引擎,兼容多种 GIS 标准和协议。SuperMap iPortal 是一个面向 Web 的 GIS 应用管理平台,便于用户快速发布和共享 GIS 数据、工具和应用。SuperMap iMobile 是一套移动端 GIS 应用开发平台,可以帮助开发者快速构建定制化的移动 GIS 应用程序。 总之,SuperMap iObjects .NET 是一款强大且全面的 GIS 开发框架,具有多种数据格式支持、良好的性能和灵活的定制化功能。它可以帮助开发者快速构建高质量的 GIS 应用程序,并具有广泛的应用范围,涉及地理信息、城市规划、资源管理、环境保护、公共安全等多个领域。 ### 回答3: SuperMap iObjects .NET是一款开发GIS应用程序的.NET框架,它提供了一系列的GIS组件和工具,方便开发人员实现GIS功能。这款产品具有如下的特点: 1.多种数据源支持:SuperMap iObjects .NET支持多种常见的数据格式(例如GDB,PostgreSQL,Oracle等),方便GIS程序访问和处理各种数据。 2.丰富的空间数据分析功能:SuperMap iObjects .NET提供了各种空间数据分析功能,例如空间查询、缓冲区分析、空间叠加、空间统计等,可以方便地实现复杂的GIS分析需求。 3.强大的空间可视化功能:SuperMap iObjects .NET提供了各种数据可视化工具,可以轻松实现图层风格设置、标注、符号等功能,使得GIS地图更加美观、精准。 4.支持跨平台开发:SuperMap iObjects .NET可以支持不同平台的开发,包括桌面、Web、移动等,方便不同应用需求的实现。 总之,SuperMap iObjects .NET是一款开发GIS应用程序的强大框架,它提供了完整的GIS解决方案和开发工具,可以大幅提升开发人员的工作效率,同时也能够满足各种GIS应用场景的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值