# 栅格瓦片

构建地图瓦片前,综合考虑该瓦片的使用场景及可用的资源非常重要。

创建大型的地图瓦片往往需要大量的时间和资源。如果条件允许,可以有针对性的就较小的地图区域进行瓦片裁剪测试,或者创建几个较低级别的瓦片地图,以确保生成的瓦片图像能够达到预期的效果。

在本节中,我们将首先介绍如何规划地图瓦片,瓦片相关的参数的作用及意义,再详细说明瓦片裁剪的操作过程。

# 规划地图瓦片

为地图瓦片所设置的裁剪属性可大大影响瓦片创建和使用的成功几率。开始创建瓦片后,有些选项(如切片宽度和高度)不可更改,除非删除现有瓦片数据,重新创建。因此,提前规划切片方案和其他属性至关重要。

可以简单的将规划瓦片裁剪的过程分为三部分:

一、制定切片方案

切片方案包括瓦片的比例级别、切片尺寸和切片原点。

这些属性定义了边界的存在位置,多瓦片叠加时这些参数十分重要。例如,我们可能要和Google地图、Bing地图做叠加,那么裁剪的瓦片需要和这些web地图的分级比例、切片原点等参数保持一致。

  • 【图片格式】:决定创建切片时的输出格式。图像格式确定了切片在磁盘上的大小、图像质量及透明度。在MapGIS平台中支持的图像格式类型有:*.png、*.jpeg、*.png32、*.webp。

提示:

*.png格式使用8位颜色,只支持简单的二值透明,即某些部分完全透明,而其余部分完全不透明。若地图调整了图层透明度且需要裁剪出来的瓦片具有该透明特性,则需选择*.png32或者*.webp格式的图片。

  • PNG32:使用32位颜色的PNG图片格式,具有8位的透明度通道,既可以展示高质量的图像,又支持复杂的透明效果。

  • WebP:由谷歌在2010年发布的一种用于web端支持有损和无损压缩的图片格式,并且支持图片透明度。WebP能达到和JPEG、PNG相同的图片质量,同时体积更小,在web端的浏览更流畅清晰。

  • 【切片高宽】:切片的宽度和高度提供256 或 512两类。如果要构建的瓦片将叠加另一瓦片地图,应确保对两个瓦片均使用相同的切片宽度和高度。选择较小的切片宽度和高度可提高请求切片的应用程序的性能,因为需要传输的数据较少。

  • 【分辨率】:DPI,是指生成的切片的分辨率。默认值 96 通常完全可满足需要。

  • 【大图大小】:通过瓦片裁剪后,生成的最大图片的尺寸,包括1024、2048、4096三个可选值。大图尺寸越大,裁剪速率越高,但对裁剪服务器的性能配置要求越高。

(1)比例级别

创建切片方案时,采用哪些地图比例创建切片是最为重要的选择。

不同的比例级别表现为地图瓦片的细节层次。例如1:200,000的比例尺可以看到省级道路;1:100,000的比例尺不光观察到省级道路,还可观察到市区道路;1:20,000比例尺可以表现出道路周边的商铺信息。

瓦片的比例尺设置的合理性取决于地图数据的设计以及瓦片的使用目的。如果瓦片数据需要与其它瓦片相叠加,那么这些瓦片所使用的比例尺方案应该尽量保持一致;如果地图数据设计时已经规划好在哪些比例尺下显示的细节内容,那么瓦片的比例尺设置可以依据那些比例尺来规划。

(2)切片原点(地图单位)

切片方案原点是指切片方案格网的左上角。原点不一定代表创建瓦片的起始点。使用公用切片方案原点可以确保它们能够相互叠加与合并。

应注意只能在切片方案原点右下方的地图区域才会创建切片。

二、规划图层数据可见性

地图是由多个图层组成,每一个图层所显示的地理信息粗细粒度不一。在逐渐放大地图的过程中,国家、省、市、县、区、街道等详细信息逐级显示出来。这些因比例不同而发生的变化有助于地图以有序方式传达更详细的信息。

如何使得瓦片数据同样有序显示,除了制作瓦片的地图数据本身所控制的显示比外,还可以通过设置地图图层的起始、终止裁剪级别加以控制。

