摘要: EveryBlock是一个地图门户网站,提供了多种形式的城市地里信息查询和搜索方式,最有特点的还是他的地图。EveryBlock网站采用的是Python的开源Web框架Django为基础,而他的地图服务本身也是基于开源软件构建的。 EveryBlock网站的构...
EveryBlock是一个地图门户网站,提供了多种形式的城市地里信息查询和搜索方式,最有特点的还是他的地图。EveryBlock网站采用的是Python的开源Web框架Django为基础,而他的地图服务本身也是基于开源软件构建的。
EveryBlock网站的构成:
1.浏览器客户端OpenLayers
OpenLayers 是一个专为Web GIS 客户端开发提供的JavaScript 类库包,用于实现标准格式发布的地图数据访问。从OpenLayers2.2版本以后,OpenLayers已经将所用到的Prototype.js组件整合到了自身当中,并不断在Prototype.js的基础上完善面向对象的开发,Rico用到地方不多,只是在OpenLayers.Popup.AnchoredBubble类中圆角化DIV。
OpenLayers现在是开源GIS浏览器端的最佳解决方案,这一点不用多做介绍。
2.地图渲染引擎Mapnik
Mapnik 是一个用来开发 GIS 应用程序的工具包,其核心是一个 C++ 的共享库提供空间数据访问和可视化的算法和模式。特别是包含一些地理对象,如地图、层、数据源、特征和地理几何等。该共享库支持多种操作系统,可以在多线程环境下很好的运行,主要面向一些提供GIS服务的Web应用开发。
Mapnik是开源的Python/C++地图渲染引擎,他的功能是把数据形式的地图,通过一个样式表的定义,渲染成位图格式,用来提供WMS服务。与之对应的Java解决方案是org.geotools.render中的相关功能。
3.数据文件TigerLine,Shapefile
TigerLine是一种Shapefile文件标准。
Shapefile文件是描述空间数据的几何和属性特征的非拓扑实体矢量数据结构的一种格式。
4.数据处理工具PostGIS,Shapely,OGR
用于地里数据的存储、查询、运算等功能。
瓦片缓存TileCache在逻辑上位于OpenLayers与Mapnik之间,用于管理Mapnik生成的数据,同时处理前台OpenLayers传递的请求。
由此可见,Python平台上完整的开源GIS解决方案也已经形成,这样在开源Web Mapping上出现Python、Java并驾齐驱的态势。