1.2. Web 制图的历史和重要性¶
几十年来,大多数数字地理信息都被限制在基于桌面的个人计算机(PC)或内部大型机上使用,无法与其他组织轻松共享。地理信息系统分析员可以从他们自己的工作场所计算机访问数据,这些计算机通常连接到办公室的某个中央文件服务器。需要专门的软件来查看或操作数据,从而有效地缩小可能从数据中受益的受众范围。
20世纪90年代中期,随着互联网的普及,人们开始思考如何在组织内部和公众之间通过计算机共享地图和其他地理信息。第一步是在HTML页面上发布地图的静态图像;然而,人们很快意识到了交互式地图的潜力。其中的第一个是由MapServer和ESRIArcIMS等软件的新版本提供的,但按照当今的标准,它们却被像素化,缓慢且笨拙。由于这些工具的限制,制图人员还没有全部到达网络制图现场,而且大多数地图看起来都很可怕。然而,这些早期的交互式网络地图在当时是革命性的。你可以使用你简陋的网络浏览器在任何你想要的地方请求一张地图,并看到最终的图像,这个想法让人感到解放和兴奋。请参阅Brandon Plewe 1997年出版的在线地理信息系统(可在许多大学地理类库找到)了解这个时期的网络地图景观。
这些早期动态绘制的web地图在速度和可伸缩性(处理多个同时用户的能力)方面遇到了挑战。服务器一次只能容纳有限数量的制图请求,然后才会减速(最好)并崩溃(最坏)。当网站开始从预生成的缓存中提供瓦片地图图像时,Web地图在这两个指标中显著成熟。当您可以提出一个初始投资,在一个合理的比例集上预先绘制所有可能的地图范围时,为什么要求服务器动态地绘制每个地图?一旦绘制并缓存了地图图像,就可以将这些图像作为瓦片马赛克提供。每一个瓦片地图请求都比动态地为地图提供服务要快得多,这使得服务器能够容纳数百个同时的用户。
在Google地图的引领下,许多网站开始使用一种被称为Asynchronous JavaScript和XML(AJAX)的创新技术提供“预先准备好”的瓦片地图图像,这种技术消除了早期web地图中任何导航操作后出现的普遍且烦人的闪烁现象。现在,您可以永远平移地图,而服务器却不会因为尝试追赶而喘不过气。
制图师们在很大程度上由于网络地图的速度而放弃了美学的追求,他们也意识到了拼贴技术的潜力。地图中的层数不再会减慢服务器的速度:预先生成图块之后,您可以像绘制丑陋的地图一样快速地提供精美的地图。网络地图成为锻炼制图技术并使最有吸引力的地图成为可能的机会。这样就诞生了如今在Google,Microsoft Bing,OpenStreetMap和其他流行网站上常见的精美,快速且详细的“web 2.0”底图。
随着web浏览器使用SVG和后来的WebGL等技术绘制图形的能力增强,交互的可能性也随之增加。动态突出显示功能和HTML丰富的弹出窗口成为常见元素。几年来,开发人员尝试使用Adobe Flash和Microsoft Silverlight等插件来平滑地制作地图导航和相关小部件的动画。最近,开发人员放弃了这些平台,转而使用最新的web浏览器认可的新HTML5标准,而不需要插件。
尽管地图在21世纪中期已经进入浏览器,但它们仍然主要通过台式PC机访问。随后几年智能手机和平板电脑的广泛应用只增加了对网络地图的需求。移动设备不能在本地保存大量的地理信息系统数据,也不能安装先进的地理信息系统软件;它们依靠网络或蜂窝连接按需获取地图。这些连接要么是由设备上的浏览器(如Safari)启动的,要么是安装在设备上的本机应用程序,它们是为简单、集中的目的而构建的。在这两种情况下,地理信息系统数据和地图都需要从组织的传统数据仓库中提取出来,并在网上提供。
1.2.1. web服务的重要性¶
由于web服务的缘故,上述所有Web 制图场景都是可能的。如果你在互联网上搜索,你会发现很多web服务的定义,并且很容易让你感到困惑。在本课程中,只需将web服务视为一个专门的计算机(服务器)知道如何执行并允许其他计算机调用的重点任务。您使用的web服务如下:
通过从应用程序(客户机)发出请求来调用web服务。要发出此请求,通常使用HTTP,这是web浏览器用于客户端和服务器之间通信的标准协议。请求包含称为参数的结构化信息片段。它们给出了如何执行任务的具体说明。
服务器读取请求并运行其web服务代码,同时考虑所有参数。这会产生一个响应,通常是一系列信息或图像。
服务器向您发送响应,您的应用程序使用它。
检查以下简单图表如何描述此过程,并返回当前降水量的地图:
Web服务请求。有关详细信息,请参阅下面标题中的文本说明链接。图1.1绘制地图的web服务的请求和响应流示例。图1.1信贷文本说明:Sterling Quinn
现在举个例子。假设您已经在绘制地图的某处标识了Web服务的URL。您可以通过构造一个URL(http:// ...)来发出请求,该URL包含Web服务的地址和地图的各种参数,例如您想要接收的图像格式(JPG,PNG等) ,边界框(定义要查看的地理区域的坐标)和地图比例尺。将其粘贴到浏览器的地址栏中,服务器将向您发送包含您所请求的地图图像的响应。
下面就是这样一个请求的例子,使用的是美国的雷达图。首先,看看能否识别URL中的一些参数。然后猜猜当你得到回复时会是什么样子。然后单击链接以调用web服务并获取响应:
当您检查这个请求的URL时,您可能已经注意到一些参数,这些参数指示图像的宽度和高度、图像格式、图像背景透明度以及要绘制的地图的边界坐标。这些参数提供有关web服务应如何运行其地图绘制代码的特定详细信息。单击链接时,您会看到这些参数反映在发送回浏览器的响应图像中。在以后的课程中,您将了解上面请求中的更多参数。
并非所有web请求都调用web服务代码。有些web请求只是返回一个文件。这就是瓦片地图的工作原理,这也是它们如此快速的原因。您将在后面的课程中了解有关瓦片贴图的详细信息,但请检查以下对瓦片的特定缩放级别、行和列的请求:
http://a.tile.openstreetmap.org/15/11068/19742.png
请求深入到服务器的文件夹结构中,并返回请求的PNG图像作为响应。除了基本的文件检索之外,服务器上没有运行任何特殊代码,因此您可能会认为没有调用web服务。然而,这种简单的web请求也是许多web地图的重要组成部分。
在这一点上,你可能会想,“我已经使用网络地图很多年了,我从来没有必要像这样拼凑出长而笨重的网址。我是否一直在使用web服务和其他web请求?“当然,是的。当你浏览谷歌地图,你公司的在线地图网站,等等,你的浏览器正在发送数百个类似的网络请求。直到现在你才需要知道细节。当您开始设置自己的GIS服务器或设计自己的客户端web应用程序时,了解web流量背后的理论和体系结构就变得非常重要。
并非所有的web服务都使用相同的URL和参数格式。在本课程中,您将了解一些最常见的在线web服务格式,特别是那些已经公开开发并记录在软件包中工作的格式。
1.2.2. 实时查看web服务请求¶
下面是一个简单的方法,当你浏览一个网站时,你可以通过浏览器查看“幕后”发出的web请求。这些说明适用于Mozilla Firefox提供的工具。Chrome和其他浏览器有类似的工具,通常以“开发人员工具”或“web工具”的名字命名,应该不难找到。
打开Mozilla Firefox(如果它还没有运行),然后从主菜单中选择Web Developer->Network。这将打开浏览器底部的“开发人员工具”窗口。在窗口的顶部,您可以看到不同的选项卡“检查器”、“控制台”等。现在,“网络”选项卡处于活动状态,用于监视网络流量。除了“网络”之外,“控制台”选项卡对本课程也很重要,因为如果您的Javascript代码有问题,它将显示Javascript和其他错误消息。
确保在选项卡下面的过滤器菜单中突出显示“全部”(将包含所有、HTML、CSS、JavaScript等项)。
点击本网站Portland TriMet interactive system map (请注意,该网站仅使用自由/开源软件)。
浏览波特兰交通系统地图。
注意web请求的发送。你会看到很多对地图块的请求。
将鼠标悬停在请求上以查看其完整URL。如果响应是图像,则将鼠标悬停在URL前面的小缩略图上会显示返回图像的较大版本。
当选择请求列表中的某个条目时,窗口的右侧部分将显示有关请求和响应的许多附加技术信息。
这种开发工具在以后的课程中对您很有价值,因为您可以开发自己的web地图,主要用于排除您希望地图出现而您的浏览器没有向您发送预期响应的情况。
1.2.3. 工具书类¶
Plewe,B.(1997年)。在线地理信息系统:信息检索、地图和互联网。在线新闻。