(上海市测绘院第四分院 200333)
随着新技术的发展,地图用户的阅图习惯和用图需求产生了重大的变化,读图人群知识结构和生活习惯的改变,都促使了传统纸质地图需要做出新的变革。因此,研究实现地图产品的移动化和移动辅助阅图技术显得越来越重要。
随着“智能化”大潮来袭,智能终端在全球市场的地位逐步提升,智能手机和平板电脑等消费电子市场正处在快速上升时期。在平板电脑领域,苹果自2010年推出首款iPad 之后,就统领了平板电脑市场,iPad 无疑是平板电脑领域的领军者。有调查预测数据显示,虽然后有微软的首款平板电脑Surface 和谷歌的Nexus7 陆续发布,但是苹果iPad 平板电脑仍将长期占据全球市场大量份额。
基于目前iPad 在平板电脑领域领先的市场占有率,本论文立足IOS系统,以屏幕更大、地图阅读体验更好的iPad 为应用终端,开展基于平板电脑的地图发布技术研究。通过研究现有的地图产品《上海地图-大城区详图》,尝试在发布纸质地图时同步推出iPad 版,提高地图用户阅图的便捷性,丰富地图的对外服务方式,大幅提高地图服务的受众面,逐渐吸引年轻用户群体关注的地图产品。
《上海地图-大城区详图》是上海市测绘院在2012年1月份推出的新款地图产品。该地图具有了纸质地图的主要特征:纸张幅面大,《上海地图-大城区详图》大全张地图,尺寸达到了1024mm×1248mm;双拼地图,《上海地图-大城区详图》的正反两面分别表示了上海的浦东和浦西地区,如果用户购买两张地图,就可以拼合起来使用;此外,还有地图成果数据量大的特征。
本论文的主要研究内容包括以下几方面:
1、研究地图的发布流程。如何有效地实现地图数据从CDR 文件转换成iPad 平板电脑可使用的图片文件成为了本论文研究的首要内容。
2、突破图片缓存瓶颈。由于地图幅面大,iPad 平板电脑的缓存受到了极大的挑战,如果将整幅图片直接导入使用,则会出现程序闪退的现象。因此,如何解决iPad 平板电脑对于图片缓存瓶颈是本论文关键的研究内容。
3、解决数据压缩问题。为了保证地图的展示质量,确保用户能清晰地查看地图和标注,图片必须具有高精度的DPI 输出作为保证。因此,地图图片数据量将会比较大,作为一个APP 应用,在不影响使用的前提下,如何压缩数据,成为了本论文的另一个关键的研究内容。
通过《上海地图-大城区详图》项目的开展和制作,解决了本论文的主要研究内容,以下介绍一下具体的解决方案。
以CDR格式存储的矢量地图产品为例,形成相应的地图发布流程,流程包括制作、输出和在移动终端的发布流程如图1所示:
图1 纸质图发布流程
1、进行CDR 文件处理,形成需要展现的地图内容。输出400DPI 精度的图片,保存为JPG格式图片;
在CDR 环境中,由于数据量较大且图框外有白边,所以采用图框精确裁剪的方法将数据分为尺寸左框1024×624 右框1024×650(26mm 重叠边)两幅图,完成裁剪后导出EPS格式数据。使用Acrobat Distiller 软件将EPS 文件转成PDF格式使图幅不会出现黑边,然后用PS 软件打开进行栅格化处理,打开PDF 数据设置图幅尺寸为左框1024×624,右框1024×650(重叠边)、颜色模式为RGB、分辨率为400dpi 保存为PSD格式,完成后再在PS 软件中设置画布大小1024×1248 将两幅图幅拼接最后导出符合系统所需的400dpi-JPG格式。
2、开发切图工具,采用Python 语言结合IDLE图形管理控件自行开发自动切图工具,切割形成行列矩阵瓦片。
为实现在ipad 端流畅显示离线电子地图的效果,解决图片缓存瓶颈,避免程序闪退。项目在开发中采用了CAlayer 类来管理图片。CAlayer的工作原理是把大尺寸的图片切割成小切片,例如1000×1000 像素。然后每次在视图内加载对应的切片。这样可以实现大尺寸图片在APP 内的快速加载。并且CAlayer 类集成了对手势操作的应对方法,可以流畅的进行图片的拖动、单击、缩放等。
为了提供系统需要的数据,首先要把电子底图成品切割成自定义大小的切片。以大城区详图电子图为例,切片大小统一定义为1000×1000 像素。这幅图的尺寸为19663×16133 像素。本例中把它切割成20 行,17 列共340幅切片。每幅图的命名规则采用name_row_coloume的方式。在CAlayer 类中,自动根据行(row)、列(colume)加载切片。为了达到快速切图的效果,项目组采用Python 和IDLE 接口开发了一个自动切图程序,这个程序可以快速的对多幅电子图进行切片,提高了工作效率。
自动切图程序关键代码如下:
下图2是切图成果,从图片的命名可以看出,是遵照上述命名方式命名的。APP 程序会根据命名规则加载切片。
图2 成果命名方式
3、为了进一步压缩数据,减小数据容量,我们再次开发数据导入工具,通过SQLite 数据库存储长二进制图片数据,以进一步压缩图片。
我们采用SQLite 3 作为数据库,管理数据,这是一种开源轻型数据库,整个数据库存储为一个单一文件中,存储用于浏览的图片长二进制数据。在数据制作过程中,根据SQLite 3的结构特点和功能需要,进行了数据库表的设计,表结构如下表1:
表1 瓦片数据库结构
最后,通过数据导入工具,根据数据库表的设计,导入最终的图片数据。
数据导入程序关键代码如下:
表完成"+dt2.Rows.Count.ToString()+"条记录的SQL 语句写入!");
4、调用数据在移动终端显示,实现图片在iPad终端的离线浏览。
在开发过程中,采用Xcode 4.5 平台直接读取SQLite 3 数据库的方式,把功能需要的数据读取,并在平板电脑上显示出来,并最终实现了大图片在i-Pad 终端的离线浏览、平移、缩放等功能。
基于平板电脑的地图发布技术研究克服了平板电脑缓存瓶颈、数据压缩等关键技术,形成了较完整地地图发布流程,拓宽了纸质地图在移动终端的应用,为基于苹果系统Xcode 平台开发APP 产品提供了借鉴。
论文中所示例的《大城区详图HD》最终形成了面向公众服务的一款APP 产品,用户可通过App-Store 商店免费下载使用。