三、裁剪参数

(1)要裁剪的感兴趣区

地图的全图范围:即地图范围,该选项缓存地图中所有数据的整个边界框。这是默认选项。

自定义范围:即自填范围,您可以通过输入Xmin、Xmax、Ymin、Ymax的值来确定要进行瓦片裁剪的区域范围。

(2)瓦片裁剪方式的选择

在瓦片裁剪中,通过了两种方式供用户选择:按级数的起始范围全部裁剪;按指定级数的起始行进行裁剪。用户需要综合考虑参与裁剪的地图数据的数据量大小,以及裁剪级别的高低,来选择不同的裁剪方式。

一般而言,“按级数的起始范围全部裁剪”方式适用于级数较低、数据量较小的裁剪,一次能够完成多个级别数据的裁剪;“指定级数的起始行裁剪”适用于级数高、数据量较大的裁剪,但是每次只能完成指定的一个级别的瓦片裁剪。

# 栅格瓦片续裁

# 功能说明

若在裁剪瓦片时出现设备断电、程序退出等情况导致裁剪瓦片中断,软件提供瓦片续裁的功能。

# 操作说明

1. 在"工具"菜单栏中的瓦片工具条上,点击“栅格瓦片续裁”按钮,弹出如下对话框:

2. 选择用于续裁的二维地图。

3. 选择未裁剪完成的*mut格式的瓦片,界面上会显示瓦片的起始和终止级数,以及待续裁起始级数和起始行号。

4. 点击“开始续裁”按钮执行瓦片续裁操作,当总任务进度达到100%,即完成栅格瓦片的续裁。

# 栅格瓦片裁剪

# 功能说明

瓦片地图是通过裁剪后的地图图片,以GIF、JPG、PNG等形式存储的。通过瓦片裁剪,能让显示更快。

# 操作说明

1. 启动 “栅格瓦片裁剪”功能,弹出“瓦片裁剪”功能,如下图所示:

提示:

在做瓦片数据的时候请先配置好待裁剪地图数据,且保证裁剪地图有正确的空间参照系,可与裁剪比例尺相对应。

2. 选择待裁剪的二维地图。

3. 设置瓦片裁剪结果存储路径及名称。目前支持MUT、MongoDB、PostgreSQL存储。

  • MUT(MapGIS Universal Tiles)瓦片格式为MapGIS的跨平台通用型瓦片存储,这种瓦片格式不依赖瓦片服务,轻量、易迁移和部署,具备跨平台特性,可以跨Windows、Linux、桌面端、服务器端、移动端使用。

提示:

MapGIS 本地瓦片格式*.mut仅适用于单个客户机使用,不适用于通过共享目录给多个客户机同时使用。若用户希望多个客户机可以使用同一个数据库,建议使用MongoDB或PostgreSQL数据库存储。

  • 【MongoDB】:将结果栅格瓦片存储在MongoDB数据库中。
    • IP地址:MongoDB数据库所在的客户机IP地址;
    • 端口号:MongoDB数据库端口号,默认为27017。其中,MapGIS Datastore创建的MongoDB数据库默认端口号为30001;
    • 数据库名:MongoDB数据库名称;
    • 集合名:结果栅格瓦片的存储集合名称,用户可自定义,但不能与MongoDB中已有的集合重名;
    • 用户名/密码:若MongoDB数据库开启了密码保护,此处需设置用户名密码信息。若未开启,此处空着即可。

提示:

MapGIS DataStore 创建的MongoDB数据库的超级管理员 admin 不具备访问其他库记录的权限,需要用户在MongoDB中重新创建一个普通用户,并设置密码信息。若开启MongoDB密码限制,此处只能用新建的用户及密码,不能用admin账户。

  • 【PostgresSQL】:将结果栅格瓦片存储在PostgreSQL数据库中。
    • IP地址:PostgresSQL数据库所在的客户机IP地址;
    • 端口号:PostgresSQL数据库端口号,默认为5432。其中,MapGIS Datastore创建的PostgresSQL数据库默认端口号为54321;
    • 数据库名:PostgresSQL数据库名称;
    • 集合名:结果栅格瓦片的存储集合名称,用户可自定义;
    • 用户名/密码:PostgresSQL数据用户名密码信息。

