全球地震系统的可视化
大蒜的功效GIS(Geographic Information System) 在可视化方面,无疑是有很多优势的,相比于传统的表格或者图表,它更容易将读者快速的带入到具体场景中,并更好的理解图形背后的含义。
很多信息事实上都和地理位置有关,比如关键客户的分布图,货源/仓库在地理上的分布等,当这些信息以可视化的方式展现在地图上时,我们可以获得很多之前无法看到的信息,而这些信息可以帮助我们在未来做出更合理的决策。
播放器
本文将使用开源工具OpenLayers做一个实例,并在这个过程中详细讨论GIS背后的一些技术细节。在这个例子中,我们将会把地球上的地震统计信息用可视化的方式,直观的展现在地图上。
例子的最终运行结果如下:
洋葱酥
图中的绿色点表示小于里氏3级的地震,红色的点表示大于里氏3级的地震。
相关赞助商
如何调理肝脏
全球架构师峰会,7月17日-18日,深圳大梅沙京基海湾大酒店。马上报名。
Web GIS简介
Web GIS是将传统的GIS与Web集成起来,借助于Web的高可用性,Web GIS可以使地图服务本身更容易被人们获得。成熟的Web GIS产品已经有很多,比如Google Maps,Bing Maps等,这些GIS产品已经很早就深入了我们的日常生活,并为我们的学习工作带来了众多的便利,比如去一个陌生的城市出差时找到预定的酒店,查找离你目前所处位置最近的银行等等。
那么我们看到的网页上很漂亮的地图是怎么产生的呢?它们又是如何被渲染到页面上的呢?
地图的渲染方式
公共管理是什么几乎所有我们看到的基于Web的地图,都是通过不同层次叠加出来的结果。GIS系统会将 河流,建筑物,街道,文本标签的信息分别存储与不同的层次上(物理上不同的文件/数据库中),这样做不但可以在编辑地图时更容易管理(比如表示街道的图层的更新频率肯定会高于表示河流的图层的更新频率 ),而且可以按需加载(只查看河流,街道,不要建筑物信息等),从而减少服务器上的负载。
地图服务器将不同的层次叠加,最终生成一张完整的地图。这个最终的地图包含了所有的信息,比如河流,建筑物等都会带上名称。而且每个层次都可以独立的配色,这样最终的地图就是我们见到的样子了:蓝色的水域,黄色的高速路,白色的建筑,绿色的公园等等。
图片来源(/bmx/?n=gis)
地图在服务器端被渲染出来之后,尺寸一般会非常大。需要由专门的模块将这些大图切分成很多组的小图,这些小图被称之为瓦片(tile)。为了给不同缩放级别的客户端提供不同的图片,这些瓦片被精心的分成了多个组,每个组都有编号。如果地图支持18级的缩放,就会现有18个分组。当然分组好越靠后,分组中的瓦片越多。
服务器上的瓦片
力量的英语而在客户端,当我们在Google Maps上拖动地图,或者放大某一个感兴趣的区域时,往往会看到一些灰色的块。这些灰色的块过几秒会被真实的地图替换掉。这是因为,我们不可能也不需要将GIS服务器上的地图完全加载到客户端呈现,而是分批获取。在获取地图瓦片的过程中,客户端会展现一些占位符,当真正的瓦片加载完成后,再完成替换。入党申请书怎么写
感喟的意思
比如当我们查看西安市地图时,前端的JavaScript脚本会根据缩放级别和目前浏览的区域发送少量的请求获取地图瓦片,然后再将这些瓦片拼成一副“完整”的地图。
WMS请求
WMS(Web Map Service)是一个基于HTTP的简单协议,客户端发送的请求中包含请求类型,地图的层次,边界等信息,服务器根据这个信息生成图片,并返回该图片:
Chrome中的一次WMS请求详情
当然,WMS本身支持多种类型的请求,最常见的就是GetMap。具体的细节大家可以参考OGC规范及具体服务器的实现。而对于后端的服务器来说,从请求中获取这些信息之后,会首先从数据库/数据文件中得到数据,并使用渲染引擎绘制图片,并最后将图片返回客户端。
地图图层的分类
图层可以分为矢量图层和栅格图层,栅格图片一般的来源为航拍,遥感等技术,本质上来说就是照片,不过由于拍摄角度,器材本身产生的失真等,这些照片需要经过校正才能使用。由于栅格图片本身是拍摄的结果,那么放到到一定范围之后,必然会产生模糊。栅格图片通常会附带一些具有特别含义的属性,比如降水量,人口数等。