5.4. 创建和服务地图瓦片的策略

地图分幅通常有一个简单的文件夹结构,这使得它们易于服务。然而,由于其规模和数量庞大,管理起来可能会变得复杂。人们设计了几种不同的方式来提供地图瓦片:

  • 将它们放在web服务器上的文件夹结构中,并让人们直接提取它们。在这种方法中,您只需在表示缩放级别、行和列的文件夹结构下将瓦片组织为单个图像文件。许多地图API在呈现URL结构时可以使用tiles,URL结构中的变量表示级别、行和列的一致位置。例如,在LeafletAPI中使用瓦片层时,必须以格式提供URLhttp://{s}.somedomain.com/blabla/{z}/{x}/{y}.png,其中z是缩放级别,x和y是列和行。

  • 通过web服务使瓦片可用。在这种方法中,web服务公开参数,以便您根据特定的级别、行和列请求瓦片;但是,后端基础结构稍微隐藏一些。这种方法的开销(因此还有时间延迟)略高于直接通过文件夹公开瓦片。WMS规范的一个变体称为WMTS,用于以这种方式提供瓦片和工程。当您使用浏览器的网络工具在Google地图上导航时,您也可以看到这个模式在工作。以下Google Maps的tile URL没有显示tiles的后端文件夹结构,尽管如果您仔细查看,您可以看到level、row和column变量:https://mts0.Google.com/vt/lyrs=m@241289412&hl=en&src=app&x=74&y=96&z=8&s=Galile

5.4.1. 创建瓦片的策略

在大(放大)范围内,要缓存的瓦片数量可能会非常庞大,特别是当您覆盖的区域很广时,例如州或国家。具有讽刺意味的是,在如此大规模的情况下,许多瓦片将传达很少的信息。放大到1:2250的邻域块比例可能会显示许多有趣的特征,但以相同的比例延伸到沙漠或海洋中,瓦片可能完全是空白的。您想花费数小时来创建这些瓦片和千兆字节的磁盘空间来存储它们吗?

在这些情况下,您可能希望找到可以按需创建瓦片的软件,这意味着在用户第一次访问它们时。第一个导航到某个区域的人需要等待服务器创建瓦片,但随后的访问者将享受创建瓦片的全部好处。最受欢迎的区域将填满瓦片,但您不会花费资源来创建和存储从未访问过的瓦片。显然,这种方法的有效性取决于服务器按需绘制瓦片的速度。

另一种方法是使用“数据不可用”瓦片来表示尚未创建瓦片的区域。Web地图管理员有时不愿意这样做,但这通常是一种足够普遍的做法,当用户看到互动程序时,他们会责怪自己(“哎呀,我放大太远了!)而不是管理员(“他们为什么不按这个比例提供地图呢?”).

最好的方法可能是策略性地创建最感兴趣的tile的子集,并根据需要(或使用“数据不可用”tile返回)创建不感兴趣的tile。作为一个地理学家,把任何地方称为“不那么有趣”可能会伤害你的灵魂,但痛苦的事实是,并不是地图上所有的瓦片都有相同数量的景观。Fisher(2007)展示了早期访问微软虚拟地球(现在的必应地图)的游客如何主要停留在大城市、海岸线和交通走廊。Quinn和Gahegan(2010)建立了考虑到这些模式的模型,展示了如何通过创建覆盖地图整个矩形范围通常需要的全部瓦片数量的一小部分来满足大多数地图请求。他们的模型是用缓冲道路、海岸线和兴趣点等数据集拼凑而成的,但最近来自社交媒体(如地理标记的tweets和Flickr照片)的信息可能会更准确地为大多数用户揭示地图上最有趣的区域。请注意,某些类型的专用地图(用于矿产勘探或荒野保护)的使用模式可能与通用基础地图有很大不同。

有选择地缓存这样的瓦片子集的能力取决于瓦片创建软件在允许管理员指定自定义区域进行缓存时的灵活性。大多数软件只允许提交一个矩形边框来创建瓦片;但是,地图上有趣的区域,如城市和海岸线,通常不是矩形的。如果确定要创建瓦片的不规则形状区域,则可能需要将其抽象为一系列矩形,并使用每个矩形作为输入运行多个瓦片创建作业。如果您比较幸运,您的瓦片创建软件将接受空间数据集(如shapefile)作为边界区域。

5.4.2. 使用自由/开源软件创建瓦片

创建瓦片的web地图是一项常见的任务,已经由各种FOSS软件包解决。现在最容易访问的是GeoWebCache,因为它直接集成到GeoServer中。其他包括TileCache和TileStache。

Mapnik库是一个绑定到Python和其他语言的FOSS tile创建库。它允许在典型的WMS层中找不到的许多高级绘图选项。与Mapnik合作通常需要一些Linux知识和一些尝试和错误;然而,几年前,盈利性公司Mapbox发布了一个名为TileMill的开源程序,可以在Mac和Windows上运行,并在Mapnik周围放置了一个不错的GUI。这简化了制图过程,并将Mapnik放在Geog 585的范围内。在本课的第二个演练中,您将使用TileMill使用前面处理的某些层创建费城的基础地图。当然,如果你感兴趣的话,也可以自由探索Mapbox Studio,并在论坛上与它分享你的经验。

5.4.3. 工具书类

  • Fisher,D.(2007年)。热图:关注地理位置。可视化与计算机图形学,美国电气与电子工程师协会汇刊,13(6),1184-1191。

  • Quinn,S.和Gahegan,M.(2010年)。网络地图中经常查看的分幅的预测模型。地理信息系统交易,14(2),193-216。