4. 设置瓦片裁剪的信息,主要设置裁图策略、原点坐标、图片参数、瓦片级数和对应的比例尺,以及裁剪的基本信息等。用户可以设置的参数说明如下:

  • 【裁图策略】:用于协助确定裁剪的比例尺级别。可选择的裁剪策略有:

    • 【自定义】:可以根据需求手动输入裁剪级别及比例尺信息,最大级数可到30级;
    • 【经纬度】:目前Web地图常用的一种裁图模式。要求地图的空间参照系必须为地理坐标系,否则无法使用此裁剪策略。经纬度裁剪方式时,世界地图在第1级被裁剪为2张256*256的图片,第2级被裁剪为8张256*256的图片,后面的级别依次类推。

    具体比例尺方案如下:

    • 【球面墨卡托】:目前Web地图常用的一种裁图模式。要求地图的空间参照系必须为Web墨卡托投影,否则无法使用此裁剪策略。球面墨卡托裁剪方式时,世界地图在第1级被裁剪为1张256*256的图片,第2级被裁剪为4张256*256的图片,后面的级别依次类推。

    具体比例尺方案如下:

  • 【原点坐标】:设置裁剪地图文档时,第一个裁剪网格的原点。用户可以在“原点坐标”栏中,输入裁剪网格的左上角的XY值,来确定原点坐标。默认原点为(0,0);

  • 【图片参数】:设置生成的瓦片结果图片的格式、大小、高宽等信息;

  • 【比例尺信息】:在“比例尺信息”栏中,用户可以设置瓦片级数和对应的比例尺;

更详细说明可参考规划地图瓦片小节。

提示:

与栅格金字塔中的金字塔层类似,瓦片级数的第1级对应的比例尺最小,表示的地理范围最大,级数增加,对应的比例尺必须大于上一级设置的比例尺,否则裁剪中会报错。

通过“比例尺信息”栏右侧的【添加】按钮,可以添加瓦片级数,同时系统会以上一级比例尺的2倍的比例计算出新比例尺,另外,用户在比例尺栏中点击比例尺,也可以手动输入新的比例尺;点击【删除】按钮,可以删除选中的瓦片级数;点击【默认】按钮,会弹出“级数个数设置”对话框,用户可以设置系统默认的级数个数和第一级比例尺,如下图所示:

  • 【高级】:点击“高级”按钮,弹出“其他信息”对话框(如下图所示),用户可以设置裁剪网格的背景色、图片的压缩比(压缩比越大,瓦片损失的数据越少),以及瓦片的一些其他信息。

    • 【透明色/背景色】:当输出背景透明图片格式(*.PNG)时,若数据中有图元颜色与此颜色相同,则在结果瓦片中该部分图元会被透明处理,不予绘制;当输出背景为非透明图片格式(*.JPG、非透明*.GIF)时,结果瓦片的背景色为此颜色。
    • 【Jpg图片压缩比】:输出图片为*.JPG时,可以设置图片压缩比。压缩比越小,结果瓦片数据量越小,但瓦片质量损失越大。
  • 【导入】:导入分级的.XML、.TDF、.HDF文件。

  • 【保存】:保存当前的分级设置。

  • 【另存】:将当前的分级文件保存成xml文件,供用户在其他的瓦片裁剪中,快速应用分级。

5. 设置瓦片裁剪范围及级别信息。

  • 【地图范围】:以地图的实际做为裁剪范围;
  • 【自填范围】通过输入两个角点的坐标值,修改地图裁剪的范围;
  • 【导入范围】:选择一个简单要素类或栅格数据,将数据范围作为裁剪范围。

6. 点击"确定",执行瓦片裁剪。通常裁剪的级数越高时,耗时越多,裁剪第1级速度最快。

# 用地图更新栅格瓦片

# 功能说明

前已述及,制作瓦片的地图数据最好不是经常变化的。例如,街道图、影像图和地形图就比较适合制作瓦片数据。如果数据有定期更新的需要,我们可以使用瓦片更新工具快速处理变化的内容。

