2.5维又称假三维,是一种将三维模型固定角度后输出的图像,具有类似三维模型的显示效果,但是其本质为二维图片,只能显示固定角度的三维模型效果,因此称为假三维。在三维技术发展早期,2.5维地图因其在技术上相对简单,又可以获取类似三维的渲染效果,因此应用比较多。在三维技术飞速发展的今天,各种精细的三维地图服务纷纷上线,但商业的在线地图还只是提供了主要建筑物的三维地图,还远未实现全覆盖,因其数据门槛相对较高,在线应用也受限于网络传输速度。因此,2.5维地图虽不像以前那样受推崇,但因其较小的数据量、绚丽的渲染效果,仍然得到了很多在线用户尤其Mobile用户的喜欢。

SuperMap iServer Java 6R(2012)支持发布2.5维的地图服务,提供完整的2.5维地图的B/S发布方案。2.5维地图服务的发布与二维地图服务的发布一样,无需安装客户端插件,用户便可以简单便捷地构建B/S架构的地图交互应用。

“走遍温州地图网”成功利用SuperMap iServer发布了温州2.5维地图服务,如下图所示:

javafx 集成地图 java地图软件_二维

SuperMap iServer 2.5维地图服务特点:

与二维地图一起发布,供用户一体化访问

支持常用地图操作和地物查询功能

具有类似三维服务的仿真和渲染效果,比传统二维地图更具吸引力

具有类似二维服务的性能,且无需安装客户端插件,更易维护和推广

构建2.5维地图交互应用

SuperMap iServer支持发布2.5维地图服务,其基本过程与发布二维地图服务一样,准备好工作空间即可发布服务。总体来说,构建一个2.5维地图的交互应用的基本流程为:第一步,准备数据:将建好的2.5维模型数据导入SuperMap Deskpro .NET 6R(2012),制作地图,保存工作空间;第二步,发布服务:通过SuperMap iServer将2.5维数据的工作空间发布为REST-地图服务(用于地图显示),REST-数据服务(用于地图查询交互)和WMS服务(基于OGC标准的地图可视化表现);第三步,通过客户端脚本实现地图的查询交互。

javafx 集成地图 java地图软件_javafx 集成地图_02

其中,发布服务时,SuperMap iServer提供了多种发布服务的方式:

a. 通过服务管理器快速发布服务; b. 使用REST API创建服务实例; c. 通过服务配置文件iserver-services.xml(位于【SuperMap iServer Java安装目录】\webapps\iserver\WEB-INF文件夹下)配置服务。

示例

下面以一个简单示例介绍构建2.5维地图交互应用的流程:

1. 准备数据

1) 数据制作:使用AutoCAD或3dmax等建模工具制作好三维模型数据,然后固定角度后输出成AutoCAD格式(*.dwg)的数据。(这里制作了一份示例数据:“效果25DCity.dwg”。)

javafx 集成地图 java地图软件_javafx 集成地图_03

javafx 集成地图 java地图软件_java 二维地图_04

2) 数据转换(可选):将AutoCAD格式的数据通过第三方工具(如Photoshop)进行修饰、渲染,输出为影像格式(如*.tiff)。(作为示例,将25DCity.dwg修饰后,转为25DCity.tiff。)

javafx 集成地图 java地图软件_REST_05

3) 数据导入:打开SuperMap Deskpro .NET 6R(2012),新建文件型数据源(如“25DCity”),选择UDB类型,接着点击菜单栏中“数据导入”按钮,将制作好的2.5维数据(25DCity.dwg或25DCity.tiff)导入。目前SuperMap Deskpro .NET 6R(2012)提供了多种常用的数据格式的导入功能,对应的可导入的文件类型如下图所示:

javafx 集成地图 java地图软件_REST_06

4) 数据配准:由于在AutoCAD或3dmax建模工具中制作的2.5维数据没有坐标和投影信息,所以需要在SuperMap Deskpro .NET 6R(2012)中对其进行配准,并设置合适的坐标和投影信息。

5) 创建矢量数据集:2.5维数据配准后,因查询交互时涉及要素查询需要使用数据服务,所以此处制作一个矢量数据集。在上述数据源中创建一个面数据集(如“建筑物面”),设置与2.5维数据集相同的坐标系,然后将主要建筑物轮廓勾绘成面对象并录入其属性信息(如添加name字段),如下图场景窗口中红色的面状区域所示:

javafx 集成地图 java地图软件_数据_07

6) 制作地图:将2.5维数据集和绘制好的面数据集同时在场景窗口中打开,通过图层管理器调整场景窗口中图层的叠放次序,为了地图显示美观,将面数据图层叠放在2.5维数据图层的下面,保存地图,此时就制作成了一幅地图(SuperMap25D),然后保存工作空间,即25DCity.smwu。

javafx 集成地图 java地图软件_java 二维地图_08

2. 发布服务

SuperMap iServer支持发布2.5维的地图服务,其发布方法与二维地图一致,且支持地图服务的所有功能,支持将地图发布为OGC标准的服务,如WMS、WMTS服务,支持与其它地图进行聚合等操作。

本示例中,SuperMap iServer将2.5维地图数据的工作空间(25DCity.smwu)发布为三种类型的服务,分别是REST-地图服务、REST-数据服务和WMS服务。用户可登录SuperMap iServer 服务管理器页面, 点击“快速发布一个或一组服务”,在弹出的对话框中按照向导逐步创建服务,详细请参见:在线帮助-GIS服务的快速发布。

javafx 集成地图 java地图软件_javafx 集成地图_09

其中,对新创建的地图服务map-25DCity/rest服务执行GET请求,JavaScript表述格式的效果图如下:

javafx 集成地图 java地图软件_java 二维地图_10

将2.5维地图发布为WMS服务(map-25DCity/wms111)后,可以通过第三方工具(如uDig、Gaia)访问服务,及与其他服务聚合等。其中,用uDig加载后的效果图如下:

javafx 集成地图 java地图软件_java 二维地图_11

3. 查询交互

以SuperMap iClient 6R(2012) for JavaScript为例,实现2.5维地图的查询交互。当页面加载时,客户端通过REST-地图服务获取当前可视范围的地图数据,并通过REST-数据服务进行地物图层查询,然后对Feature添加鼠标事件(当鼠标移到某个地物上,会以高亮并显示地物名称)。具体实现如下:

1) 创建一个HTML页SuperMap25DCity.html,放在【SuperMap iServer Java安装目录】\iClient\forJavaScript\examples目录下。

2) 创建一个JavaScript文件25DCity.js,在25DCity.js文件中写入代码,用以实现地图的查询交互(该文件与SuperMap25DCity.html放在同一目录下)。

3) 用浏览器打开SuperMap25DCity.html文件,效果图如下:

javafx 集成地图 java地图软件_java 二维地图_12

至此,一个简单的2.5维地图交互应用就构建成功了。

结语

SuperMap iServer Java 6R(2012)支持发布2.5维地图数据服务,与发布二维数据相比,除了在数据制作上会有些不同,在数据配准、地图制作与服务发布方面几乎没有区别,发布后的2.5维地图服务支持所有二维地图服务操作和功能。此外,2.5维地图服务不仅具有与二维服务类似的性能,还具有类似三维服务的仿真和渲染效果,使用户可以简单、快速地构建个性、绚丽的地图应用。

作者: iServer