裁剪好瓦片后,若对应的矢量地图上有变动(更新),可以使用瓦片更新工具将地图上变动(如新增的交通线路等)更新到瓦片上。这样,尤其是对于级数较高、数据量较大的瓦片数据,能够大大降低将地图上的更新反映到瓦片上的时间消耗,提高瓦片的使用效率。

栅格瓦片更新功能支持用地图更新栅格瓦片,从地图更新瓦片,是对瓦片比较简单直接的更新方式。系统可支持局部范围和部分瓦片级别的更新,提高瓦片更新效率。可支持多样化的范围选择方式,精确定位裁剪更新范围,加大裁剪更新效率。

由地图更新瓦片的方式一般适用于更新范围较小,级数较低的瓦片。

# 操作说明

1. 点击"工具"面板->"用地图更新栅格瓦片"按钮,弹出用地图更新栅格瓦片对话框,如下图所示:

2. 在待更新瓦片(*.mut)中选择要更新的具体地图;在“选择瓦片”栏中通过选择瓦片路径,来选择需要更新的瓦片数据。

选中需要更新的瓦片后,用户可以在“选择瓦片”页面上查看比例尺、原点坐标、图片参数、区域对应级数、区域范围、裁剪基本信息等。

3. 在更新范围和级别栏中,配置瓦片更新的范围。用户在此页面上,可以设置瓦片的更新范围、瓦片的更新级数、更新方式等信息。具体的设置方法如下:

(1)设置瓦片的更新范围。在“更新范围”栏中,用户可以手动输入要更新的矩形范围的左下角和右上角坐标,也可以通过范围设置按钮快速的获取裁剪范围;

获取范围的方式有四种:按地图范围获取、按裁图范围获取、按图层范围获取、拉框获取。

按【地图范围】和按【裁图范围】获取更新范围,都可以通过对应的“单击获取”按钮,在“更新范围”栏中会获得相应的范围坐标值;

按【图层范围】获取新范围,点击“选择图层”按钮,弹出选择对话框,选择作为更新范围的参考图层,确定后,在“更新范围”栏中,会自动获取对应图层所表示的范围的坐标值;

使用【拉框选择】获取瓦片的更新范围时,点击“开始拉框”按钮,即可在瓦片对应的地图文档上使用鼠标交互框选要更新的范围。瓦片会在选定的范围内进行更新,提高了更新效率。

(2)选择更新级数。例如,选择更新的起、止级数为3-5级,那么在更新时,地图上的变动只会更新在原瓦片的3-5级上,其他级数上的瓦片不会被更新。

5. 完成设置,点击“开始更新”按钮,进行瓦片更新,当更新的总任务进度达到100%,即完成页面瓦片的更新。需要注意的是瓦片更新会改变原始瓦片数据,并且过程是不可逆的。建议将待更新瓦片先进行备份,可用于更新出现错误时的补救等。

# 栅格瓦片合并

# 功能说明

为满足用户实际应用的需求,可根据地理坐标位置,将若干裁剪结果合并为一个新数据体,例如将若干县级裁剪结果合并为一个市级地图数据级,可大大提升裁剪结果的综合利用程度。

应该注意的是,瓦片合并前要确保要合并的坐标原点保持一致,并且瓦片每一级的比例尺和网格逻辑大小相同。

# 操作说明

1. 点击"工具"面板->"栅格瓦片合并"按钮,弹出瓦片合并对话框,如下图所示:

2. 添加源瓦片。在源瓦片列表的右侧,点击"添加"按钮,添加需要进行合并的源瓦片数据。添加的多个源瓦片中,系统会按照其在列表中排列的先后顺序,先后进行合并。

提示:

瓦片合并效果等同于多个瓦片叠加显示效果,在列表中靠下的瓦片,显示时位于上层。

在“源瓦片”列表中,用户可以对源瓦片数据进行以下操作:

(1)移除已添加的源瓦片:点击源瓦片列表右侧的【移除】按钮,能够将选中的源瓦片移除;

(2)调整源瓦片的先后顺序:点击源瓦片列表右侧的【上移】、【下移】按钮,可以调整选中的源瓦片的位置;

3. 设置合并后瓦片的保存路径,点击“合并”按钮,执行瓦片的合并。